
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

int hertz(void)

{
  long lVar1;
  itimerval tim;
  
  tim.it_interval.tv_sec = 0;
  tim.it_interval.tv_usec = 1;
  tim.it_value.tv_sec = 0;
  tim.it_value.tv_usec = 0;
  setitimer(ITIMER_REAL,(itimerval *)&tim,(itimerval *)0x0);
  setitimer(ITIMER_REAL,(itimerval *)0x0,(itimerval *)&tim);
  if (1 < tim.it_interval.tv_usec) {
    return (int)(1000000 / (longlong)tim.it_interval.tv_usec);
  }
  lVar1 = sysconf(2);
  return lVar1;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

long FUN_0001add0(void)

{
  long lVar1;
  itimerval local_1c;
  undefined4 uStack_c;
  
  uStack_c = 0x1add7;
  local_1c.it_interval.tv_sec = 0;
  local_1c.it_interval.tv_usec = 1;
  local_1c.it_value.tv_sec = 0;
  local_1c.it_value.tv_usec = 0;
  setitimer(ITIMER_REAL,&local_1c,(itimerval *)0x0);
  setitimer(ITIMER_REAL,(itimerval *)0x0,&local_1c);
  if (1 < local_1c.it_interval.tv_usec) {
    return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);
  }
  lVar1 = sysconf(2);
  return lVar1;
}


PUSH ESI
PUSH EBX
CALL 0x00013030
ADD EBX,0x12229
SUB ESP,0x18
MOV dword ptr [ESP + 0x4],0x0
MOV dword ptr [ESP + 0x8],0x1
MOV dword ptr [ESP + 0xc],0x0
MOV dword ptr [ESP + 0x10],0x0
PUSH 0x0
LEA ESI,[ESP + 0x8]
PUSH ESI
PUSH 0x0
CALL 0x00012040
ADD ESP,0xc
PUSH ESI
PUSH 0x0
PUSH 0x0
CALL 0x00012040
MOV ECX,dword ptr [ESP + 0x14]
ADD ESP,0x10
CMP ECX,0x1
JLE 0x0001ae38
MOV EAX,0xf4240
ADD ESP,0x14
CDQ
POP EBX
POP ESI
IDIV ECX
RET
SUB ESP,0xc
PUSH 0x2
CALL 0x00012150
ADD ESP,0x10
ADD ESP,0x14
POP EBX
POP ESI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nlong FUN_0001add0(void)\n\n{\n  long lVar1;\n  itimerval local_1c;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x1add7;\n  local_1c.it_interval.tv_sec = 0;\n  local_1c.it_interval.tv_usec = 1;\n  local_1c.it_value.tv_sec = 0;\n  local_1c.it_value.tv_usec = 0;\n  setitimer(ITIMER_REAL,&local_1c,(itimerval *)0x0);\n  setitimer(ITIMER_REAL,(itimerval *)0x0,&local_1c);\n  if (1 < local_1c.it_interval.tv_usec) {\n    return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);\n  }\n  lVar1 = sysconf(2);\n  return lVar1;\n}\n\n" comment (function_definition "long FUN_0001add0(void)\n\n{\n  long lVar1;\n  itimerval local_1c;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x1add7;\n  local_1c.it_interval.tv_sec = 0;\n  local_1c.it_interval.tv_usec = 1;\n  local_1c.it_value.tv_sec = 0;\n  local_1c.it_value.tv_usec = 0;\n  setitimer(ITIMER_REAL,&local_1c,(itimerval *)0x0);\n  setitimer(ITIMER_REAL,(itimerval *)0x0,&local_1c);\n  if (1 < local_1c.it_interval.tv_usec) {\n    return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);\n  }\n  lVar1 = sysconf(2);\n  return lVar1;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_0001add0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long lVar1;\n  itimerval local_1c;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x1add7;\n  local_1c.it_interval.tv_sec = 0;\n  local_1c.it_interval.tv_usec = 1;\n  local_1c.it_value.tv_sec = 0;\n  local_1c.it_value.tv_usec = 0;\n  setitimer(ITIMER_REAL,&local_1c,(itimerval *)0x0);\n  setitimer(ITIMER_REAL,(itimerval *)0x0,&local_1c);\n  if (1 < local_1c.it_interval.tv_usec) {\n    return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);\n  }\n  lVar1 = sysconf(2);\n  return lVar1;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "itimerval local_1c;" type_identifier identifier ;) (declaration "undefined4 uStack_c;" type_identifier identifier ;) (expression_statement "uStack_c = 0x1add7;" (assignment_expression "uStack_c = 0x1add7" identifier = number_literal) ;) (expression_statement "local_1c.it_interval.tv_sec = 0;" (assignment_expression "local_1c.it_interval.tv_sec = 0" (field_expression "local_1c.it_interval.tv_sec" (field_expression "local_1c.it_interval" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "local_1c.it_interval.tv_usec = 1;" (assignment_expression "local_1c.it_interval.tv_usec = 1" (field_expression "local_1c.it_interval.tv_usec" (field_expression "local_1c.it_interval" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "local_1c.it_value.tv_sec = 0;" (assignment_expression "local_1c.it_value.tv_sec = 0" (field_expression "local_1c.it_value.tv_sec" (field_expression "local_1c.it_value" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "local_1c.it_value.tv_usec = 0;" (assignment_expression "local_1c.it_value.tv_usec = 0" (field_expression "local_1c.it_value.tv_usec" (field_expression "local_1c.it_value" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "setitimer(ITIMER_REAL,&local_1c,(itimerval *)0x0);" (call_expression "setitimer(ITIMER_REAL,&local_1c,(itimerval *)0x0)" identifier (argument_list "(ITIMER_REAL,&local_1c,(itimerval *)0x0)" ( identifier , (pointer_expression "&local_1c" & identifier) , (cast_expression "(itimerval *)0x0" ( (type_descriptor "itimerval *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "setitimer(ITIMER_REAL,(itimerval *)0x0,&local_1c);" (call_expression "setitimer(ITIMER_REAL,(itimerval *)0x0,&local_1c)" identifier (argument_list "(ITIMER_REAL,(itimerval *)0x0,&local_1c)" ( identifier , (cast_expression "(itimerval *)0x0" ( (type_descriptor "itimerval *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&local_1c" & identifier) ))) ;) (if_statement "if (1 < local_1c.it_interval.tv_usec) {\n    return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);\n  }" if (parenthesized_expression "(1 < local_1c.it_interval.tv_usec)" ( (binary_expression "1 < local_1c.it_interval.tv_usec" number_literal < (field_expression "local_1c.it_interval.tv_usec" (field_expression "local_1c.it_interval" identifier . field_identifier) . field_identifier)) )) (compound_statement "{\n    return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);\n  }" { (return_statement "return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);" return (cast_expression "(long)(1000000 / (longlong)local_1c.it_interval.tv_usec)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(1000000 / (longlong)local_1c.it_interval.tv_usec)" ( (binary_expression "1000000 / (longlong)local_1c.it_interval.tv_usec" number_literal / (cast_expression "(longlong)local_1c.it_interval.tv_usec" ( (type_descriptor "longlong" type_identifier) ) (field_expression "local_1c.it_interval.tv_usec" (field_expression "local_1c.it_interval" identifier . field_identifier) . field_identifier))) ))) ;) })) (expression_statement "lVar1 = sysconf(2);" (assignment_expression "lVar1 = sysconf(2)" identifier = (call_expression "sysconf(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (return_statement "return lVar1;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nint hertz(void)\n\n{\n  long lVar1;\n  itimerval tim;\n  \n  tim.it_interval.tv_sec = 0;\n  tim.it_interval.tv_usec = 1;\n  tim.it_value.tv_sec = 0;\n  tim.it_value.tv_usec = 0;\n  setitimer(ITIMER_REAL,(itimerval *)&tim,(itimerval *)0x0);\n  setitimer(ITIMER_REAL,(itimerval *)0x0,(itimerval *)&tim);\n  if (1 < tim.it_interval.tv_usec) {\n    return (int)(1000000 / (longlong)tim.it_interval.tv_usec);\n  }\n  lVar1 = sysconf(2);\n  return lVar1;\n}\n\n" comment comment (function_definition "int hertz(void)\n\n{\n  long lVar1;\n  itimerval tim;\n  \n  tim.it_interval.tv_sec = 0;\n  tim.it_interval.tv_usec = 1;\n  tim.it_value.tv_sec = 0;\n  tim.it_value.tv_usec = 0;\n  setitimer(ITIMER_REAL,(itimerval *)&tim,(itimerval *)0x0);\n  setitimer(ITIMER_REAL,(itimerval *)0x0,(itimerval *)&tim);\n  if (1 < tim.it_interval.tv_usec) {\n    return (int)(1000000 / (longlong)tim.it_interval.tv_usec);\n  }\n  lVar1 = sysconf(2);\n  return lVar1;\n}" primitive_type (function_declarator "hertz(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long lVar1;\n  itimerval tim;\n  \n  tim.it_interval.tv_sec = 0;\n  tim.it_interval.tv_usec = 1;\n  tim.it_value.tv_sec = 0;\n  tim.it_value.tv_usec = 0;\n  setitimer(ITIMER_REAL,(itimerval *)&tim,(itimerval *)0x0);\n  setitimer(ITIMER_REAL,(itimerval *)0x0,(itimerval *)&tim);\n  if (1 < tim.it_interval.tv_usec) {\n    return (int)(1000000 / (longlong)tim.it_interval.tv_usec);\n  }\n  lVar1 = sysconf(2);\n  return lVar1;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "itimerval tim;" type_identifier identifier ;) (expression_statement "tim.it_interval.tv_sec = 0;" (assignment_expression "tim.it_interval.tv_sec = 0" (field_expression "tim.it_interval.tv_sec" (field_expression "tim.it_interval" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "tim.it_interval.tv_usec = 1;" (assignment_expression "tim.it_interval.tv_usec = 1" (field_expression "tim.it_interval.tv_usec" (field_expression "tim.it_interval" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "tim.it_value.tv_sec = 0;" (assignment_expression "tim.it_value.tv_sec = 0" (field_expression "tim.it_value.tv_sec" (field_expression "tim.it_value" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "tim.it_value.tv_usec = 0;" (assignment_expression "tim.it_value.tv_usec = 0" (field_expression "tim.it_value.tv_usec" (field_expression "tim.it_value" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "setitimer(ITIMER_REAL,(itimerval *)&tim,(itimerval *)0x0);" (call_expression "setitimer(ITIMER_REAL,(itimerval *)&tim,(itimerval *)0x0)" identifier (argument_list "(ITIMER_REAL,(itimerval *)&tim,(itimerval *)0x0)" ( identifier , (cast_expression "(itimerval *)&tim" ( (type_descriptor "itimerval *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&tim" & identifier)) , (cast_expression "(itimerval *)0x0" ( (type_descriptor "itimerval *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "setitimer(ITIMER_REAL,(itimerval *)0x0,(itimerval *)&tim);" (call_expression "setitimer(ITIMER_REAL,(itimerval *)0x0,(itimerval *)&tim)" identifier (argument_list "(ITIMER_REAL,(itimerval *)0x0,(itimerval *)&tim)" ( identifier , (cast_expression "(itimerval *)0x0" ( (type_descriptor "itimerval *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(itimerval *)&tim" ( (type_descriptor "itimerval *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&tim" & identifier)) ))) ;) (if_statement "if (1 < tim.it_interval.tv_usec) {\n    return (int)(1000000 / (longlong)tim.it_interval.tv_usec);\n  }" if (parenthesized_expression "(1 < tim.it_interval.tv_usec)" ( (binary_expression "1 < tim.it_interval.tv_usec" number_literal < (field_expression "tim.it_interval.tv_usec" (field_expression "tim.it_interval" identifier . field_identifier) . field_identifier)) )) (compound_statement "{\n    return (int)(1000000 / (longlong)tim.it_interval.tv_usec);\n  }" { (return_statement "return (int)(1000000 / (longlong)tim.it_interval.tv_usec);" return (cast_expression "(int)(1000000 / (longlong)tim.it_interval.tv_usec)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(1000000 / (longlong)tim.it_interval.tv_usec)" ( (binary_expression "1000000 / (longlong)tim.it_interval.tv_usec" number_literal / (cast_expression "(longlong)tim.it_interval.tv_usec" ( (type_descriptor "longlong" type_identifier) ) (field_expression "tim.it_interval.tv_usec" (field_expression "tim.it_interval" identifier . field_identifier) . field_identifier))) ))) ;) })) (expression_statement "lVar1 = sysconf(2);" (assignment_expression "lVar1 = sysconf(2)" identifier = (call_expression "sysconf(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (return_statement "return lVar1;" return identifier ;) })))
(translation_unit "long FUN_0001add0(void)\n\n{\n  long lVar1;\n  itimerval local_1c;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x1add7;\n  local_1c.it_interval.tv_sec = 0;\n  local_1c.it_interval.tv_usec = 1;\n  local_1c.it_value.tv_sec = 0;\n  local_1c.it_value.tv_usec = 0;\n  setitimer(ITIMER_REAL,&local_1c,(itimerval *)0x0);\n  setitimer(ITIMER_REAL,(itimerval *)0x0,&local_1c);\n  if (1 < local_1c.it_interval.tv_usec) {\n    return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);\n  }\n  lVar1 = sysconf(2);\n  return lVar1;\n}\n\n" (function_definition "long FUN_0001add0(void)\n\n{\n  long lVar1;\n  itimerval local_1c;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x1add7;\n  local_1c.it_interval.tv_sec = 0;\n  local_1c.it_interval.tv_usec = 1;\n  local_1c.it_value.tv_sec = 0;\n  local_1c.it_value.tv_usec = 0;\n  setitimer(ITIMER_REAL,&local_1c,(itimerval *)0x0);\n  setitimer(ITIMER_REAL,(itimerval *)0x0,&local_1c);\n  if (1 < local_1c.it_interval.tv_usec) {\n    return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);\n  }\n  lVar1 = sysconf(2);\n  return lVar1;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_0001add0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long lVar1;\n  itimerval local_1c;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x1add7;\n  local_1c.it_interval.tv_sec = 0;\n  local_1c.it_interval.tv_usec = 1;\n  local_1c.it_value.tv_sec = 0;\n  local_1c.it_value.tv_usec = 0;\n  setitimer(ITIMER_REAL,&local_1c,(itimerval *)0x0);\n  setitimer(ITIMER_REAL,(itimerval *)0x0,&local_1c);\n  if (1 < local_1c.it_interval.tv_usec) {\n    return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);\n  }\n  lVar1 = sysconf(2);\n  return lVar1;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "itimerval local_1c;" type_identifier identifier ;) (declaration "undefined4 uStack_c;" type_identifier identifier ;) (expression_statement "uStack_c = 0x1add7;" (assignment_expression "uStack_c = 0x1add7" identifier = number_literal) ;) (expression_statement "local_1c.it_interval.tv_sec = 0;" (assignment_expression "local_1c.it_interval.tv_sec = 0" (field_expression "local_1c.it_interval.tv_sec" (field_expression "local_1c.it_interval" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "local_1c.it_interval.tv_usec = 1;" (assignment_expression "local_1c.it_interval.tv_usec = 1" (field_expression "local_1c.it_interval.tv_usec" (field_expression "local_1c.it_interval" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "local_1c.it_value.tv_sec = 0;" (assignment_expression "local_1c.it_value.tv_sec = 0" (field_expression "local_1c.it_value.tv_sec" (field_expression "local_1c.it_value" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "local_1c.it_value.tv_usec = 0;" (assignment_expression "local_1c.it_value.tv_usec = 0" (field_expression "local_1c.it_value.tv_usec" (field_expression "local_1c.it_value" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "setitimer(ITIMER_REAL,&local_1c,(itimerval *)0x0);" (call_expression "setitimer(ITIMER_REAL,&local_1c,(itimerval *)0x0)" identifier (argument_list "(ITIMER_REAL,&local_1c,(itimerval *)0x0)" ( identifier , (pointer_expression "&local_1c" & identifier) , (cast_expression "(itimerval *)0x0" ( (type_descriptor "itimerval *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "setitimer(ITIMER_REAL,(itimerval *)0x0,&local_1c);" (call_expression "setitimer(ITIMER_REAL,(itimerval *)0x0,&local_1c)" identifier (argument_list "(ITIMER_REAL,(itimerval *)0x0,&local_1c)" ( identifier , (cast_expression "(itimerval *)0x0" ( (type_descriptor "itimerval *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&local_1c" & identifier) ))) ;) (if_statement "if (1 < local_1c.it_interval.tv_usec) {\n    return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);\n  }" if (parenthesized_expression "(1 < local_1c.it_interval.tv_usec)" ( (binary_expression "1 < local_1c.it_interval.tv_usec" number_literal < (field_expression "local_1c.it_interval.tv_usec" (field_expression "local_1c.it_interval" identifier . field_identifier) . field_identifier)) )) (compound_statement "{\n    return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);\n  }" { (return_statement "return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);" return (cast_expression "(long)(1000000 / (longlong)local_1c.it_interval.tv_usec)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(1000000 / (longlong)local_1c.it_interval.tv_usec)" ( (binary_expression "1000000 / (longlong)local_1c.it_interval.tv_usec" number_literal / (cast_expression "(longlong)local_1c.it_interval.tv_usec" ( (type_descriptor "longlong" type_identifier) ) (field_expression "local_1c.it_interval.tv_usec" (field_expression "local_1c.it_interval" identifier . field_identifier) . field_identifier))) ))) ;) })) (expression_statement "lVar1 = sysconf(2);" (assignment_expression "lVar1 = sysconf(2)" identifier = (call_expression "sysconf(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (return_statement "return lVar1;" return identifier ;) })))
(translation_unit (function_definition (sized_type_specifier long) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (field_expression (field_expression IDENT . field_identifier) . field_identifier)) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression LIT / (cast_expression ( (type_descriptor TYPE) ) (field_expression (field_expression IDENT . field_identifier) . field_identifier))) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (return_statement return IDENT ;) })))
(function_definition "long FUN_0001add0(void)\n\n{\n  long lVar1;\n  itimerval local_1c;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x1add7;\n  local_1c.it_interval.tv_sec = 0;\n  local_1c.it_interval.tv_usec = 1;\n  local_1c.it_value.tv_sec = 0;\n  local_1c.it_value.tv_usec = 0;\n  setitimer(ITIMER_REAL,&local_1c,(itimerval *)0x0);\n  setitimer(ITIMER_REAL,(itimerval *)0x0,&local_1c);\n  if (1 < local_1c.it_interval.tv_usec) {\n    return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);\n  }\n  lVar1 = sysconf(2);\n  return lVar1;\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_0001add0(void)" (identifier "FUN_0001add0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  long lVar1;\n  itimerval local_1c;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x1add7;\n  local_1c.it_interval.tv_sec = 0;\n  local_1c.it_interval.tv_usec = 1;\n  local_1c.it_value.tv_sec = 0;\n  local_1c.it_value.tv_usec = 0;\n  setitimer(ITIMER_REAL,&local_1c,(itimerval *)0x0);\n  setitimer(ITIMER_REAL,(itimerval *)0x0,&local_1c);\n  if (1 < local_1c.it_interval.tv_usec) {\n    return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);\n  }\n  lVar1 = sysconf(2);\n  return lVar1;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "itimerval local_1c;" (type_identifier "itimerval") (identifier "local_1c") (; ";")) (declaration "undefined4 uStack_c;" (type_identifier "undefined4") (identifier "uStack_c") (; ";")) (expression_statement "uStack_c = 0x1add7;" (assignment_expression "uStack_c = 0x1add7" (identifier "uStack_c") (= "=") (number_literal "0x1add7")) (; ";")) (expression_statement "local_1c.it_interval.tv_sec = 0;" (assignment_expression "local_1c.it_interval.tv_sec = 0" (field_expression "local_1c.it_interval.tv_sec" (field_expression "local_1c.it_interval" (identifier "local_1c") (. ".") (field_identifier "it_interval")) (. ".") (field_identifier "tv_sec")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_1c.it_interval.tv_usec = 1;" (assignment_expression "local_1c.it_interval.tv_usec = 1" (field_expression "local_1c.it_interval.tv_usec" (field_expression "local_1c.it_interval" (identifier "local_1c") (. ".") (field_identifier "it_interval")) (. ".") (field_identifier "tv_usec")) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_1c.it_value.tv_sec = 0;" (assignment_expression "local_1c.it_value.tv_sec = 0" (field_expression "local_1c.it_value.tv_sec" (field_expression "local_1c.it_value" (identifier "local_1c") (. ".") (field_identifier "it_value")) (. ".") (field_identifier "tv_sec")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_1c.it_value.tv_usec = 0;" (assignment_expression "local_1c.it_value.tv_usec = 0" (field_expression "local_1c.it_value.tv_usec" (field_expression "local_1c.it_value" (identifier "local_1c") (. ".") (field_identifier "it_value")) (. ".") (field_identifier "tv_usec")) (= "=") (number_literal "0")) (; ";")) (expression_statement "setitimer(ITIMER_REAL,&local_1c,(itimerval *)0x0);" (call_expression "setitimer(ITIMER_REAL,&local_1c,(itimerval *)0x0)" (identifier "setitimer") (argument_list "(ITIMER_REAL,&local_1c,(itimerval *)0x0)" (( "(") (identifier "ITIMER_REAL") (, ",") (pointer_expression "&local_1c" (& "&") (identifier "local_1c")) (, ",") (cast_expression "(itimerval *)0x0" (( "(") (type_descriptor "itimerval *" (type_identifier "itimerval") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))) (; ";")) (expression_statement "setitimer(ITIMER_REAL,(itimerval *)0x0,&local_1c);" (call_expression "setitimer(ITIMER_REAL,(itimerval *)0x0,&local_1c)" (identifier "setitimer") (argument_list "(ITIMER_REAL,(itimerval *)0x0,&local_1c)" (( "(") (identifier "ITIMER_REAL") (, ",") (cast_expression "(itimerval *)0x0" (( "(") (type_descriptor "itimerval *" (type_identifier "itimerval") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (pointer_expression "&local_1c" (& "&") (identifier "local_1c")) () ")"))) (; ";")) (if_statement "if (1 < local_1c.it_interval.tv_usec) {\n    return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);\n  }" (if "if") (parenthesized_expression "(1 < local_1c.it_interval.tv_usec)" (( "(") (binary_expression "1 < local_1c.it_interval.tv_usec" (number_literal "1") (< "<") (field_expression "local_1c.it_interval.tv_usec" (field_expression "local_1c.it_interval" (identifier "local_1c") (. ".") (field_identifier "it_interval")) (. ".") (field_identifier "tv_usec"))) () ")")) (compound_statement "{\n    return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);\n  }" ({ "{") (return_statement "return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);" (return "return") (cast_expression "(long)(1000000 / (longlong)local_1c.it_interval.tv_usec)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(1000000 / (longlong)local_1c.it_interval.tv_usec)" (( "(") (binary_expression "1000000 / (longlong)local_1c.it_interval.tv_usec" (number_literal "1000000") (/ "/") (cast_expression "(longlong)local_1c.it_interval.tv_usec" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (field_expression "local_1c.it_interval.tv_usec" (field_expression "local_1c.it_interval" (identifier "local_1c") (. ".") (field_identifier "it_interval")) (. ".") (field_identifier "tv_usec")))) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar1 = sysconf(2);" (assignment_expression "lVar1 = sysconf(2)" (identifier "lVar1") (= "=") (call_expression "sysconf(2)" (identifier "sysconf") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (return_statement "return lVar1;" (return "return") (identifier "lVar1") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

int function_1(void)

{
  long lVar1;
  type_1 tim;
  
  tim.it_interval.tv_sec = 0;
  tim.it_interval.tv_usec = 1;
  tim.it_value.tv_sec = 0;
  tim.it_value.tv_usec = 0;
  var_1(ITIMER_REAL,(type_1 *)&tim,(type_1 *)0x0);
  var_1(ITIMER_REAL,(type_1 *)0x0,(type_1 *)&tim);
  if (1 < tim.it_interval.tv_usec) {
    return (int)(1000000 / (type_2)tim.it_interval.tv_usec);
  }
  lVar1 = var_2(2);
  return lVar1;
}


(translation_unit (function_definition type: (sized_type_specifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (return_statement (identifier)))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

long MASKED(void)

{
  long lVar1;
  itimerval local_1c;
  undefined4 uStack_c;
  
  uStack_c = 0x1add7;
  local_1c.it_interval.tv_sec = 0;
  local_1c.it_interval.tv_usec = 1;
  local_1c.it_value.tv_sec = 0;
  local_1c.it_value.tv_usec = 0;
  setitimer(ITIMER_REAL,&local_1c,(itimerval *)0x0);
  setitimer(ITIMER_REAL,(itimerval *)0x0,&local_1c);
  if (1 < local_1c.it_interval.tv_usec) {
    return (long)(1000000 / (longlong)local_1c.it_interval.tv_usec);
  }
  lVar1 = sysconf(2);
  return lVar1;
}

