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

void print_timeval(FILE *fp,timeval *tvp)

{
  int iVar1;
  int iVar2;
  int iVar3;
  
  iVar1 = tvp->tv_sec;
  iVar2 = tvp->tv_usec % 1000000;
  iVar3 = iVar2 / 1000;
  if ((499 < iVar2 % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {
    iVar1 = iVar1 + 1;
    iVar3 = 0;
  }
  iVar2 = locale_decpoint();
  __fprintf_chk(fp,1,"%ldm%d%c%03ds",iVar1 / 0x3c,iVar1 % 0x3c,iVar2,iVar3);
  return;
}



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

void print_timeval(undefined4 param_1,int *param_2)

{
  undefined4 uVar1;
  int iVar2;
  int iVar3;
  
  iVar2 = *param_2;
  iVar3 = (param_2[1] % 1000000) / 1000;
  if ((499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {
    iVar2 = iVar2 + 1;
    iVar3 = 0;
  }
  uVar1 = locale_decpoint();
  __fprintf_chk(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3);
  return;
}


PUSH EDI
MOV EDX,0x431bde83
PUSH ESI
PUSH EBX
MOV EAX,dword ptr [ESP + 0x14]
CALL 0x000312b0
ADD EBX,0x9b5af
MOV EDI,dword ptr [EAX + 0x4]
MOV ESI,dword ptr [EAX]
MOV EAX,EDI
IMUL EDX
MOV EAX,EDI
SAR EAX,0x1f
SAR EDX,0x12
MOV ECX,EDX
MOV EDX,0x10624dd3
SUB ECX,EAX
IMUL ECX,ECX,0xf4240
SUB EDI,ECX
MOV EAX,EDI
MOV ECX,EDI
IMUL EDX
MOV EAX,EDI
SAR EAX,0x1f
SAR EDX,0x6
MOV EDI,EDX
SUB EDI,EAX
IMUL EAX,EDI,0x3e8
SUB ECX,EAX
CMP ECX,0x1f3
JLE 0x000d6aab
ADD EDI,0x1
CMP EDI,0x3e8
JNZ 0x000d6aab
ADD ESI,0x1
XOR EDI,EDI
CALL 0x000a6790
SUB ESP,0x4
MOV EDX,0x88888889
PUSH EDI
PUSH EAX
MOV EAX,ESI
IMUL EDX
MOV EAX,ESI
SAR EAX,0x1f
ADD EDX,ESI
SAR EDX,0x5
SUB EDX,EAX
IMUL EAX,EDX,0x3c
SUB ESI,EAX
LEA EAX,[EBX + 0xfffb5dce]
PUSH ESI
PUSH EDX
PUSH EAX
PUSH 0x1
PUSH dword ptr [ESP + 0x2c]
CALL 0x0002ec00
ADD ESP,0x20
POP EBX
POP ESI
POP EDI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid print_timeval(undefined4 param_1,int *param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar2 = *param_2;\n  iVar3 = (param_2[1] % 1000000) / 1000;\n  if ((499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {\n    iVar2 = iVar2 + 1;\n    iVar3 = 0;\n  }\n  uVar1 = locale_decpoint();\n  __fprintf_chk(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3);\n  return;\n}\n\n" comment (function_definition "void print_timeval(undefined4 param_1,int *param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar2 = *param_2;\n  iVar3 = (param_2[1] % 1000000) / 1000;\n  if ((499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {\n    iVar2 = iVar2 + 1;\n    iVar3 = 0;\n  }\n  uVar1 = locale_decpoint();\n  __fprintf_chk(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3);\n  return;\n}" primitive_type (function_declarator "print_timeval(undefined4 param_1,int *param_2)" identifier (parameter_list "(undefined4 param_1,int *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar2 = *param_2;\n  iVar3 = (param_2[1] % 1000000) / 1000;\n  if ((499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {\n    iVar2 = iVar2 + 1;\n    iVar3 = 0;\n  }\n  uVar1 = locale_decpoint();\n  __fprintf_chk(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3);\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "iVar2 = *param_2;" (assignment_expression "iVar2 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "iVar3 = (param_2[1] % 1000000) / 1000;" (assignment_expression "iVar3 = (param_2[1] % 1000000) / 1000" identifier = (binary_expression "(param_2[1] % 1000000) / 1000" (parenthesized_expression "(param_2[1] % 1000000)" ( (binary_expression "param_2[1] % 1000000" (subscript_expression "param_2[1]" identifier [ number_literal ]) % number_literal) )) / number_literal)) ;) (if_statement "if ((499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {\n    iVar2 = iVar2 + 1;\n    iVar3 = 0;\n  }" if (parenthesized_expression "((499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000))" ( (binary_expression "(499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)" (parenthesized_expression "(499 < (param_2[1] % 1000000) % 1000)" ( (binary_expression "499 < (param_2[1] % 1000000) % 1000" number_literal < (binary_expression "(param_2[1] % 1000000) % 1000" (parenthesized_expression "(param_2[1] % 1000000)" ( (binary_expression "param_2[1] % 1000000" (subscript_expression "param_2[1]" identifier [ number_literal ]) % number_literal) )) % number_literal)) )) && (parenthesized_expression "(iVar3 = iVar3 + 1, iVar3 == 1000)" ( (comma_expression "iVar3 = iVar3 + 1, iVar3 == 1000" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) , (binary_expression "iVar3 == 1000" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar2 = iVar2 + 1;\n    iVar3 = 0;\n  }" { (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (expression_statement "uVar1 = locale_decpoint();" (assignment_expression "uVar1 = locale_decpoint()" identifier = (call_expression "locale_decpoint()" identifier (argument_list "()" ( )))) ;) (expression_statement "__fprintf_chk(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3);" (call_expression "__fprintf_chk(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3)" identifier (argument_list "(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3)" ( identifier , number_literal , (string_literal ""%ldm%d%c%03ds"" " string_content ") , (binary_expression "iVar2 / 0x3c" identifier / number_literal) , (binary_expression "iVar2 % 0x3c" identifier % number_literal) , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid print_timeval(FILE *fp,timeval *tvp)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar1 = tvp->tv_sec;\n  iVar2 = tvp->tv_usec % 1000000;\n  iVar3 = iVar2 / 1000;\n  if ((499 < iVar2 % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {\n    iVar1 = iVar1 + 1;\n    iVar3 = 0;\n  }\n  iVar2 = locale_decpoint();\n  __fprintf_chk(fp,1,"%ldm%d%c%03ds",iVar1 / 0x3c,iVar1 % 0x3c,iVar2,iVar3);\n  return;\n}\n\n" comment comment (function_definition "void print_timeval(FILE *fp,timeval *tvp)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar1 = tvp->tv_sec;\n  iVar2 = tvp->tv_usec % 1000000;\n  iVar3 = iVar2 / 1000;\n  if ((499 < iVar2 % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {\n    iVar1 = iVar1 + 1;\n    iVar3 = 0;\n  }\n  iVar2 = locale_decpoint();\n  __fprintf_chk(fp,1,"%ldm%d%c%03ds",iVar1 / 0x3c,iVar1 % 0x3c,iVar2,iVar3);\n  return;\n}" primitive_type (function_declarator "print_timeval(FILE *fp,timeval *tvp)" identifier (parameter_list "(FILE *fp,timeval *tvp)" ( (parameter_declaration "FILE *fp" type_identifier (pointer_declarator "*fp" * identifier)) , (parameter_declaration "timeval *tvp" type_identifier (pointer_declarator "*tvp" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar1 = tvp->tv_sec;\n  iVar2 = tvp->tv_usec % 1000000;\n  iVar3 = iVar2 / 1000;\n  if ((499 < iVar2 % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {\n    iVar1 = iVar1 + 1;\n    iVar3 = 0;\n  }\n  iVar2 = locale_decpoint();\n  __fprintf_chk(fp,1,"%ldm%d%c%03ds",iVar1 / 0x3c,iVar1 % 0x3c,iVar2,iVar3);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "iVar1 = tvp->tv_sec;" (assignment_expression "iVar1 = tvp->tv_sec" identifier = (field_expression "tvp->tv_sec" identifier -> field_identifier)) ;) (expression_statement "iVar2 = tvp->tv_usec % 1000000;" (assignment_expression "iVar2 = tvp->tv_usec % 1000000" identifier = (binary_expression "tvp->tv_usec % 1000000" (field_expression "tvp->tv_usec" identifier -> field_identifier) % number_literal)) ;) (expression_statement "iVar3 = iVar2 / 1000;" (assignment_expression "iVar3 = iVar2 / 1000" identifier = (binary_expression "iVar2 / 1000" identifier / number_literal)) ;) (if_statement "if ((499 < iVar2 % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {\n    iVar1 = iVar1 + 1;\n    iVar3 = 0;\n  }" if (parenthesized_expression "((499 < iVar2 % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000))" ( (binary_expression "(499 < iVar2 % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)" (parenthesized_expression "(499 < iVar2 % 1000)" ( (binary_expression "499 < iVar2 % 1000" number_literal < (binary_expression "iVar2 % 1000" identifier % number_literal)) )) && (parenthesized_expression "(iVar3 = iVar3 + 1, iVar3 == 1000)" ( (comma_expression "iVar3 = iVar3 + 1, iVar3 == 1000" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) , (binary_expression "iVar3 == 1000" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar1 = iVar1 + 1;\n    iVar3 = 0;\n  }" { (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (expression_statement "iVar2 = locale_decpoint();" (assignment_expression "iVar2 = locale_decpoint()" identifier = (call_expression "locale_decpoint()" identifier (argument_list "()" ( )))) ;) (expression_statement "__fprintf_chk(fp,1,"%ldm%d%c%03ds",iVar1 / 0x3c,iVar1 % 0x3c,iVar2,iVar3);" (call_expression "__fprintf_chk(fp,1,"%ldm%d%c%03ds",iVar1 / 0x3c,iVar1 % 0x3c,iVar2,iVar3)" identifier (argument_list "(fp,1,"%ldm%d%c%03ds",iVar1 / 0x3c,iVar1 % 0x3c,iVar2,iVar3)" ( identifier , number_literal , (string_literal ""%ldm%d%c%03ds"" " string_content ") , (binary_expression "iVar1 / 0x3c" identifier / number_literal) , (binary_expression "iVar1 % 0x3c" identifier % number_literal) , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void print_timeval(undefined4 param_1,int *param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar2 = *param_2;\n  iVar3 = (param_2[1] % 1000000) / 1000;\n  if ((499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {\n    iVar2 = iVar2 + 1;\n    iVar3 = 0;\n  }\n  uVar1 = locale_decpoint();\n  __fprintf_chk(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3);\n  return;\n}\n\n" (function_definition "void print_timeval(undefined4 param_1,int *param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar2 = *param_2;\n  iVar3 = (param_2[1] % 1000000) / 1000;\n  if ((499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {\n    iVar2 = iVar2 + 1;\n    iVar3 = 0;\n  }\n  uVar1 = locale_decpoint();\n  __fprintf_chk(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3);\n  return;\n}" primitive_type (function_declarator "print_timeval(undefined4 param_1,int *param_2)" identifier (parameter_list "(undefined4 param_1,int *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar2 = *param_2;\n  iVar3 = (param_2[1] % 1000000) / 1000;\n  if ((499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {\n    iVar2 = iVar2 + 1;\n    iVar3 = 0;\n  }\n  uVar1 = locale_decpoint();\n  __fprintf_chk(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3);\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "iVar2 = *param_2;" (assignment_expression "iVar2 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "iVar3 = (param_2[1] % 1000000) / 1000;" (assignment_expression "iVar3 = (param_2[1] % 1000000) / 1000" identifier = (binary_expression "(param_2[1] % 1000000) / 1000" (parenthesized_expression "(param_2[1] % 1000000)" ( (binary_expression "param_2[1] % 1000000" (subscript_expression "param_2[1]" identifier [ number_literal ]) % number_literal) )) / number_literal)) ;) (if_statement "if ((499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {\n    iVar2 = iVar2 + 1;\n    iVar3 = 0;\n  }" if (parenthesized_expression "((499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000))" ( (binary_expression "(499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)" (parenthesized_expression "(499 < (param_2[1] % 1000000) % 1000)" ( (binary_expression "499 < (param_2[1] % 1000000) % 1000" number_literal < (binary_expression "(param_2[1] % 1000000) % 1000" (parenthesized_expression "(param_2[1] % 1000000)" ( (binary_expression "param_2[1] % 1000000" (subscript_expression "param_2[1]" identifier [ number_literal ]) % number_literal) )) % number_literal)) )) && (parenthesized_expression "(iVar3 = iVar3 + 1, iVar3 == 1000)" ( (comma_expression "iVar3 = iVar3 + 1, iVar3 == 1000" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) , (binary_expression "iVar3 == 1000" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar2 = iVar2 + 1;\n    iVar3 = 0;\n  }" { (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (expression_statement "uVar1 = locale_decpoint();" (assignment_expression "uVar1 = locale_decpoint()" identifier = (call_expression "locale_decpoint()" identifier (argument_list "()" ( )))) ;) (expression_statement "__fprintf_chk(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3);" (call_expression "__fprintf_chk(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3)" identifier (argument_list "(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3)" ( identifier , number_literal , (string_literal ""%ldm%d%c%03ds"" " string_content ") , (binary_expression "iVar2 / 0x3c" identifier / number_literal) , (binary_expression "iVar2 % 0x3c" identifier % number_literal) , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) % LIT) )) / LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) % LIT) )) % LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , (binary_expression IDENT / LIT) , (binary_expression IDENT % LIT) , IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void print_timeval(undefined4 param_1,int *param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar2 = *param_2;\n  iVar3 = (param_2[1] % 1000000) / 1000;\n  if ((499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {\n    iVar2 = iVar2 + 1;\n    iVar3 = 0;\n  }\n  uVar1 = locale_decpoint();\n  __fprintf_chk(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3);\n  return;\n}" (primitive_type "void") (function_declarator "print_timeval(undefined4 param_1,int *param_2)" (identifier "print_timeval") (parameter_list "(undefined4 param_1,int *param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar2 = *param_2;\n  iVar3 = (param_2[1] % 1000000) / 1000;\n  if ((499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {\n    iVar2 = iVar2 + 1;\n    iVar3 = 0;\n  }\n  uVar1 = locale_decpoint();\n  __fprintf_chk(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3);\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (expression_statement "iVar2 = *param_2;" (assignment_expression "iVar2 = *param_2" (identifier "iVar2") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "iVar3 = (param_2[1] % 1000000) / 1000;" (assignment_expression "iVar3 = (param_2[1] % 1000000) / 1000" (identifier "iVar3") (= "=") (binary_expression "(param_2[1] % 1000000) / 1000" (parenthesized_expression "(param_2[1] % 1000000)" (( "(") (binary_expression "param_2[1] % 1000000" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (% "%") (number_literal "1000000")) () ")")) (/ "/") (number_literal "1000"))) (; ";")) (if_statement "if ((499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {\n    iVar2 = iVar2 + 1;\n    iVar3 = 0;\n  }" (if "if") (parenthesized_expression "((499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000))" (( "(") (binary_expression "(499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)" (parenthesized_expression "(499 < (param_2[1] % 1000000) % 1000)" (( "(") (binary_expression "499 < (param_2[1] % 1000000) % 1000" (number_literal "499") (< "<") (binary_expression "(param_2[1] % 1000000) % 1000" (parenthesized_expression "(param_2[1] % 1000000)" (( "(") (binary_expression "param_2[1] % 1000000" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (% "%") (number_literal "1000000")) () ")")) (% "%") (number_literal "1000"))) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = iVar3 + 1, iVar3 == 1000)" (( "(") (comma_expression "iVar3 = iVar3 + 1, iVar3 == 1000" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (, ",") (binary_expression "iVar3 == 1000" (identifier "iVar3") (== "==") (number_literal "1000"))) () ")"))) () ")")) (compound_statement "{\n    iVar2 = iVar2 + 1;\n    iVar3 = 0;\n  }" ({ "{") (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar1 = locale_decpoint();" (assignment_expression "uVar1 = locale_decpoint()" (identifier "uVar1") (= "=") (call_expression "locale_decpoint()" (identifier "locale_decpoint") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "__fprintf_chk(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3);" (call_expression "__fprintf_chk(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3)" (identifier "__fprintf_chk") (argument_list "(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3)" (( "(") (identifier "param_1") (, ",") (number_literal "1") (, ",") (string_literal ""%ldm%d%c%03ds"" (" """) (string_content "%ldm%d%c%03ds") (" """)) (, ",") (binary_expression "iVar2 / 0x3c" (identifier "iVar2") (/ "/") (number_literal "0x3c")) (, ",") (binary_expression "iVar2 % 0x3c" (identifier "iVar2") (% "%") (number_literal "0x3c")) (, ",") (identifier "uVar1") (, ",") (identifier "iVar3") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(type_1 *fp,type_2 *tvp)

{
  int var_3;
  int var_1;
  int var_2;
  
  var_3 = tvp->tv_sec;
  var_1 = tvp->tv_usec % 1000000;
  var_2 = var_1 / 1000;
  if ((499 < var_1 % 1000) && (var_2 = var_2 + 1, var_2 == 1000)) {
    var_3 = var_3 + 1;
    var_2 = 0;
  }
  var_1 = var_4();
  var_5(fp,1,"%ldm%d%c%03ds",var_3 / 0x3c,var_3 % 0x3c,var_1,var_2);
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content)) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (return_statement))))

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

void MASKED(undefined4 param_1,int *param_2)

{
  undefined4 uVar1;
  int iVar2;
  int iVar3;
  
  iVar2 = *param_2;
  iVar3 = (param_2[1] % 1000000) / 1000;
  if ((499 < (param_2[1] % 1000000) % 1000) && (iVar3 = iVar3 + 1, iVar3 == 1000)) {
    iVar2 = iVar2 + 1;
    iVar3 = 0;
  }
  uVar1 = locale_decpoint();
  __fprintf_chk(param_1,1,"%ldm%d%c%03ds",iVar2 / 0x3c,iVar2 % 0x3c,uVar1,iVar3);
  return;
}

