
void timeval_to_secs(timeval *tvp,time_t *sp,int *sfp)

{
  int iVar1;
  int iVar2;
  
  *sp = tvp->tv_sec;
  iVar1 = tvp->tv_usec % 1000000;
  iVar2 = iVar1 / 1000;
  if (iVar1 % 1000 < 500) {
    *sfp = iVar2;
    return;
  }
  iVar2 = iVar2 + 1;
  *sfp = iVar2;
  if (999 < iVar2) {
    *sp = *sp + 1;
    *sfp = *sfp + -1000;
  }
  return;
}



void timeval_to_secs(int *param_1,int *param_2,int *param_3)

{
  int iVar1;
  
  *param_2 = *param_1;
  iVar1 = (param_1[1] % 1000000) / 1000;
  if ((param_1[1] % 1000000) % 1000 < 500) {
    *param_3 = iVar1;
    return;
  }
  iVar1 = iVar1 + 1;
  *param_3 = iVar1;
  if (999 < iVar1) {
    *param_2 = *param_2 + 1;
    *param_3 = *param_3 + -1000;
  }
  return;
}


lw v0,0x0(a0)
sw v0,0x0(a1)
lw a0,0x4(a0)
lui v0,0x431b
ori v0,v0,0xde83
mult a0,v0
mfhi v0
sra v0,v0,0x12
sra v1,a0,0x1f
subu v0,v0,v1
lui v1,0xf
addiu v1,v1,0x4240
mul a3,v0,v1
subu v0,a0,a3
lui v1,0x1062
addiu v1,v1,0x4dd3
mult v0,v1
mfhi v1
sra v1,v1,0x6
sra a0,v0,0x1f
subu v1,v1,a0
li a0,0x3e8
mul a3,v1,a0
subu v0,v0,a3
slti v0,v0,0x1f4
beq v0,zero,0x000e7164
_nop
jr ra
_sw v1,0x0(a2)
addiu v1,v1,0x1
sw v1,0x0(a2)
slti v1,v1,0x3e8
bne v1,zero,0x000e7190
_nop
lw v0,0x0(a1)
addiu v0,v0,0x1
sw v0,0x0(a1)
lw v0,0x0(a2)
addiu v0,v0,-0x3e8
sw v0,0x0(a2)
jr ra
_nop
(translation_unit "void timeval_to_secs(int *param_1,int *param_2,int *param_3)\n\n{\n  int iVar1;\n  \n  *param_2 = *param_1;\n  iVar1 = (param_1[1] % 1000000) / 1000;\n  if ((param_1[1] % 1000000) % 1000 < 500) {\n    *param_3 = iVar1;\n    return;\n  }\n  iVar1 = iVar1 + 1;\n  *param_3 = iVar1;\n  if (999 < iVar1) {\n    *param_2 = *param_2 + 1;\n    *param_3 = *param_3 + -1000;\n  }\n  return;\n}\n\n" (function_definition "void timeval_to_secs(int *param_1,int *param_2,int *param_3)\n\n{\n  int iVar1;\n  \n  *param_2 = *param_1;\n  iVar1 = (param_1[1] % 1000000) / 1000;\n  if ((param_1[1] % 1000000) % 1000 < 500) {\n    *param_3 = iVar1;\n    return;\n  }\n  iVar1 = iVar1 + 1;\n  *param_3 = iVar1;\n  if (999 < iVar1) {\n    *param_2 = *param_2 + 1;\n    *param_3 = *param_3 + -1000;\n  }\n  return;\n}" primitive_type (function_declarator "timeval_to_secs(int *param_1,int *param_2,int *param_3)" identifier (parameter_list "(int *param_1,int *param_2,int *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  \n  *param_2 = *param_1;\n  iVar1 = (param_1[1] % 1000000) / 1000;\n  if ((param_1[1] % 1000000) % 1000 < 500) {\n    *param_3 = iVar1;\n    return;\n  }\n  iVar1 = iVar1 + 1;\n  *param_3 = iVar1;\n  if (999 < iVar1) {\n    *param_2 = *param_2 + 1;\n    *param_3 = *param_3 + -1000;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "*param_2 = *param_1;" (assignment_expression "*param_2 = *param_1" (pointer_expression "*param_2" * identifier) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar1 = (param_1[1] % 1000000) / 1000;" (assignment_expression "iVar1 = (param_1[1] % 1000000) / 1000" identifier = (binary_expression "(param_1[1] % 1000000) / 1000" (parenthesized_expression "(param_1[1] % 1000000)" ( (binary_expression "param_1[1] % 1000000" (subscript_expression "param_1[1]" identifier [ number_literal ]) % number_literal) )) / number_literal)) ;) (if_statement "if ((param_1[1] % 1000000) % 1000 < 500) {\n    *param_3 = iVar1;\n    return;\n  }" if (parenthesized_expression "((param_1[1] % 1000000) % 1000 < 500)" ( (binary_expression "(param_1[1] % 1000000) % 1000 < 500" (binary_expression "(param_1[1] % 1000000) % 1000" (parenthesized_expression "(param_1[1] % 1000000)" ( (binary_expression "param_1[1] % 1000000" (subscript_expression "param_1[1]" identifier [ number_literal ]) % number_literal) )) % number_literal) < number_literal) )) (compound_statement "{\n    *param_3 = iVar1;\n    return;\n  }" { (expression_statement "*param_3 = iVar1;" (assignment_expression "*param_3 = iVar1" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (expression_statement "*param_3 = iVar1;" (assignment_expression "*param_3 = iVar1" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (999 < iVar1) {\n    *param_2 = *param_2 + 1;\n    *param_3 = *param_3 + -1000;\n  }" if (parenthesized_expression "(999 < iVar1)" ( (binary_expression "999 < iVar1" number_literal < identifier) )) (compound_statement "{\n    *param_2 = *param_2 + 1;\n    *param_3 = *param_3 + -1000;\n  }" { (expression_statement "*param_2 = *param_2 + 1;" (assignment_expression "*param_2 = *param_2 + 1" (pointer_expression "*param_2" * identifier) = (binary_expression "*param_2 + 1" (pointer_expression "*param_2" * identifier) + number_literal)) ;) (expression_statement "*param_3 = *param_3 + -1000;" (assignment_expression "*param_3 = *param_3 + -1000" (pointer_expression "*param_3" * identifier) = (binary_expression "*param_3 + -1000" (pointer_expression "*param_3" * identifier) + number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void timeval_to_secs(timeval *tvp,time_t *sp,int *sfp)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  *sp = tvp->tv_sec;\n  iVar1 = tvp->tv_usec % 1000000;\n  iVar2 = iVar1 / 1000;\n  if (iVar1 % 1000 < 500) {\n    *sfp = iVar2;\n    return;\n  }\n  iVar2 = iVar2 + 1;\n  *sfp = iVar2;\n  if (999 < iVar2) {\n    *sp = *sp + 1;\n    *sfp = *sfp + -1000;\n  }\n  return;\n}\n\n" (function_definition "void timeval_to_secs(timeval *tvp,time_t *sp,int *sfp)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  *sp = tvp->tv_sec;\n  iVar1 = tvp->tv_usec % 1000000;\n  iVar2 = iVar1 / 1000;\n  if (iVar1 % 1000 < 500) {\n    *sfp = iVar2;\n    return;\n  }\n  iVar2 = iVar2 + 1;\n  *sfp = iVar2;\n  if (999 < iVar2) {\n    *sp = *sp + 1;\n    *sfp = *sfp + -1000;\n  }\n  return;\n}" primitive_type (function_declarator "timeval_to_secs(timeval *tvp,time_t *sp,int *sfp)" identifier (parameter_list "(timeval *tvp,time_t *sp,int *sfp)" ( (parameter_declaration "timeval *tvp" type_identifier (pointer_declarator "*tvp" * identifier)) , (parameter_declaration "time_t *sp" type_identifier (pointer_declarator "*sp" * identifier)) , (parameter_declaration "int *sfp" primitive_type (pointer_declarator "*sfp" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  \n  *sp = tvp->tv_sec;\n  iVar1 = tvp->tv_usec % 1000000;\n  iVar2 = iVar1 / 1000;\n  if (iVar1 % 1000 < 500) {\n    *sfp = iVar2;\n    return;\n  }\n  iVar2 = iVar2 + 1;\n  *sfp = iVar2;\n  if (999 < iVar2) {\n    *sp = *sp + 1;\n    *sfp = *sfp + -1000;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (expression_statement "*sp = tvp->tv_sec;" (assignment_expression "*sp = tvp->tv_sec" (pointer_expression "*sp" * identifier) = (field_expression "tvp->tv_sec" identifier -> field_identifier)) ;) (expression_statement "iVar1 = tvp->tv_usec % 1000000;" (assignment_expression "iVar1 = tvp->tv_usec % 1000000" identifier = (binary_expression "tvp->tv_usec % 1000000" (field_expression "tvp->tv_usec" identifier -> field_identifier) % number_literal)) ;) (expression_statement "iVar2 = iVar1 / 1000;" (assignment_expression "iVar2 = iVar1 / 1000" identifier = (binary_expression "iVar1 / 1000" identifier / number_literal)) ;) (if_statement "if (iVar1 % 1000 < 500) {\n    *sfp = iVar2;\n    return;\n  }" if (parenthesized_expression "(iVar1 % 1000 < 500)" ( (binary_expression "iVar1 % 1000 < 500" (binary_expression "iVar1 % 1000" identifier % number_literal) < number_literal) )) (compound_statement "{\n    *sfp = iVar2;\n    return;\n  }" { (expression_statement "*sfp = iVar2;" (assignment_expression "*sfp = iVar2" (pointer_expression "*sfp" * identifier) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "*sfp = iVar2;" (assignment_expression "*sfp = iVar2" (pointer_expression "*sfp" * identifier) = identifier) ;) (if_statement "if (999 < iVar2) {\n    *sp = *sp + 1;\n    *sfp = *sfp + -1000;\n  }" if (parenthesized_expression "(999 < iVar2)" ( (binary_expression "999 < iVar2" number_literal < identifier) )) (compound_statement "{\n    *sp = *sp + 1;\n    *sfp = *sfp + -1000;\n  }" { (expression_statement "*sp = *sp + 1;" (assignment_expression "*sp = *sp + 1" (pointer_expression "*sp" * identifier) = (binary_expression "*sp + 1" (pointer_expression "*sp" * identifier) + number_literal)) ;) (expression_statement "*sfp = *sfp + -1000;" (assignment_expression "*sfp = *sfp + -1000" (pointer_expression "*sfp" * identifier) = (binary_expression "*sfp + -1000" (pointer_expression "*sfp" * identifier) + number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void timeval_to_secs(int *param_1,int *param_2,int *param_3)\n\n{\n  int iVar1;\n  \n  *param_2 = *param_1;\n  iVar1 = (param_1[1] % 1000000) / 1000;\n  if ((param_1[1] % 1000000) % 1000 < 500) {\n    *param_3 = iVar1;\n    return;\n  }\n  iVar1 = iVar1 + 1;\n  *param_3 = iVar1;\n  if (999 < iVar1) {\n    *param_2 = *param_2 + 1;\n    *param_3 = *param_3 + -1000;\n  }\n  return;\n}\n\n" (function_definition "void timeval_to_secs(int *param_1,int *param_2,int *param_3)\n\n{\n  int iVar1;\n  \n  *param_2 = *param_1;\n  iVar1 = (param_1[1] % 1000000) / 1000;\n  if ((param_1[1] % 1000000) % 1000 < 500) {\n    *param_3 = iVar1;\n    return;\n  }\n  iVar1 = iVar1 + 1;\n  *param_3 = iVar1;\n  if (999 < iVar1) {\n    *param_2 = *param_2 + 1;\n    *param_3 = *param_3 + -1000;\n  }\n  return;\n}" primitive_type (function_declarator "timeval_to_secs(int *param_1,int *param_2,int *param_3)" identifier (parameter_list "(int *param_1,int *param_2,int *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  \n  *param_2 = *param_1;\n  iVar1 = (param_1[1] % 1000000) / 1000;\n  if ((param_1[1] % 1000000) % 1000 < 500) {\n    *param_3 = iVar1;\n    return;\n  }\n  iVar1 = iVar1 + 1;\n  *param_3 = iVar1;\n  if (999 < iVar1) {\n    *param_2 = *param_2 + 1;\n    *param_3 = *param_3 + -1000;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "*param_2 = *param_1;" (assignment_expression "*param_2 = *param_1" (pointer_expression "*param_2" * identifier) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar1 = (param_1[1] % 1000000) / 1000;" (assignment_expression "iVar1 = (param_1[1] % 1000000) / 1000" identifier = (binary_expression "(param_1[1] % 1000000) / 1000" (parenthesized_expression "(param_1[1] % 1000000)" ( (binary_expression "param_1[1] % 1000000" (subscript_expression "param_1[1]" identifier [ number_literal ]) % number_literal) )) / number_literal)) ;) (if_statement "if ((param_1[1] % 1000000) % 1000 < 500) {\n    *param_3 = iVar1;\n    return;\n  }" if (parenthesized_expression "((param_1[1] % 1000000) % 1000 < 500)" ( (binary_expression "(param_1[1] % 1000000) % 1000 < 500" (binary_expression "(param_1[1] % 1000000) % 1000" (parenthesized_expression "(param_1[1] % 1000000)" ( (binary_expression "param_1[1] % 1000000" (subscript_expression "param_1[1]" identifier [ number_literal ]) % number_literal) )) % number_literal) < number_literal) )) (compound_statement "{\n    *param_3 = iVar1;\n    return;\n  }" { (expression_statement "*param_3 = iVar1;" (assignment_expression "*param_3 = iVar1" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (expression_statement "*param_3 = iVar1;" (assignment_expression "*param_3 = iVar1" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (999 < iVar1) {\n    *param_2 = *param_2 + 1;\n    *param_3 = *param_3 + -1000;\n  }" if (parenthesized_expression "(999 < iVar1)" ( (binary_expression "999 < iVar1" number_literal < identifier) )) (compound_statement "{\n    *param_2 = *param_2 + 1;\n    *param_3 = *param_3 + -1000;\n  }" { (expression_statement "*param_2 = *param_2 + 1;" (assignment_expression "*param_2 = *param_2 + 1" (pointer_expression "*param_2" * identifier) = (binary_expression "*param_2 + 1" (pointer_expression "*param_2" * identifier) + number_literal)) ;) (expression_statement "*param_3 = *param_3 + -1000;" (assignment_expression "*param_3 = *param_3 + -1000" (pointer_expression "*param_3" * identifier) = (binary_expression "*param_3 + -1000" (pointer_expression "*param_3" * identifier) + number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (expression_statement (assignment_expression (pointer_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 (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) % LIT) )) % LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) })) (return_statement return ;) })))
(function_definition "void timeval_to_secs(int *param_1,int *param_2,int *param_3)\n\n{\n  int iVar1;\n  \n  *param_2 = *param_1;\n  iVar1 = (param_1[1] % 1000000) / 1000;\n  if ((param_1[1] % 1000000) % 1000 < 500) {\n    *param_3 = iVar1;\n    return;\n  }\n  iVar1 = iVar1 + 1;\n  *param_3 = iVar1;\n  if (999 < iVar1) {\n    *param_2 = *param_2 + 1;\n    *param_3 = *param_3 + -1000;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "timeval_to_secs(int *param_1,int *param_2,int *param_3)" (identifier "timeval_to_secs") (parameter_list "(int *param_1,int *param_2,int *param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  int iVar1;\n  \n  *param_2 = *param_1;\n  iVar1 = (param_1[1] % 1000000) / 1000;\n  if ((param_1[1] % 1000000) % 1000 < 500) {\n    *param_3 = iVar1;\n    return;\n  }\n  iVar1 = iVar1 + 1;\n  *param_3 = iVar1;\n  if (999 < iVar1) {\n    *param_2 = *param_2 + 1;\n    *param_3 = *param_3 + -1000;\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (expression_statement "*param_2 = *param_1;" (assignment_expression "*param_2 = *param_1" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "iVar1 = (param_1[1] % 1000000) / 1000;" (assignment_expression "iVar1 = (param_1[1] % 1000000) / 1000" (identifier "iVar1") (= "=") (binary_expression "(param_1[1] % 1000000) / 1000" (parenthesized_expression "(param_1[1] % 1000000)" (( "(") (binary_expression "param_1[1] % 1000000" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (% "%") (number_literal "1000000")) () ")")) (/ "/") (number_literal "1000"))) (; ";")) (if_statement "if ((param_1[1] % 1000000) % 1000 < 500) {\n    *param_3 = iVar1;\n    return;\n  }" (if "if") (parenthesized_expression "((param_1[1] % 1000000) % 1000 < 500)" (( "(") (binary_expression "(param_1[1] % 1000000) % 1000 < 500" (binary_expression "(param_1[1] % 1000000) % 1000" (parenthesized_expression "(param_1[1] % 1000000)" (( "(") (binary_expression "param_1[1] % 1000000" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (% "%") (number_literal "1000000")) () ")")) (% "%") (number_literal "1000")) (< "<") (number_literal "500")) () ")")) (compound_statement "{\n    *param_3 = iVar1;\n    return;\n  }" ({ "{") (expression_statement "*param_3 = iVar1;" (assignment_expression "*param_3 = iVar1" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "iVar1")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" (identifier "iVar1") (= "=") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_3 = iVar1;" (assignment_expression "*param_3 = iVar1" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "iVar1")) (; ";")) (if_statement "if (999 < iVar1) {\n    *param_2 = *param_2 + 1;\n    *param_3 = *param_3 + -1000;\n  }" (if "if") (parenthesized_expression "(999 < iVar1)" (( "(") (binary_expression "999 < iVar1" (number_literal "999") (< "<") (identifier "iVar1")) () ")")) (compound_statement "{\n    *param_2 = *param_2 + 1;\n    *param_3 = *param_3 + -1000;\n  }" ({ "{") (expression_statement "*param_2 = *param_2 + 1;" (assignment_expression "*param_2 = *param_2 + 1" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "*param_2 + 1" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_3 = *param_3 + -1000;" (assignment_expression "*param_3 = *param_3 + -1000" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (binary_expression "*param_3 + -1000" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (number_literal "-1000"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (pointer_expression argument: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) (return_statement))))

void MASKED(int *param_1,int *param_2,int *param_3)

{
  int iVar1;
  
  *param_2 = *param_1;
  iVar1 = (param_1[1] % 1000000) / 1000;
  if ((param_1[1] % 1000000) % 1000 < 500) {
    *param_3 = iVar1;
    return;
  }
  iVar1 = iVar1 + 1;
  *param_3 = iVar1;
  if (999 < iVar1) {
    *param_2 = *param_2 + 1;
    *param_3 = *param_3 + -1000;
  }
  return;
}

