
void computeHMS(DateTime *p)

{
  uint uVar1;
  int extraout_v1;
  uint uVar2;
  double dVar3;
  int iVar4;
  
  if (p->validJD == '\0') {
    computeJD(p);
  }
  uVar1 = (uint)p->iJD;
  uVar2 = uVar1 + 43200000;
  (*(code *)PTR___moddi3_000f52e4)((uint)(uVar2 < uVar1) + *(int *)&p->iJD,uVar2,0,86400000);
  p->validHMS = '\x01';
  p->rawS = '\0';
  dVar3 = *(double *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26e0);
  iVar4 = (int)((double)extraout_v1 / dVar3);
  p->h = iVar4 / 0xe10;
  p->m = (iVar4 % 0xe10) / 0x3c;
  p->s = (double)((iVar4 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar3 - (double)iVar4);
  return;
}



void FUN_0002809c(int *param_1)

{
  int extraout_v1;
  uint uVar1;
  double dVar2;
  int iVar3;
  
  if (*(char *)(param_1 + 10) == '\0') {
    FUN_00027bc0();
  }
  uVar1 = param_1[1] + 43200000;
  (*(code *)PTR_FUN_000f52e4)((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000);
  *(undefined1 *)((int)param_1 + 0x2b) = 1;
  *(undefined1 *)((int)param_1 + 0x29) = 0;
  dVar2 = *(double *)(PTR_DAT_000f52d4 + 0x26e0);
  iVar3 = (int)((double)extraout_v1 / dVar2);
  param_1[5] = iVar3 / 0xe10;
  param_1[6] = (iVar3 % 0xe10) / 0x3c;
  *(double *)(param_1 + 8) =
       (double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3);
  return;
}


lui gp,0xd
addiu gp,gp,0x5204
addu gp,gp,t9
addiu sp,sp,-0x20
sw s0,0x18(sp)
sw gp,0x10(sp)
sw ra,0x1c(sp)
lb v0,0x28(a0)
beq v0,zero,0x000281ac
_or s0,a0,zero
lui a1,0x293
lw v0,0x4(s0)
lw a0,0x0(s0)
lui a3,0x526
addiu a1,a1,0x2e00
lw t9,-0x7fbc(gp)
or a2,zero,zero
addu a1,v0,a1
ori a3,a3,0x5c00
sltu v0,a1,v0
jalr t9
_addu a0,v0,a0
li v0,0x1
mtc1 v1,f0
lw gp,0x10(sp)
lui a0,0x91a2
sb v0,0x2b(s0)
ori a0,a0,0xb3c5
sb zero,0x29(s0)
lw ra,0x1c(sp)
lw v0,-0x7fcc(gp)
ldc1 f2,0x26e0(v0)
cvt.d.W f0,f0
div.D f0,f0,f2
trunc.w.D f2,f0
mfc1 v1,f2
mult v1,a0
cvt.d.W f2,f2
sra v0,v1,0x1f
mfhi a0
sub.D D f2,f0,f2
addu a0,a0,v1
sra a0,a0,0xb
subu a0,a0,v0
li v0,-0xe10
sw a0,0x14(s0)
mul a1,a0,v0
lui v0,0x8888
ori v0,v0,0x8889
addu v1,a1,v1
mult v1,v0
sra a0,v1,0x1f
mfhi v0
addu v0,v0,v1
sra v0,v0,0x5
subu v0,v0,a0
sll a0,v0,0x4
sw v0,0x18(s0)
subu v0,v0,a0
sll v0,v0,0x2
addu v0,v0,v1
mtc1 v0,f0
cvt.d.W f0,f0
add.D f0,f0,f2
sdc1 f0,0x20(s0)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x20
lw t9,-0x7fd8(gp)
addiu t9,t9,0x7bc0
bal 0x00027bc0
_nop
b 0x000280c4
_lw gp,0x10(sp)
(translation_unit "void FUN_0002809c(int *param_1)\n\n{\n  int extraout_v1;\n  uint uVar1;\n  double dVar2;\n  int iVar3;\n  \n  if (*(char *)(param_1 + 10) == '\0') {\n    FUN_00027bc0();\n  }\n  uVar1 = param_1[1] + 43200000;\n  (*(code *)PTR_FUN_000f52e4)((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000);\n  *(undefined1 *)((int)param_1 + 0x2b) = 1;\n  *(undefined1 *)((int)param_1 + 0x29) = 0;\n  dVar2 = *(double *)(PTR_DAT_000f52d4 + 0x26e0);\n  iVar3 = (int)((double)extraout_v1 / dVar2);\n  param_1[5] = iVar3 / 0xe10;\n  param_1[6] = (iVar3 % 0xe10) / 0x3c;\n  *(double *)(param_1 + 8) =\n       (double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3);\n  return;\n}\n\n" (function_definition "void FUN_0002809c(int *param_1)\n\n{\n  int extraout_v1;\n  uint uVar1;\n  double dVar2;\n  int iVar3;\n  \n  if (*(char *)(param_1 + 10) == '\0') {\n    FUN_00027bc0();\n  }\n  uVar1 = param_1[1] + 43200000;\n  (*(code *)PTR_FUN_000f52e4)((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000);\n  *(undefined1 *)((int)param_1 + 0x2b) = 1;\n  *(undefined1 *)((int)param_1 + 0x29) = 0;\n  dVar2 = *(double *)(PTR_DAT_000f52d4 + 0x26e0);\n  iVar3 = (int)((double)extraout_v1 / dVar2);\n  param_1[5] = iVar3 / 0xe10;\n  param_1[6] = (iVar3 % 0xe10) / 0x3c;\n  *(double *)(param_1 + 8) =\n       (double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3);\n  return;\n}" primitive_type (function_declarator "FUN_0002809c(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int extraout_v1;\n  uint uVar1;\n  double dVar2;\n  int iVar3;\n  \n  if (*(char *)(param_1 + 10) == '\0') {\n    FUN_00027bc0();\n  }\n  uVar1 = param_1[1] + 43200000;\n  (*(code *)PTR_FUN_000f52e4)((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000);\n  *(undefined1 *)((int)param_1 + 0x2b) = 1;\n  *(undefined1 *)((int)param_1 + 0x29) = 0;\n  dVar2 = *(double *)(PTR_DAT_000f52d4 + 0x26e0);\n  iVar3 = (int)((double)extraout_v1 / dVar2);\n  param_1[5] = iVar3 / 0xe10;\n  param_1[6] = (iVar3 % 0xe10) / 0x3c;\n  *(double *)(param_1 + 8) =\n       (double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3);\n  return;\n}" { (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "uint uVar1;" type_identifier identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (if_statement "if (*(char *)(param_1 + 10) == '\0') {\n    FUN_00027bc0();\n  }" if (parenthesized_expression "(*(char *)(param_1 + 10) == '\0')" ( (binary_expression "*(char *)(param_1 + 10) == '\0'" (pointer_expression "*(char *)(param_1 + 10)" * (cast_expression "(char *)(param_1 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_00027bc0();\n  }" { (expression_statement "FUN_00027bc0();" (call_expression "FUN_00027bc0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar1 = param_1[1] + 43200000;" (assignment_expression "uVar1 = param_1[1] + 43200000" identifier = (binary_expression "param_1[1] + 43200000" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "(*(code *)PTR_FUN_000f52e4)((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000);" (call_expression "(*(code *)PTR_FUN_000f52e4)((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000)" (parenthesized_expression "(*(code *)PTR_FUN_000f52e4)" ( (pointer_expression "*(code *)PTR_FUN_000f52e4" * (cast_expression "(code *)PTR_FUN_000f52e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000)" ( (binary_expression "(uint)(uVar1 < (uint)param_1[1]) + *param_1" (call_expression "(uint)(uVar1 < (uint)param_1[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 < (uint)param_1[1])" ( (binary_expression "uVar1 < (uint)param_1[1]" identifier < (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ))) + (pointer_expression "*param_1" * identifier)) , identifier , number_literal , number_literal ))) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x2b) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x2b) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0x2b)" * (cast_expression "(undefined1 *)((int)param_1 + 0x2b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2b)" ( (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x29) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x29) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x29)" * (cast_expression "(undefined1 *)((int)param_1 + 0x29)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x29)" ( (binary_expression "(int)param_1 + 0x29" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "dVar2 = *(double *)(PTR_DAT_000f52d4 + 0x26e0);" (assignment_expression "dVar2 = *(double *)(PTR_DAT_000f52d4 + 0x26e0)" identifier = (pointer_expression "*(double *)(PTR_DAT_000f52d4 + 0x26e0)" * (cast_expression "(double *)(PTR_DAT_000f52d4 + 0x26e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52d4 + 0x26e0)" ( (binary_expression "PTR_DAT_000f52d4 + 0x26e0" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = (int)((double)extraout_v1 / dVar2);" (assignment_expression "iVar3 = (int)((double)extraout_v1 / dVar2)" identifier = (cast_expression "(int)((double)extraout_v1 / dVar2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((double)extraout_v1 / dVar2)" ( (binary_expression "(double)extraout_v1 / dVar2" (cast_expression "(double)extraout_v1" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) )))) ;) (expression_statement "param_1[5] = iVar3 / 0xe10;" (assignment_expression "param_1[5] = iVar3 / 0xe10" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "iVar3 / 0xe10" identifier / number_literal)) ;) (expression_statement "param_1[6] = (iVar3 % 0xe10) / 0x3c;" (assignment_expression "param_1[6] = (iVar3 % 0xe10) / 0x3c" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (binary_expression "(iVar3 % 0xe10) / 0x3c" (parenthesized_expression "(iVar3 % 0xe10)" ( (binary_expression "iVar3 % 0xe10" identifier % number_literal) )) / number_literal)) ;) (expression_statement "*(double *)(param_1 + 8) =\n       (double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3);" (assignment_expression "*(double *)(param_1 + 8) =\n       (double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3)" (pointer_expression "*(double *)(param_1 + 8)" * (cast_expression "(double *)(param_1 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = (binary_expression "(double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3)" (cast_expression "(double)((iVar3 % 0xe10) % 0x3c)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((iVar3 % 0xe10) % 0x3c)" ( (binary_expression "(iVar3 % 0xe10) % 0x3c" (parenthesized_expression "(iVar3 % 0xe10)" ( (binary_expression "iVar3 % 0xe10" identifier % number_literal) )) % number_literal) ))) + (parenthesized_expression "((double)extraout_v1 / dVar2 - (double)iVar3)" ( (binary_expression "(double)extraout_v1 / dVar2 - (double)iVar3" (binary_expression "(double)extraout_v1 / dVar2" (cast_expression "(double)extraout_v1" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) - (cast_expression "(double)iVar3" ( (type_descriptor "double" primitive_type) ) identifier)) )))) ;) (return_statement "return;" return ;) })))
(translation_unit "void computeHMS(DateTime *p)\n\n{\n  uint uVar1;\n  int extraout_v1;\n  uint uVar2;\n  double dVar3;\n  int iVar4;\n  \n  if (p->validJD == '\0') {\n    computeJD(p);\n  }\n  uVar1 = (uint)p->iJD;\n  uVar2 = uVar1 + 43200000;\n  (*(code *)PTR___moddi3_000f52e4)((uint)(uVar2 < uVar1) + *(int *)&p->iJD,uVar2,0,86400000);\n  p->validHMS = '\x01';\n  p->rawS = '\0';\n  dVar3 = *(double *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26e0);\n  iVar4 = (int)((double)extraout_v1 / dVar3);\n  p->h = iVar4 / 0xe10;\n  p->m = (iVar4 % 0xe10) / 0x3c;\n  p->s = (double)((iVar4 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar3 - (double)iVar4);\n  return;\n}\n\n" (function_definition "void computeHMS(DateTime *p)\n\n{\n  uint uVar1;\n  int extraout_v1;\n  uint uVar2;\n  double dVar3;\n  int iVar4;\n  \n  if (p->validJD == '\0') {\n    computeJD(p);\n  }\n  uVar1 = (uint)p->iJD;\n  uVar2 = uVar1 + 43200000;\n  (*(code *)PTR___moddi3_000f52e4)((uint)(uVar2 < uVar1) + *(int *)&p->iJD,uVar2,0,86400000);\n  p->validHMS = '\x01';\n  p->rawS = '\0';\n  dVar3 = *(double *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26e0);\n  iVar4 = (int)((double)extraout_v1 / dVar3);\n  p->h = iVar4 / 0xe10;\n  p->m = (iVar4 % 0xe10) / 0x3c;\n  p->s = (double)((iVar4 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar3 - (double)iVar4);\n  return;\n}" primitive_type (function_declarator "computeHMS(DateTime *p)" identifier (parameter_list "(DateTime *p)" ( (parameter_declaration "DateTime *p" type_identifier (pointer_declarator "*p" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  int extraout_v1;\n  uint uVar2;\n  double dVar3;\n  int iVar4;\n  \n  if (p->validJD == '\0') {\n    computeJD(p);\n  }\n  uVar1 = (uint)p->iJD;\n  uVar2 = uVar1 + 43200000;\n  (*(code *)PTR___moddi3_000f52e4)((uint)(uVar2 < uVar1) + *(int *)&p->iJD,uVar2,0,86400000);\n  p->validHMS = '\x01';\n  p->rawS = '\0';\n  dVar3 = *(double *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26e0);\n  iVar4 = (int)((double)extraout_v1 / dVar3);\n  p->h = iVar4 / 0xe10;\n  p->m = (iVar4 % 0xe10) / 0x3c;\n  p->s = (double)((iVar4 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar3 - (double)iVar4);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (if_statement "if (p->validJD == '\0') {\n    computeJD(p);\n  }" if (parenthesized_expression "(p->validJD == '\0')" ( (binary_expression "p->validJD == '\0'" (field_expression "p->validJD" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    computeJD(p);\n  }" { (expression_statement "computeJD(p);" (call_expression "computeJD(p)" identifier (argument_list "(p)" ( identifier ))) ;) })) (expression_statement "uVar1 = (uint)p->iJD;" (assignment_expression "uVar1 = (uint)p->iJD" identifier = (cast_expression "(uint)p->iJD" ( (type_descriptor "uint" type_identifier) ) (field_expression "p->iJD" identifier -> field_identifier))) ;) (expression_statement "uVar2 = uVar1 + 43200000;" (assignment_expression "uVar2 = uVar1 + 43200000" identifier = (binary_expression "uVar1 + 43200000" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___moddi3_000f52e4)((uint)(uVar2 < uVar1) + *(int *)&p->iJD,uVar2,0,86400000);" (call_expression "(*(code *)PTR___moddi3_000f52e4)((uint)(uVar2 < uVar1) + *(int *)&p->iJD,uVar2,0,86400000)" (parenthesized_expression "(*(code *)PTR___moddi3_000f52e4)" ( (pointer_expression "*(code *)PTR___moddi3_000f52e4" * (cast_expression "(code *)PTR___moddi3_000f52e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((uint)(uVar2 < uVar1) + *(int *)&p->iJD,uVar2,0,86400000)" ( (binary_expression "(uint)(uVar2 < uVar1) + *(int *)&p->iJD" (call_expression "(uint)(uVar2 < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < uVar1)" ( (binary_expression "uVar2 < uVar1" identifier < identifier) ))) + (pointer_expression "*(int *)&p->iJD" * (cast_expression "(int *)&p->iJD" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&p->iJD" & (field_expression "p->iJD" identifier -> field_identifier))))) , identifier , number_literal , number_literal ))) ;) (expression_statement "p->validHMS = '\x01';" (assignment_expression "p->validHMS = '\x01'" (field_expression "p->validHMS" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "p->rawS = '\0';" (assignment_expression "p->rawS = '\0'" (field_expression "p->rawS" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "dVar3 = *(double *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26e0);" (assignment_expression "dVar3 = *(double *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26e0)" identifier = (pointer_expression "*(double *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26e0)" * (cast_expression "(double *)(PTR_yy_shift_ofst_376__000f52d4 + 0x26e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_yy_shift_ofst_376__000f52d4 + 0x26e0)" ( (binary_expression "PTR_yy_shift_ofst_376__000f52d4 + 0x26e0" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = (int)((double)extraout_v1 / dVar3);" (assignment_expression "iVar4 = (int)((double)extraout_v1 / dVar3)" identifier = (cast_expression "(int)((double)extraout_v1 / dVar3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((double)extraout_v1 / dVar3)" ( (binary_expression "(double)extraout_v1 / dVar3" (cast_expression "(double)extraout_v1" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) )))) ;) (expression_statement "p->h = iVar4 / 0xe10;" (assignment_expression "p->h = iVar4 / 0xe10" (field_expression "p->h" identifier -> field_identifier) = (binary_expression "iVar4 / 0xe10" identifier / number_literal)) ;) (expression_statement "p->m = (iVar4 % 0xe10) / 0x3c;" (assignment_expression "p->m = (iVar4 % 0xe10) / 0x3c" (field_expression "p->m" identifier -> field_identifier) = (binary_expression "(iVar4 % 0xe10) / 0x3c" (parenthesized_expression "(iVar4 % 0xe10)" ( (binary_expression "iVar4 % 0xe10" identifier % number_literal) )) / number_literal)) ;) (expression_statement "p->s = (double)((iVar4 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar3 - (double)iVar4);" (assignment_expression "p->s = (double)((iVar4 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar3 - (double)iVar4)" (field_expression "p->s" identifier -> field_identifier) = (binary_expression "(double)((iVar4 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar3 - (double)iVar4)" (cast_expression "(double)((iVar4 % 0xe10) % 0x3c)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((iVar4 % 0xe10) % 0x3c)" ( (binary_expression "(iVar4 % 0xe10) % 0x3c" (parenthesized_expression "(iVar4 % 0xe10)" ( (binary_expression "iVar4 % 0xe10" identifier % number_literal) )) % number_literal) ))) + (parenthesized_expression "((double)extraout_v1 / dVar3 - (double)iVar4)" ( (binary_expression "(double)extraout_v1 / dVar3 - (double)iVar4" (binary_expression "(double)extraout_v1 / dVar3" (cast_expression "(double)extraout_v1" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) - (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) )))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0002809c(int *param_1)\n\n{\n  int extraout_v1;\n  uint uVar1;\n  double dVar2;\n  int iVar3;\n  \n  if (*(char *)(param_1 + 10) == '\0') {\n    FUN_00027bc0();\n  }\n  uVar1 = param_1[1] + 43200000;\n  (*(code *)PTR_FUN_000f52e4)((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000);\n  *(undefined1 *)((int)param_1 + 0x2b) = 1;\n  *(undefined1 *)((int)param_1 + 0x29) = 0;\n  dVar2 = *(double *)(PTR_DAT_000f52d4 + 0x26e0);\n  iVar3 = (int)((double)extraout_v1 / dVar2);\n  param_1[5] = iVar3 / 0xe10;\n  param_1[6] = (iVar3 % 0xe10) / 0x3c;\n  *(double *)(param_1 + 8) =\n       (double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3);\n  return;\n}\n\n" (function_definition "void FUN_0002809c(int *param_1)\n\n{\n  int extraout_v1;\n  uint uVar1;\n  double dVar2;\n  int iVar3;\n  \n  if (*(char *)(param_1 + 10) == '\0') {\n    FUN_00027bc0();\n  }\n  uVar1 = param_1[1] + 43200000;\n  (*(code *)PTR_FUN_000f52e4)((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000);\n  *(undefined1 *)((int)param_1 + 0x2b) = 1;\n  *(undefined1 *)((int)param_1 + 0x29) = 0;\n  dVar2 = *(double *)(PTR_DAT_000f52d4 + 0x26e0);\n  iVar3 = (int)((double)extraout_v1 / dVar2);\n  param_1[5] = iVar3 / 0xe10;\n  param_1[6] = (iVar3 % 0xe10) / 0x3c;\n  *(double *)(param_1 + 8) =\n       (double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3);\n  return;\n}" primitive_type (function_declarator "FUN_0002809c(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int extraout_v1;\n  uint uVar1;\n  double dVar2;\n  int iVar3;\n  \n  if (*(char *)(param_1 + 10) == '\0') {\n    FUN_00027bc0();\n  }\n  uVar1 = param_1[1] + 43200000;\n  (*(code *)PTR_FUN_000f52e4)((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000);\n  *(undefined1 *)((int)param_1 + 0x2b) = 1;\n  *(undefined1 *)((int)param_1 + 0x29) = 0;\n  dVar2 = *(double *)(PTR_DAT_000f52d4 + 0x26e0);\n  iVar3 = (int)((double)extraout_v1 / dVar2);\n  param_1[5] = iVar3 / 0xe10;\n  param_1[6] = (iVar3 % 0xe10) / 0x3c;\n  *(double *)(param_1 + 8) =\n       (double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3);\n  return;\n}" { (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "uint uVar1;" type_identifier identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (if_statement "if (*(char *)(param_1 + 10) == '\0') {\n    FUN_00027bc0();\n  }" if (parenthesized_expression "(*(char *)(param_1 + 10) == '\0')" ( (binary_expression "*(char *)(param_1 + 10) == '\0'" (pointer_expression "*(char *)(param_1 + 10)" * (cast_expression "(char *)(param_1 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_00027bc0();\n  }" { (expression_statement "FUN_00027bc0();" (call_expression "FUN_00027bc0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar1 = param_1[1] + 43200000;" (assignment_expression "uVar1 = param_1[1] + 43200000" identifier = (binary_expression "param_1[1] + 43200000" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "(*(code *)PTR_FUN_000f52e4)((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000);" (call_expression "(*(code *)PTR_FUN_000f52e4)((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000)" (parenthesized_expression "(*(code *)PTR_FUN_000f52e4)" ( (pointer_expression "*(code *)PTR_FUN_000f52e4" * (cast_expression "(code *)PTR_FUN_000f52e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000)" ( (binary_expression "(uint)(uVar1 < (uint)param_1[1]) + *param_1" (call_expression "(uint)(uVar1 < (uint)param_1[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 < (uint)param_1[1])" ( (binary_expression "uVar1 < (uint)param_1[1]" identifier < (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ))) + (pointer_expression "*param_1" * identifier)) , identifier , number_literal , number_literal ))) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x2b) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x2b) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0x2b)" * (cast_expression "(undefined1 *)((int)param_1 + 0x2b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2b)" ( (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x29) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x29) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x29)" * (cast_expression "(undefined1 *)((int)param_1 + 0x29)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x29)" ( (binary_expression "(int)param_1 + 0x29" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "dVar2 = *(double *)(PTR_DAT_000f52d4 + 0x26e0);" (assignment_expression "dVar2 = *(double *)(PTR_DAT_000f52d4 + 0x26e0)" identifier = (pointer_expression "*(double *)(PTR_DAT_000f52d4 + 0x26e0)" * (cast_expression "(double *)(PTR_DAT_000f52d4 + 0x26e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52d4 + 0x26e0)" ( (binary_expression "PTR_DAT_000f52d4 + 0x26e0" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = (int)((double)extraout_v1 / dVar2);" (assignment_expression "iVar3 = (int)((double)extraout_v1 / dVar2)" identifier = (cast_expression "(int)((double)extraout_v1 / dVar2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((double)extraout_v1 / dVar2)" ( (binary_expression "(double)extraout_v1 / dVar2" (cast_expression "(double)extraout_v1" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) )))) ;) (expression_statement "param_1[5] = iVar3 / 0xe10;" (assignment_expression "param_1[5] = iVar3 / 0xe10" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "iVar3 / 0xe10" identifier / number_literal)) ;) (expression_statement "param_1[6] = (iVar3 % 0xe10) / 0x3c;" (assignment_expression "param_1[6] = (iVar3 % 0xe10) / 0x3c" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (binary_expression "(iVar3 % 0xe10) / 0x3c" (parenthesized_expression "(iVar3 % 0xe10)" ( (binary_expression "iVar3 % 0xe10" identifier % number_literal) )) / number_literal)) ;) (expression_statement "*(double *)(param_1 + 8) =\n       (double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3);" (assignment_expression "*(double *)(param_1 + 8) =\n       (double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3)" (pointer_expression "*(double *)(param_1 + 8)" * (cast_expression "(double *)(param_1 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = (binary_expression "(double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3)" (cast_expression "(double)((iVar3 % 0xe10) % 0x3c)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((iVar3 % 0xe10) % 0x3c)" ( (binary_expression "(iVar3 % 0xe10) % 0x3c" (parenthesized_expression "(iVar3 % 0xe10)" ( (binary_expression "iVar3 % 0xe10" identifier % number_literal) )) % number_literal) ))) + (parenthesized_expression "((double)extraout_v1 / dVar2 - (double)iVar3)" ( (binary_expression "(double)extraout_v1 / dVar2 - (double)iVar3" (binary_expression "(double)extraout_v1 / dVar2" (cast_expression "(double)extraout_v1" ( (type_descriptor "double" primitive_type) ) identifier) / identifier) - (cast_expression "(double)iVar3" ( (type_descriptor "double" primitive_type) ) identifier)) )))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) + (pointer_expression * IDENT)) , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT / LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT % LIT) )) / LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT % LIT) )) % LIT) ))) + (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (return_statement return ;) })))
(function_definition "void FUN_0002809c(int *param_1)\n\n{\n  int extraout_v1;\n  uint uVar1;\n  double dVar2;\n  int iVar3;\n  \n  if (*(char *)(param_1 + 10) == '\0') {\n    FUN_00027bc0();\n  }\n  uVar1 = param_1[1] + 43200000;\n  (*(code *)PTR_FUN_000f52e4)((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000);\n  *(undefined1 *)((int)param_1 + 0x2b) = 1;\n  *(undefined1 *)((int)param_1 + 0x29) = 0;\n  dVar2 = *(double *)(PTR_DAT_000f52d4 + 0x26e0);\n  iVar3 = (int)((double)extraout_v1 / dVar2);\n  param_1[5] = iVar3 / 0xe10;\n  param_1[6] = (iVar3 % 0xe10) / 0x3c;\n  *(double *)(param_1 + 8) =\n       (double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0002809c(int *param_1)" (identifier "FUN_0002809c") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int extraout_v1;\n  uint uVar1;\n  double dVar2;\n  int iVar3;\n  \n  if (*(char *)(param_1 + 10) == '\0') {\n    FUN_00027bc0();\n  }\n  uVar1 = param_1[1] + 43200000;\n  (*(code *)PTR_FUN_000f52e4)((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000);\n  *(undefined1 *)((int)param_1 + 0x2b) = 1;\n  *(undefined1 *)((int)param_1 + 0x29) = 0;\n  dVar2 = *(double *)(PTR_DAT_000f52d4 + 0x26e0);\n  iVar3 = (int)((double)extraout_v1 / dVar2);\n  param_1[5] = iVar3 / 0xe10;\n  param_1[6] = (iVar3 % 0xe10) / 0x3c;\n  *(double *)(param_1 + 8) =\n       (double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3);\n  return;\n}" ({ "{") (declaration "int extraout_v1;" (primitive_type "int") (identifier "extraout_v1") (; ";")) (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "double dVar2;" (primitive_type "double") (identifier "dVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (if_statement "if (*(char *)(param_1 + 10) == '\0') {\n    FUN_00027bc0();\n  }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 10) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 10) == '\0'" (pointer_expression "*(char *)(param_1 + 10)" (* "*") (cast_expression "(char *)(param_1 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 10)" (( "(") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    FUN_00027bc0();\n  }" ({ "{") (expression_statement "FUN_00027bc0();" (call_expression "FUN_00027bc0()" (identifier "FUN_00027bc0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar1 = param_1[1] + 43200000;" (assignment_expression "uVar1 = param_1[1] + 43200000" (identifier "uVar1") (= "=") (binary_expression "param_1[1] + 43200000" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "43200000"))) (; ";")) (expression_statement "(*(code *)PTR_FUN_000f52e4)((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000);" (call_expression "(*(code *)PTR_FUN_000f52e4)((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000)" (parenthesized_expression "(*(code *)PTR_FUN_000f52e4)" (( "(") (pointer_expression "*(code *)PTR_FUN_000f52e4" (* "*") (cast_expression "(code *)PTR_FUN_000f52e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_000f52e4"))) () ")")) (argument_list "((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000)" (( "(") (binary_expression "(uint)(uVar1 < (uint)param_1[1]) + *param_1" (call_expression "(uint)(uVar1 < (uint)param_1[1])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar1 < (uint)param_1[1])" (( "(") (binary_expression "uVar1 < (uint)param_1[1]" (identifier "uVar1") (< "<") (cast_expression "(uint)param_1[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) () ")"))) (+ "+") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (, ",") (identifier "uVar1") (, ",") (number_literal "0") (, ",") (number_literal "86400000") () ")"))) (; ";")) (expression_statement "*(undefined1 *)((int)param_1 + 0x2b) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x2b) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0x2b)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x2b)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x2b)" (( "(") (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x2b")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 *)((int)param_1 + 0x29) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x29) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x29)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x29)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x29)" (( "(") (binary_expression "(int)param_1 + 0x29" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x29")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar2 = *(double *)(PTR_DAT_000f52d4 + 0x26e0);" (assignment_expression "dVar2 = *(double *)(PTR_DAT_000f52d4 + 0x26e0)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(PTR_DAT_000f52d4 + 0x26e0)" (* "*") (cast_expression "(double *)(PTR_DAT_000f52d4 + 0x26e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000f52d4 + 0x26e0)" (( "(") (binary_expression "PTR_DAT_000f52d4 + 0x26e0" (identifier "PTR_DAT_000f52d4") (+ "+") (number_literal "0x26e0")) () ")"))))) (; ";")) (expression_statement "iVar3 = (int)((double)extraout_v1 / dVar2);" (assignment_expression "iVar3 = (int)((double)extraout_v1 / dVar2)" (identifier "iVar3") (= "=") (cast_expression "(int)((double)extraout_v1 / dVar2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((double)extraout_v1 / dVar2)" (( "(") (binary_expression "(double)extraout_v1 / dVar2" (cast_expression "(double)extraout_v1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "extraout_v1")) (/ "/") (identifier "dVar2")) () ")")))) (; ";")) (expression_statement "param_1[5] = iVar3 / 0xe10;" (assignment_expression "param_1[5] = iVar3 / 0xe10" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "iVar3 / 0xe10" (identifier "iVar3") (/ "/") (number_literal "0xe10"))) (; ";")) (expression_statement "param_1[6] = (iVar3 % 0xe10) / 0x3c;" (assignment_expression "param_1[6] = (iVar3 % 0xe10) / 0x3c" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "(iVar3 % 0xe10) / 0x3c" (parenthesized_expression "(iVar3 % 0xe10)" (( "(") (binary_expression "iVar3 % 0xe10" (identifier "iVar3") (% "%") (number_literal "0xe10")) () ")")) (/ "/") (number_literal "0x3c"))) (; ";")) (expression_statement "*(double *)(param_1 + 8) =\n       (double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3);" (assignment_expression "*(double *)(param_1 + 8) =\n       (double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3)" (pointer_expression "*(double *)(param_1 + 8)" (* "*") (cast_expression "(double *)(param_1 + 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "(double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3)" (cast_expression "(double)((iVar3 % 0xe10) % 0x3c)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "((iVar3 % 0xe10) % 0x3c)" (( "(") (binary_expression "(iVar3 % 0xe10) % 0x3c" (parenthesized_expression "(iVar3 % 0xe10)" (( "(") (binary_expression "iVar3 % 0xe10" (identifier "iVar3") (% "%") (number_literal "0xe10")) () ")")) (% "%") (number_literal "0x3c")) () ")"))) (+ "+") (parenthesized_expression "((double)extraout_v1 / dVar2 - (double)iVar3)" (( "(") (binary_expression "(double)extraout_v1 / dVar2 - (double)iVar3" (binary_expression "(double)extraout_v1 / dVar2" (cast_expression "(double)extraout_v1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "extraout_v1")) (/ "/") (identifier "dVar2")) (- "-") (cast_expression "(double)iVar3" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar3"))) () ")")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *p)

{
  type_2 var_2;
  int extraout_v1;
  type_2 var_3;
  double var_5;
  int var_6;
  
  if (p->validJD == '\0') {
    var_1(p);
  }
  var_2 = (type_2)p->iJD;
  var_3 = var_2 + 43200000;
  (*(type_3 *)PTR___moddi3_000f52e4)((type_2)(var_3 < var_2) + *(int *)&p->iJD,var_3,0,86400000);
  p->validHMS = '\x01';
  p->rawS = '\0';
  var_5 = *(double *)(var_4 + 0x26e0);
  var_6 = (int)((double)extraout_v1 / var_5);
  p->h = var_6 / 0xe10;
  p->m = (var_6 % 0xe10) / 0x3c;
  p->s = (double)((var_6 % 0xe10) % 0x3c) + ((double)extraout_v1 / var_5 - (double)var_6);
  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))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) right: (pointer_expression argument: (identifier))) (identifier) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (return_statement))))

void MASKED(int *param_1)

{
  int extraout_v1;
  uint uVar1;
  double dVar2;
  int iVar3;
  
  if (*(char *)(param_1 + 10) == '\0') {
    FUN_00027bc0();
  }
  uVar1 = param_1[1] + 43200000;
  (*(code *)PTR_FUN_000f52e4)((uint)(uVar1 < (uint)param_1[1]) + *param_1,uVar1,0,86400000);
  *(undefined1 *)((int)param_1 + 0x2b) = 1;
  *(undefined1 *)((int)param_1 + 0x29) = 0;
  dVar2 = *(double *)(PTR_DAT_000f52d4 + 0x26e0);
  iVar3 = (int)((double)extraout_v1 / dVar2);
  param_1[5] = iVar3 / 0xe10;
  param_1[6] = (iVar3 % 0xe10) / 0x3c;
  *(double *)(param_1 + 8) =
       (double)((iVar3 % 0xe10) % 0x3c) + ((double)extraout_v1 / dVar2 - (double)iVar3);
  return;
}

