
void zipfileMtimeToDos(ZipfileCDS *pCds,u32 mUnixTime)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  double dVar4;
  int iVar5;
  int iVar6;
  
  uVar2 = mUnixTime / 0x15180;
  dVar4 = (double)(*(code *)PTR___floatdidf_0018f960)(uVar2 + 0x253d8c < uVar2);
  iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /
               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));
  iVar3 = uVar2 + 0x254381 + iVar5;
  if (iVar5 < 0) {
    iVar5 = iVar5 + 3;
  }
  iVar3 = iVar3 - (iVar5 >> 2);
  uVar2 = (uint)(((double)iVar3 -
                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /
                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));
  iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;
  iVar6 = (int)((double)iVar3 /
               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));
  iVar5 = iVar6 + -0xd;
  if (iVar6 < 0xe) {
    iVar5 = iVar6 + -1;
  }
  if (iVar5 < 3) {
    iVar1 = uVar2 - 0x126b;
  }
  else {
    iVar1 = uVar2 - 0x126c;
  }
  if (iVar1 < 0x7bc) {
    pCds->mTime = 0;
    pCds->mDate = 0;
  }
  else {
    pCds->mDate = ((short)iVar3 -
                  (short)(int)((double)iVar6 *
                              *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)
                              )) + (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;
    pCds->mTime = ((ushort)((ulonglong)(mUnixTime % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +
                  (short)((mUnixTime % 0x3c) / 2) +
                  ((ushort)((ulonglong)(mUnixTime % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);
  }
  return;
}



void FUN_0001afd0(int param_1,uint param_2)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  double dVar4;
  int iVar5;
  int iVar6;
  
  uVar2 = param_2 / 0x15180;
  dVar4 = (double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2);
  iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /
               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));
  iVar3 = uVar2 + 0x254381 + iVar5;
  if (iVar5 < 0) {
    iVar5 = iVar5 + 3;
  }
  iVar3 = iVar3 - (iVar5 >> 2);
  uVar2 = (uint)(((double)iVar3 -
                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /
                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));
  iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;
  iVar6 = (int)((double)iVar3 /
               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));
  iVar5 = iVar6 + -0xd;
  if (iVar6 < 0xe) {
    iVar5 = iVar6 + -1;
  }
  if (iVar5 < 3) {
    iVar1 = uVar2 - 0x126b;
  }
  else {
    iVar1 = uVar2 - 0x126c;
  }
  if (iVar1 < 0x7bc) {
    *(undefined2 *)(param_1 + 8) = 0;
    *(undefined2 *)(param_1 + 10) = 0;
  }
  else {
    *(short *)(param_1 + 10) =
         ((short)iVar3 -
         (short)(int)((double)iVar6 *
                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +
         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;
    *(ushort *)(param_1 + 8) =
         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +
         (short)((param_2 % 0x3c) / 2) +
         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);
  }
  return;
}


lui gp,0x18
addiu gp,gp,-0x36b0
addu gp,gp,t9
addiu sp,sp,-0x30
sw ra,0x2c(sp)
sw s3,0x28(sp)
sw s2,0x24(sp)
sw s1,0x20(sp)
sw s0,0x1c(sp)
sw gp,0x10(sp)
or s2,a0,zero
or s1,a1,zero
lui s0,0xc22e
addiu s0,s0,0x4507
multu a1,s0
mfhi s0
srl s0,s0,0x10
lui s3,0x25
addiu a1,s3,0x3d8c
addu a1,s0,a1
lw t9,-0x7fc0(gp)
sltu a0,a1,s0
jalr t9
_nop
lw gp,0x10(sp)
lw v0,-0x7fc4(gp)
ldc1 f2,-0x6938(v0)
sub.D D f0,f0,f2
lw v0,-0x7fc4(gp)
ldc1 f2,-0x6930(v0)
div.D f0,f0,f2
trunc.w.D f0,f0
mfc1 v0,f0
addiu s3,s3,0x4381
addu s0,s0,s3
addu s0,s0,v0
bltz v0,0x0001b1f4
_mfc1 v1,f0
sra v1,v1,0x2
subu s0,s0,v1
mtc1 s0,f0
cvt.d.W f0,f0
lw v0,-0x7fc4(gp)
ldc1 f2,-0x6928(v0)
sub.D D f0,f0,f2
lw v0,-0x7fc4(gp)
ldc1 f2,-0x6920(v0)
div.D f0,f0,f2
trunc.w.D f0,f0
mfc1 v0,f0
andi v1,v0,0x7fff
ori a0,zero,0x8ead
mul v1,v1,a0
lui a0,0x51eb
ori a0,a0,0x851f
mult v1,a0
mfhi v1
sra v1,v1,0x5
subu s0,s0,v1
mtc1 s0,f0
cvt.d.W f0,f0
lw v1,-0x7fc4(gp)
ldc1 f2,-0x6918(v1)
div.D f0,f0,f2
trunc.w.D f0,f0
mfc1 v1,f0
slti a0,v1,0xe
beq a0,zero,0x0001b0e8
_addiu a0,v1,-0xd
addiu a0,v1,-0x1
slti a1,a0,0x3
bne a1,zero,0x0001b1fc
_nop
addiu v0,v0,-0x126c
slti a1,v0,0x7bc
bne a1,zero,0x0001b204
_mtc1 v1,f0
cvt.d.W f0,f0
lw v1,-0x7fc4(gp)
ldc1 f2,-0x6918(v1)
mul.D f0,f0,f2
trunc.w.D f0,f0
mfc1 v1,f0
subu s0,s0,v1
sll a0,a0,0x5
addu s0,s0,a0
addiu v0,v0,-0x7bc
sll v0,v0,0x9
addu s0,s0,v0
sh s0,0xa(s2)
lui a1,0x91a2
ori a1,a1,0xb3c5
multu s1,a1
mfhi v0
srl v0,v0,0xb
li v1,0xe10
mul a0,v0,v1
subu v0,s1,a0
lui v1,0x8888
ori v1,v1,0x8889
multu v0,v1
mfhi v0
srl v0,v0,0x5
sll v0,v0,0x5
multu s1,v1
mfhi v1
srl v1,v1,0x5
sll a0,v1,0x4
subu v1,a0,v1
sll v1,v1,0x2
subu v1,s1,v1
srl a0,v1,0x1f
addu v1,a0,v1
sra v1,v1,0x1
addu v0,v0,v1
lui v1,0xc22e
addiu v1,v1,0x4507
multu s1,v1
mfhi v1
srl v1,v1,0x10
lui a0,0x1
addiu a0,a0,0x5180
mul a2,v1,a0
subu s1,s1,a2
multu s1,a1
mfhi s1
srl s1,s1,0xb
sll s1,s1,0xb
addu s1,v0,s1
sh s1,0x8(s2)
lw ra,0x2c(sp)
lw s3,0x28(sp)
lw s2,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x30
b 0x0001b068
_addiu v1,v0,0x3
b 0x0001b0f8
_addiu v0,v0,-0x126b
sh zero,0x8(s2)
b 0x0001b1d8
_sh zero,0xa(s2)
(translation_unit "void FUN_0001afd0(int param_1,uint param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar2 = param_2 / 0x15180;\n  dVar4 = (double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2);\n  iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));\n  iVar3 = uVar2 + 0x254381 + iVar5;\n  if (iVar5 < 0) {\n    iVar5 = iVar5 + 3;\n  }\n  iVar3 = iVar3 - (iVar5 >> 2);\n  uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));\n  iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;\n  iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));\n  iVar5 = iVar6 + -0xd;\n  if (iVar6 < 0xe) {\n    iVar5 = iVar6 + -1;\n  }\n  if (iVar5 < 3) {\n    iVar1 = uVar2 - 0x126b;\n  }\n  else {\n    iVar1 = uVar2 - 0x126c;\n  }\n  if (iVar1 < 0x7bc) {\n    *(undefined2 *)(param_1 + 8) = 0;\n    *(undefined2 *)(param_1 + 10) = 0;\n  }\n  else {\n    *(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    *(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0001afd0(int param_1,uint param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar2 = param_2 / 0x15180;\n  dVar4 = (double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2);\n  iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));\n  iVar3 = uVar2 + 0x254381 + iVar5;\n  if (iVar5 < 0) {\n    iVar5 = iVar5 + 3;\n  }\n  iVar3 = iVar3 - (iVar5 >> 2);\n  uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));\n  iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;\n  iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));\n  iVar5 = iVar6 + -0xd;\n  if (iVar6 < 0xe) {\n    iVar5 = iVar6 + -1;\n  }\n  if (iVar5 < 3) {\n    iVar1 = uVar2 - 0x126b;\n  }\n  else {\n    iVar1 = uVar2 - 0x126c;\n  }\n  if (iVar1 < 0x7bc) {\n    *(undefined2 *)(param_1 + 8) = 0;\n    *(undefined2 *)(param_1 + 10) = 0;\n  }\n  else {\n    *(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    *(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0001afd0(int param_1,uint param_2)" identifier (parameter_list "(int param_1,uint param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar2 = param_2 / 0x15180;\n  dVar4 = (double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2);\n  iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));\n  iVar3 = uVar2 + 0x254381 + iVar5;\n  if (iVar5 < 0) {\n    iVar5 = iVar5 + 3;\n  }\n  iVar3 = iVar3 - (iVar5 >> 2);\n  uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));\n  iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;\n  iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));\n  iVar5 = iVar6 + -0xd;\n  if (iVar6 < 0xe) {\n    iVar5 = iVar6 + -1;\n  }\n  if (iVar5 < 3) {\n    iVar1 = uVar2 - 0x126b;\n  }\n  else {\n    iVar1 = uVar2 - 0x126c;\n  }\n  if (iVar1 < 0x7bc) {\n    *(undefined2 *)(param_1 + 8) = 0;\n    *(undefined2 *)(param_1 + 10) = 0;\n  }\n  else {\n    *(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    *(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (expression_statement "uVar2 = param_2 / 0x15180;" (assignment_expression "uVar2 = param_2 / 0x15180" identifier = (binary_expression "param_2 / 0x15180" identifier / number_literal)) ;) (expression_statement "dVar4 = (double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2);" (assignment_expression "dVar4 = (double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2)" (parenthesized_expression "(*(code *)PTR_FUN_0018f960)" ( (pointer_expression "*(code *)PTR_FUN_0018f960" * (cast_expression "(code *)PTR_FUN_0018f960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2 + 0x253d8c < uVar2)" ( (binary_expression "uVar2 + 0x253d8c < uVar2" (binary_expression "uVar2 + 0x253d8c" identifier + number_literal) < identifier) ))))) ;) (expression_statement "iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));" (assignment_expression "iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930))" identifier = (cast_expression "(int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930))" ( (binary_expression "(dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930)" (parenthesized_expression "(dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938))" ( (binary_expression "dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)" identifier - (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938" identifier + number_literal) ))))) )) / (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar3 = uVar2 + 0x254381 + iVar5;" (assignment_expression "iVar3 = uVar2 + 0x254381 + iVar5" identifier = (binary_expression "uVar2 + 0x254381 + iVar5" (binary_expression "uVar2 + 0x254381" identifier + number_literal) + identifier)) ;) (if_statement "if (iVar5 < 0) {\n    iVar5 = iVar5 + 3;\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar5 = iVar5 + 3;\n  }" { (expression_statement "iVar5 = iVar5 + 3;" (assignment_expression "iVar5 = iVar5 + 3" identifier = (binary_expression "iVar5 + 3" identifier + number_literal)) ;) })) (expression_statement "iVar3 = iVar3 - (iVar5 >> 2);" (assignment_expression "iVar3 = iVar3 - (iVar5 >> 2)" identifier = (binary_expression "iVar3 - (iVar5 >> 2)" identifier - (parenthesized_expression "(iVar5 >> 2)" ( (binary_expression "iVar5 >> 2" identifier >> number_literal) )))) ;) (expression_statement "uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));" (assignment_expression "uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920))" identifier = (call_expression "(uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920))" ( (binary_expression "((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920)" (parenthesized_expression "((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928))" ( (binary_expression "(double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)" (cast_expression "(double)iVar3" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928" identifier + number_literal) ))))) )) / (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;" (assignment_expression "iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100" identifier = (binary_expression "iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100" identifier - (binary_expression "((uVar2 & 0x7fff) * 0x8ead) / 100" (parenthesized_expression "((uVar2 & 0x7fff) * 0x8ead)" ( (binary_expression "(uVar2 & 0x7fff) * 0x8ead" (parenthesized_expression "(uVar2 & 0x7fff)" ( (binary_expression "uVar2 & 0x7fff" identifier & number_literal) )) * number_literal) )) / number_literal))) ;) (expression_statement "iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));" (assignment_expression "iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" identifier = (cast_expression "(int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" ( (binary_expression "(double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" (cast_expression "(double)iVar3" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar5 = iVar6 + -0xd;" (assignment_expression "iVar5 = iVar6 + -0xd" identifier = (binary_expression "iVar6 + -0xd" identifier + number_literal)) ;) (if_statement "if (iVar6 < 0xe) {\n    iVar5 = iVar6 + -1;\n  }" if (parenthesized_expression "(iVar6 < 0xe)" ( (binary_expression "iVar6 < 0xe" identifier < number_literal) )) (compound_statement "{\n    iVar5 = iVar6 + -1;\n  }" { (expression_statement "iVar5 = iVar6 + -1;" (assignment_expression "iVar5 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) })) (if_statement "if (iVar5 < 3) {\n    iVar1 = uVar2 - 0x126b;\n  }\n  else {\n    iVar1 = uVar2 - 0x126c;\n  }" if (parenthesized_expression "(iVar5 < 3)" ( (binary_expression "iVar5 < 3" identifier < number_literal) )) (compound_statement "{\n    iVar1 = uVar2 - 0x126b;\n  }" { (expression_statement "iVar1 = uVar2 - 0x126b;" (assignment_expression "iVar1 = uVar2 - 0x126b" identifier = (binary_expression "uVar2 - 0x126b" identifier - number_literal)) ;) }) (else_clause "else {\n    iVar1 = uVar2 - 0x126c;\n  }" else (compound_statement "{\n    iVar1 = uVar2 - 0x126c;\n  }" { (expression_statement "iVar1 = uVar2 - 0x126c;" (assignment_expression "iVar1 = uVar2 - 0x126c" identifier = (binary_expression "uVar2 - 0x126c" identifier - number_literal)) ;) }))) (if_statement "if (iVar1 < 0x7bc) {\n    *(undefined2 *)(param_1 + 8) = 0;\n    *(undefined2 *)(param_1 + 10) = 0;\n  }\n  else {\n    *(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    *(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }" if (parenthesized_expression "(iVar1 < 0x7bc)" ( (binary_expression "iVar1 < 0x7bc" identifier < number_literal) )) (compound_statement "{\n    *(undefined2 *)(param_1 + 8) = 0;\n    *(undefined2 *)(param_1 + 10) = 0;\n  }" { (expression_statement "*(undefined2 *)(param_1 + 8) = 0;" (assignment_expression "*(undefined2 *)(param_1 + 8) = 0" (pointer_expression "*(undefined2 *)(param_1 + 8)" * (cast_expression "(undefined2 *)(param_1 + 8)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined2 *)(param_1 + 10) = 0;" (assignment_expression "*(undefined2 *)(param_1 + 10) = 0" (pointer_expression "*(undefined2 *)(param_1 + 10)" * (cast_expression "(undefined2 *)(param_1 + 10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n    *(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    *(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }" else (compound_statement "{\n    *(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    *(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }" { (expression_statement "*(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;" (assignment_expression "*(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200" (pointer_expression "*(short *)(param_1 + 10)" * (cast_expression "(short *)(param_1 + 10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) = (binary_expression "((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200" (binary_expression "((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20" (parenthesized_expression "((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)))" ( (binary_expression "(short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" (cast_expression "(short)iVar3" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) - (cast_expression "(short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (cast_expression "(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" ( (binary_expression "(double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" (cast_expression "(double)iVar6" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918" identifier + number_literal) ))))) ))))) )) + (binary_expression "(short)iVar5 * 0x20" (cast_expression "(short)iVar5" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) * number_literal)) + (binary_expression "((short)iVar1 + -0x7bc) * 0x200" (parenthesized_expression "((short)iVar1 + -0x7bc)" ( (binary_expression "(short)iVar1 + -0x7bc" (cast_expression "(short)iVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) + number_literal) )) * number_literal))) ;) (expression_statement "*(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);" (assignment_expression "*(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800)" (pointer_expression "*(ushort *)(param_1 + 8)" * (cast_expression "(ushort *)(param_1 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = (binary_expression "((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800)" (binary_expression "((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2)" (parenthesized_expression "((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0)" ( (binary_expression "(ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0" (call_expression "(ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20)" ( (binary_expression "(ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20" (binary_expression "(ulonglong)(param_2 % 0xe10) * 0x88888889" (call_expression "(ulonglong)(param_2 % 0xe10)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(param_2 % 0xe10)" ( (binary_expression "param_2 % 0xe10" identifier % number_literal) ))) * number_literal) >> number_literal) ))) & number_literal) )) + (cast_expression "(short)((param_2 % 0x3c) / 2)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((param_2 % 0x3c) / 2)" ( (binary_expression "(param_2 % 0x3c) / 2" (parenthesized_expression "(param_2 % 0x3c)" ( (binary_expression "param_2 % 0x3c" identifier % number_literal) )) / number_literal) )))) + (parenthesized_expression "((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800)" ( (binary_expression "(ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800" (call_expression "(ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20)" ( (binary_expression "(ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20" (binary_expression "(ulonglong)(param_2 % 0x15180) * 0x91a2b3c5" (call_expression "(ulonglong)(param_2 % 0x15180)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(param_2 % 0x15180)" ( (binary_expression "param_2 % 0x15180" identifier % number_literal) ))) * number_literal) >> number_literal) ))) & number_literal) )))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "void zipfileMtimeToDos(ZipfileCDS *pCds,u32 mUnixTime)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar2 = mUnixTime / 0x15180;\n  dVar4 = (double)(*(code *)PTR___floatdidf_0018f960)(uVar2 + 0x253d8c < uVar2);\n  iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));\n  iVar3 = uVar2 + 0x254381 + iVar5;\n  if (iVar5 < 0) {\n    iVar5 = iVar5 + 3;\n  }\n  iVar3 = iVar3 - (iVar5 >> 2);\n  uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));\n  iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;\n  iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));\n  iVar5 = iVar6 + -0xd;\n  if (iVar6 < 0xe) {\n    iVar5 = iVar6 + -1;\n  }\n  if (iVar5 < 3) {\n    iVar1 = uVar2 - 0x126b;\n  }\n  else {\n    iVar1 = uVar2 - 0x126c;\n  }\n  if (iVar1 < 0x7bc) {\n    pCds->mTime = 0;\n    pCds->mDate = 0;\n  }\n  else {\n    pCds->mDate = ((short)iVar3 -\n                  (short)(int)((double)iVar6 *\n                              *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)\n                              )) + (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    pCds->mTime = ((ushort)((ulonglong)(mUnixTime % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n                  (short)((mUnixTime % 0x3c) / 2) +\n                  ((ushort)((ulonglong)(mUnixTime % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }\n  return;\n}\n\n" (function_definition "void zipfileMtimeToDos(ZipfileCDS *pCds,u32 mUnixTime)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar2 = mUnixTime / 0x15180;\n  dVar4 = (double)(*(code *)PTR___floatdidf_0018f960)(uVar2 + 0x253d8c < uVar2);\n  iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));\n  iVar3 = uVar2 + 0x254381 + iVar5;\n  if (iVar5 < 0) {\n    iVar5 = iVar5 + 3;\n  }\n  iVar3 = iVar3 - (iVar5 >> 2);\n  uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));\n  iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;\n  iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));\n  iVar5 = iVar6 + -0xd;\n  if (iVar6 < 0xe) {\n    iVar5 = iVar6 + -1;\n  }\n  if (iVar5 < 3) {\n    iVar1 = uVar2 - 0x126b;\n  }\n  else {\n    iVar1 = uVar2 - 0x126c;\n  }\n  if (iVar1 < 0x7bc) {\n    pCds->mTime = 0;\n    pCds->mDate = 0;\n  }\n  else {\n    pCds->mDate = ((short)iVar3 -\n                  (short)(int)((double)iVar6 *\n                              *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)\n                              )) + (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    pCds->mTime = ((ushort)((ulonglong)(mUnixTime % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n                  (short)((mUnixTime % 0x3c) / 2) +\n                  ((ushort)((ulonglong)(mUnixTime % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }\n  return;\n}" primitive_type (function_declarator "zipfileMtimeToDos(ZipfileCDS *pCds,u32 mUnixTime)" identifier (parameter_list "(ZipfileCDS *pCds,u32 mUnixTime)" ( (parameter_declaration "ZipfileCDS *pCds" type_identifier (pointer_declarator "*pCds" * identifier)) , (parameter_declaration "u32 mUnixTime" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar2 = mUnixTime / 0x15180;\n  dVar4 = (double)(*(code *)PTR___floatdidf_0018f960)(uVar2 + 0x253d8c < uVar2);\n  iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));\n  iVar3 = uVar2 + 0x254381 + iVar5;\n  if (iVar5 < 0) {\n    iVar5 = iVar5 + 3;\n  }\n  iVar3 = iVar3 - (iVar5 >> 2);\n  uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));\n  iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;\n  iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));\n  iVar5 = iVar6 + -0xd;\n  if (iVar6 < 0xe) {\n    iVar5 = iVar6 + -1;\n  }\n  if (iVar5 < 3) {\n    iVar1 = uVar2 - 0x126b;\n  }\n  else {\n    iVar1 = uVar2 - 0x126c;\n  }\n  if (iVar1 < 0x7bc) {\n    pCds->mTime = 0;\n    pCds->mDate = 0;\n  }\n  else {\n    pCds->mDate = ((short)iVar3 -\n                  (short)(int)((double)iVar6 *\n                              *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)\n                              )) + (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    pCds->mTime = ((ushort)((ulonglong)(mUnixTime % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n                  (short)((mUnixTime % 0x3c) / 2) +\n                  ((ushort)((ulonglong)(mUnixTime % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (expression_statement "uVar2 = mUnixTime / 0x15180;" (assignment_expression "uVar2 = mUnixTime / 0x15180" identifier = (binary_expression "mUnixTime / 0x15180" identifier / number_literal)) ;) (expression_statement "dVar4 = (double)(*(code *)PTR___floatdidf_0018f960)(uVar2 + 0x253d8c < uVar2);" (assignment_expression "dVar4 = (double)(*(code *)PTR___floatdidf_0018f960)(uVar2 + 0x253d8c < uVar2)" identifier = (cast_expression "(double)(*(code *)PTR___floatdidf_0018f960)(uVar2 + 0x253d8c < uVar2)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR___floatdidf_0018f960)(uVar2 + 0x253d8c < uVar2)" (parenthesized_expression "(*(code *)PTR___floatdidf_0018f960)" ( (pointer_expression "*(code *)PTR___floatdidf_0018f960" * (cast_expression "(code *)PTR___floatdidf_0018f960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2 + 0x253d8c < uVar2)" ( (binary_expression "uVar2 + 0x253d8c < uVar2" (binary_expression "uVar2 + 0x253d8c" identifier + number_literal) < identifier) ))))) ;) (expression_statement "iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));" (assignment_expression "iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930))" identifier = (cast_expression "(int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930))" ( (binary_expression "(dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930)" (parenthesized_expression "(dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938))" ( (binary_expression "dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)" identifier - (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938" identifier + number_literal) ))))) )) / (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar3 = uVar2 + 0x254381 + iVar5;" (assignment_expression "iVar3 = uVar2 + 0x254381 + iVar5" identifier = (binary_expression "uVar2 + 0x254381 + iVar5" (binary_expression "uVar2 + 0x254381" identifier + number_literal) + identifier)) ;) (if_statement "if (iVar5 < 0) {\n    iVar5 = iVar5 + 3;\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar5 = iVar5 + 3;\n  }" { (expression_statement "iVar5 = iVar5 + 3;" (assignment_expression "iVar5 = iVar5 + 3" identifier = (binary_expression "iVar5 + 3" identifier + number_literal)) ;) })) (expression_statement "iVar3 = iVar3 - (iVar5 >> 2);" (assignment_expression "iVar3 = iVar3 - (iVar5 >> 2)" identifier = (binary_expression "iVar3 - (iVar5 >> 2)" identifier - (parenthesized_expression "(iVar5 >> 2)" ( (binary_expression "iVar5 >> 2" identifier >> number_literal) )))) ;) (expression_statement "uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));" (assignment_expression "uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920))" identifier = (call_expression "(uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920))" ( (binary_expression "((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920)" (parenthesized_expression "((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928))" ( (binary_expression "(double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)" (cast_expression "(double)iVar3" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928" identifier + number_literal) ))))) )) / (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;" (assignment_expression "iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100" identifier = (binary_expression "iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100" identifier - (binary_expression "((uVar2 & 0x7fff) * 0x8ead) / 100" (parenthesized_expression "((uVar2 & 0x7fff) * 0x8ead)" ( (binary_expression "(uVar2 & 0x7fff) * 0x8ead" (parenthesized_expression "(uVar2 & 0x7fff)" ( (binary_expression "uVar2 & 0x7fff" identifier & number_literal) )) * number_literal) )) / number_literal))) ;) (expression_statement "iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));" (assignment_expression "iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" identifier = (cast_expression "(int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" ( (binary_expression "(double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" (cast_expression "(double)iVar3" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar5 = iVar6 + -0xd;" (assignment_expression "iVar5 = iVar6 + -0xd" identifier = (binary_expression "iVar6 + -0xd" identifier + number_literal)) ;) (if_statement "if (iVar6 < 0xe) {\n    iVar5 = iVar6 + -1;\n  }" if (parenthesized_expression "(iVar6 < 0xe)" ( (binary_expression "iVar6 < 0xe" identifier < number_literal) )) (compound_statement "{\n    iVar5 = iVar6 + -1;\n  }" { (expression_statement "iVar5 = iVar6 + -1;" (assignment_expression "iVar5 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) })) (if_statement "if (iVar5 < 3) {\n    iVar1 = uVar2 - 0x126b;\n  }\n  else {\n    iVar1 = uVar2 - 0x126c;\n  }" if (parenthesized_expression "(iVar5 < 3)" ( (binary_expression "iVar5 < 3" identifier < number_literal) )) (compound_statement "{\n    iVar1 = uVar2 - 0x126b;\n  }" { (expression_statement "iVar1 = uVar2 - 0x126b;" (assignment_expression "iVar1 = uVar2 - 0x126b" identifier = (binary_expression "uVar2 - 0x126b" identifier - number_literal)) ;) }) (else_clause "else {\n    iVar1 = uVar2 - 0x126c;\n  }" else (compound_statement "{\n    iVar1 = uVar2 - 0x126c;\n  }" { (expression_statement "iVar1 = uVar2 - 0x126c;" (assignment_expression "iVar1 = uVar2 - 0x126c" identifier = (binary_expression "uVar2 - 0x126c" identifier - number_literal)) ;) }))) (if_statement "if (iVar1 < 0x7bc) {\n    pCds->mTime = 0;\n    pCds->mDate = 0;\n  }\n  else {\n    pCds->mDate = ((short)iVar3 -\n                  (short)(int)((double)iVar6 *\n                              *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)\n                              )) + (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    pCds->mTime = ((ushort)((ulonglong)(mUnixTime % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n                  (short)((mUnixTime % 0x3c) / 2) +\n                  ((ushort)((ulonglong)(mUnixTime % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }" if (parenthesized_expression "(iVar1 < 0x7bc)" ( (binary_expression "iVar1 < 0x7bc" identifier < number_literal) )) (compound_statement "{\n    pCds->mTime = 0;\n    pCds->mDate = 0;\n  }" { (expression_statement "pCds->mTime = 0;" (assignment_expression "pCds->mTime = 0" (field_expression "pCds->mTime" identifier -> field_identifier) = number_literal) ;) (expression_statement "pCds->mDate = 0;" (assignment_expression "pCds->mDate = 0" (field_expression "pCds->mDate" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n    pCds->mDate = ((short)iVar3 -\n                  (short)(int)((double)iVar6 *\n                              *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)\n                              )) + (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    pCds->mTime = ((ushort)((ulonglong)(mUnixTime % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n                  (short)((mUnixTime % 0x3c) / 2) +\n                  ((ushort)((ulonglong)(mUnixTime % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }" else (compound_statement "{\n    pCds->mDate = ((short)iVar3 -\n                  (short)(int)((double)iVar6 *\n                              *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)\n                              )) + (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    pCds->mTime = ((ushort)((ulonglong)(mUnixTime % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n                  (short)((mUnixTime % 0x3c) / 2) +\n                  ((ushort)((ulonglong)(mUnixTime % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }" { (expression_statement "pCds->mDate = ((short)iVar3 -\n                  (short)(int)((double)iVar6 *\n                              *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)\n                              )) + (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;" (assignment_expression "pCds->mDate = ((short)iVar3 -\n                  (short)(int)((double)iVar6 *\n                              *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)\n                              )) + (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200" (field_expression "pCds->mDate" identifier -> field_identifier) = (binary_expression "((short)iVar3 -\n                  (short)(int)((double)iVar6 *\n                              *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)\n                              )) + (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200" (binary_expression "((short)iVar3 -\n                  (short)(int)((double)iVar6 *\n                              *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)\n                              )) + (short)iVar5 * 0x20" (parenthesized_expression "((short)iVar3 -\n                  (short)(int)((double)iVar6 *\n                              *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)\n                              ))" ( (binary_expression "(short)iVar3 -\n                  (short)(int)((double)iVar6 *\n                              *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)\n                              )" (cast_expression "(short)iVar3" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) - (cast_expression "(short)(int)((double)iVar6 *\n                              *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)\n                              )" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (cast_expression "(int)((double)iVar6 *\n                              *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)\n                              )" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((double)iVar6 *\n                              *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)\n                              )" ( (binary_expression "(double)iVar6 *\n                              *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" (cast_expression "(double)iVar6" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918" identifier + number_literal) ))))) ))))) )) + (binary_expression "(short)iVar5 * 0x20" (cast_expression "(short)iVar5" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) * number_literal)) + (binary_expression "((short)iVar1 + -0x7bc) * 0x200" (parenthesized_expression "((short)iVar1 + -0x7bc)" ( (binary_expression "(short)iVar1 + -0x7bc" (cast_expression "(short)iVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) + number_literal) )) * number_literal))) ;) (expression_statement "pCds->mTime = ((ushort)((ulonglong)(mUnixTime % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n                  (short)((mUnixTime % 0x3c) / 2) +\n                  ((ushort)((ulonglong)(mUnixTime % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);" (assignment_expression "pCds->mTime = ((ushort)((ulonglong)(mUnixTime % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n                  (short)((mUnixTime % 0x3c) / 2) +\n                  ((ushort)((ulonglong)(mUnixTime % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800)" (field_expression "pCds->mTime" identifier -> field_identifier) = (binary_expression "((ushort)((ulonglong)(mUnixTime % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n                  (short)((mUnixTime % 0x3c) / 2) +\n                  ((ushort)((ulonglong)(mUnixTime % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800)" (binary_expression "((ushort)((ulonglong)(mUnixTime % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n                  (short)((mUnixTime % 0x3c) / 2)" (parenthesized_expression "((ushort)((ulonglong)(mUnixTime % 0xe10) * 0x88888889 >> 0x20) & 0xffe0)" ( (binary_expression "(ushort)((ulonglong)(mUnixTime % 0xe10) * 0x88888889 >> 0x20) & 0xffe0" (call_expression "(ushort)((ulonglong)(mUnixTime % 0xe10) * 0x88888889 >> 0x20)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((ulonglong)(mUnixTime % 0xe10) * 0x88888889 >> 0x20)" ( (binary_expression "(ulonglong)(mUnixTime % 0xe10) * 0x88888889 >> 0x20" (binary_expression "(ulonglong)(mUnixTime % 0xe10) * 0x88888889" (call_expression "(ulonglong)(mUnixTime % 0xe10)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(mUnixTime % 0xe10)" ( (binary_expression "mUnixTime % 0xe10" identifier % number_literal) ))) * number_literal) >> number_literal) ))) & number_literal) )) + (cast_expression "(short)((mUnixTime % 0x3c) / 2)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((mUnixTime % 0x3c) / 2)" ( (binary_expression "(mUnixTime % 0x3c) / 2" (parenthesized_expression "(mUnixTime % 0x3c)" ( (binary_expression "mUnixTime % 0x3c" identifier % number_literal) )) / number_literal) )))) + (parenthesized_expression "((ushort)((ulonglong)(mUnixTime % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800)" ( (binary_expression "(ushort)((ulonglong)(mUnixTime % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800" (call_expression "(ushort)((ulonglong)(mUnixTime % 0x15180) * 0x91a2b3c5 >> 0x20)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((ulonglong)(mUnixTime % 0x15180) * 0x91a2b3c5 >> 0x20)" ( (binary_expression "(ulonglong)(mUnixTime % 0x15180) * 0x91a2b3c5 >> 0x20" (binary_expression "(ulonglong)(mUnixTime % 0x15180) * 0x91a2b3c5" (call_expression "(ulonglong)(mUnixTime % 0x15180)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(mUnixTime % 0x15180)" ( (binary_expression "mUnixTime % 0x15180" identifier % number_literal) ))) * number_literal) >> number_literal) ))) & number_literal) )))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0001afd0(int param_1,uint param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar2 = param_2 / 0x15180;\n  dVar4 = (double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2);\n  iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));\n  iVar3 = uVar2 + 0x254381 + iVar5;\n  if (iVar5 < 0) {\n    iVar5 = iVar5 + 3;\n  }\n  iVar3 = iVar3 - (iVar5 >> 2);\n  uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));\n  iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;\n  iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));\n  iVar5 = iVar6 + -0xd;\n  if (iVar6 < 0xe) {\n    iVar5 = iVar6 + -1;\n  }\n  if (iVar5 < 3) {\n    iVar1 = uVar2 - 0x126b;\n  }\n  else {\n    iVar1 = uVar2 - 0x126c;\n  }\n  if (iVar1 < 0x7bc) {\n    *(undefined2 *)(param_1 + 8) = 0;\n    *(undefined2 *)(param_1 + 10) = 0;\n  }\n  else {\n    *(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    *(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0001afd0(int param_1,uint param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar2 = param_2 / 0x15180;\n  dVar4 = (double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2);\n  iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));\n  iVar3 = uVar2 + 0x254381 + iVar5;\n  if (iVar5 < 0) {\n    iVar5 = iVar5 + 3;\n  }\n  iVar3 = iVar3 - (iVar5 >> 2);\n  uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));\n  iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;\n  iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));\n  iVar5 = iVar6 + -0xd;\n  if (iVar6 < 0xe) {\n    iVar5 = iVar6 + -1;\n  }\n  if (iVar5 < 3) {\n    iVar1 = uVar2 - 0x126b;\n  }\n  else {\n    iVar1 = uVar2 - 0x126c;\n  }\n  if (iVar1 < 0x7bc) {\n    *(undefined2 *)(param_1 + 8) = 0;\n    *(undefined2 *)(param_1 + 10) = 0;\n  }\n  else {\n    *(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    *(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0001afd0(int param_1,uint param_2)" identifier (parameter_list "(int param_1,uint param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar2 = param_2 / 0x15180;\n  dVar4 = (double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2);\n  iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));\n  iVar3 = uVar2 + 0x254381 + iVar5;\n  if (iVar5 < 0) {\n    iVar5 = iVar5 + 3;\n  }\n  iVar3 = iVar3 - (iVar5 >> 2);\n  uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));\n  iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;\n  iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));\n  iVar5 = iVar6 + -0xd;\n  if (iVar6 < 0xe) {\n    iVar5 = iVar6 + -1;\n  }\n  if (iVar5 < 3) {\n    iVar1 = uVar2 - 0x126b;\n  }\n  else {\n    iVar1 = uVar2 - 0x126c;\n  }\n  if (iVar1 < 0x7bc) {\n    *(undefined2 *)(param_1 + 8) = 0;\n    *(undefined2 *)(param_1 + 10) = 0;\n  }\n  else {\n    *(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    *(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (expression_statement "uVar2 = param_2 / 0x15180;" (assignment_expression "uVar2 = param_2 / 0x15180" identifier = (binary_expression "param_2 / 0x15180" identifier / number_literal)) ;) (expression_statement "dVar4 = (double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2);" (assignment_expression "dVar4 = (double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2)" (parenthesized_expression "(*(code *)PTR_FUN_0018f960)" ( (pointer_expression "*(code *)PTR_FUN_0018f960" * (cast_expression "(code *)PTR_FUN_0018f960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2 + 0x253d8c < uVar2)" ( (binary_expression "uVar2 + 0x253d8c < uVar2" (binary_expression "uVar2 + 0x253d8c" identifier + number_literal) < identifier) ))))) ;) (expression_statement "iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));" (assignment_expression "iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930))" identifier = (cast_expression "(int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930))" ( (binary_expression "(dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930)" (parenthesized_expression "(dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938))" ( (binary_expression "dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)" identifier - (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938" identifier + number_literal) ))))) )) / (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar3 = uVar2 + 0x254381 + iVar5;" (assignment_expression "iVar3 = uVar2 + 0x254381 + iVar5" identifier = (binary_expression "uVar2 + 0x254381 + iVar5" (binary_expression "uVar2 + 0x254381" identifier + number_literal) + identifier)) ;) (if_statement "if (iVar5 < 0) {\n    iVar5 = iVar5 + 3;\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar5 = iVar5 + 3;\n  }" { (expression_statement "iVar5 = iVar5 + 3;" (assignment_expression "iVar5 = iVar5 + 3" identifier = (binary_expression "iVar5 + 3" identifier + number_literal)) ;) })) (expression_statement "iVar3 = iVar3 - (iVar5 >> 2);" (assignment_expression "iVar3 = iVar3 - (iVar5 >> 2)" identifier = (binary_expression "iVar3 - (iVar5 >> 2)" identifier - (parenthesized_expression "(iVar5 >> 2)" ( (binary_expression "iVar5 >> 2" identifier >> number_literal) )))) ;) (expression_statement "uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));" (assignment_expression "uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920))" identifier = (call_expression "(uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920))" ( (binary_expression "((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920)" (parenthesized_expression "((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928))" ( (binary_expression "(double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)" (cast_expression "(double)iVar3" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928" identifier + number_literal) ))))) )) / (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;" (assignment_expression "iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100" identifier = (binary_expression "iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100" identifier - (binary_expression "((uVar2 & 0x7fff) * 0x8ead) / 100" (parenthesized_expression "((uVar2 & 0x7fff) * 0x8ead)" ( (binary_expression "(uVar2 & 0x7fff) * 0x8ead" (parenthesized_expression "(uVar2 & 0x7fff)" ( (binary_expression "uVar2 & 0x7fff" identifier & number_literal) )) * number_literal) )) / number_literal))) ;) (expression_statement "iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));" (assignment_expression "iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" identifier = (cast_expression "(int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" ( (binary_expression "(double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" (cast_expression "(double)iVar3" ( (type_descriptor "double" primitive_type) ) identifier) / (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar5 = iVar6 + -0xd;" (assignment_expression "iVar5 = iVar6 + -0xd" identifier = (binary_expression "iVar6 + -0xd" identifier + number_literal)) ;) (if_statement "if (iVar6 < 0xe) {\n    iVar5 = iVar6 + -1;\n  }" if (parenthesized_expression "(iVar6 < 0xe)" ( (binary_expression "iVar6 < 0xe" identifier < number_literal) )) (compound_statement "{\n    iVar5 = iVar6 + -1;\n  }" { (expression_statement "iVar5 = iVar6 + -1;" (assignment_expression "iVar5 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) })) (if_statement "if (iVar5 < 3) {\n    iVar1 = uVar2 - 0x126b;\n  }\n  else {\n    iVar1 = uVar2 - 0x126c;\n  }" if (parenthesized_expression "(iVar5 < 3)" ( (binary_expression "iVar5 < 3" identifier < number_literal) )) (compound_statement "{\n    iVar1 = uVar2 - 0x126b;\n  }" { (expression_statement "iVar1 = uVar2 - 0x126b;" (assignment_expression "iVar1 = uVar2 - 0x126b" identifier = (binary_expression "uVar2 - 0x126b" identifier - number_literal)) ;) }) (else_clause "else {\n    iVar1 = uVar2 - 0x126c;\n  }" else (compound_statement "{\n    iVar1 = uVar2 - 0x126c;\n  }" { (expression_statement "iVar1 = uVar2 - 0x126c;" (assignment_expression "iVar1 = uVar2 - 0x126c" identifier = (binary_expression "uVar2 - 0x126c" identifier - number_literal)) ;) }))) (if_statement "if (iVar1 < 0x7bc) {\n    *(undefined2 *)(param_1 + 8) = 0;\n    *(undefined2 *)(param_1 + 10) = 0;\n  }\n  else {\n    *(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    *(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }" if (parenthesized_expression "(iVar1 < 0x7bc)" ( (binary_expression "iVar1 < 0x7bc" identifier < number_literal) )) (compound_statement "{\n    *(undefined2 *)(param_1 + 8) = 0;\n    *(undefined2 *)(param_1 + 10) = 0;\n  }" { (expression_statement "*(undefined2 *)(param_1 + 8) = 0;" (assignment_expression "*(undefined2 *)(param_1 + 8) = 0" (pointer_expression "*(undefined2 *)(param_1 + 8)" * (cast_expression "(undefined2 *)(param_1 + 8)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined2 *)(param_1 + 10) = 0;" (assignment_expression "*(undefined2 *)(param_1 + 10) = 0" (pointer_expression "*(undefined2 *)(param_1 + 10)" * (cast_expression "(undefined2 *)(param_1 + 10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n    *(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    *(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }" else (compound_statement "{\n    *(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    *(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }" { (expression_statement "*(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;" (assignment_expression "*(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200" (pointer_expression "*(short *)(param_1 + 10)" * (cast_expression "(short *)(param_1 + 10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) = (binary_expression "((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200" (binary_expression "((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20" (parenthesized_expression "((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)))" ( (binary_expression "(short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" (cast_expression "(short)iVar3" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) - (cast_expression "(short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (cast_expression "(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" ( (binary_expression "(double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" (cast_expression "(double)iVar6" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" * (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918" identifier + number_literal) ))))) ))))) )) + (binary_expression "(short)iVar5 * 0x20" (cast_expression "(short)iVar5" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) * number_literal)) + (binary_expression "((short)iVar1 + -0x7bc) * 0x200" (parenthesized_expression "((short)iVar1 + -0x7bc)" ( (binary_expression "(short)iVar1 + -0x7bc" (cast_expression "(short)iVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) + number_literal) )) * number_literal))) ;) (expression_statement "*(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);" (assignment_expression "*(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800)" (pointer_expression "*(ushort *)(param_1 + 8)" * (cast_expression "(ushort *)(param_1 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = (binary_expression "((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800)" (binary_expression "((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2)" (parenthesized_expression "((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0)" ( (binary_expression "(ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0" (call_expression "(ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20)" ( (binary_expression "(ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20" (binary_expression "(ulonglong)(param_2 % 0xe10) * 0x88888889" (call_expression "(ulonglong)(param_2 % 0xe10)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(param_2 % 0xe10)" ( (binary_expression "param_2 % 0xe10" identifier % number_literal) ))) * number_literal) >> number_literal) ))) & number_literal) )) + (cast_expression "(short)((param_2 % 0x3c) / 2)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((param_2 % 0x3c) / 2)" ( (binary_expression "(param_2 % 0x3c) / 2" (parenthesized_expression "(param_2 % 0x3c)" ( (binary_expression "param_2 % 0x3c" identifier % number_literal) )) / number_literal) )))) + (parenthesized_expression "((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800)" ( (binary_expression "(ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800" (call_expression "(ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20)" ( (binary_expression "(ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20" (binary_expression "(ulonglong)(param_2 % 0x15180) * 0x91a2b3c5" (call_expression "(ulonglong)(param_2 % 0x15180)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(param_2 % 0x15180)" ( (binary_expression "param_2 % 0x15180" identifier % number_literal) ))) * number_literal) >> number_literal) ))) & number_literal) )))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression IDENT + LIT) < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT) )) / LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))))) )) + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT) * LIT)) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) 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 (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT % LIT) ))) * LIT) >> LIT) ))) & LIT) )) + (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT % LIT) )) / LIT) )))) + (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT % LIT) ))) * LIT) >> LIT) ))) & LIT) )))) ;) }))) (return_statement return ;) })))
(function_definition "void FUN_0001afd0(int param_1,uint param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar2 = param_2 / 0x15180;\n  dVar4 = (double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2);\n  iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));\n  iVar3 = uVar2 + 0x254381 + iVar5;\n  if (iVar5 < 0) {\n    iVar5 = iVar5 + 3;\n  }\n  iVar3 = iVar3 - (iVar5 >> 2);\n  uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));\n  iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;\n  iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));\n  iVar5 = iVar6 + -0xd;\n  if (iVar6 < 0xe) {\n    iVar5 = iVar6 + -1;\n  }\n  if (iVar5 < 3) {\n    iVar1 = uVar2 - 0x126b;\n  }\n  else {\n    iVar1 = uVar2 - 0x126c;\n  }\n  if (iVar1 < 0x7bc) {\n    *(undefined2 *)(param_1 + 8) = 0;\n    *(undefined2 *)(param_1 + 10) = 0;\n  }\n  else {\n    *(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    *(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0001afd0(int param_1,uint param_2)" (identifier "FUN_0001afd0") (parameter_list "(int param_1,uint param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  \n  uVar2 = param_2 / 0x15180;\n  dVar4 = (double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2);\n  iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));\n  iVar3 = uVar2 + 0x254381 + iVar5;\n  if (iVar5 < 0) {\n    iVar5 = iVar5 + 3;\n  }\n  iVar3 = iVar3 - (iVar5 >> 2);\n  uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));\n  iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;\n  iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));\n  iVar5 = iVar6 + -0xd;\n  if (iVar6 < 0xe) {\n    iVar5 = iVar6 + -1;\n  }\n  if (iVar5 < 3) {\n    iVar1 = uVar2 - 0x126b;\n  }\n  else {\n    iVar1 = uVar2 - 0x126c;\n  }\n  if (iVar1 < 0x7bc) {\n    *(undefined2 *)(param_1 + 8) = 0;\n    *(undefined2 *)(param_1 + 10) = 0;\n  }\n  else {\n    *(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    *(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "double dVar4;" (primitive_type "double") (identifier "dVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (expression_statement "uVar2 = param_2 / 0x15180;" (assignment_expression "uVar2 = param_2 / 0x15180" (identifier "uVar2") (= "=") (binary_expression "param_2 / 0x15180" (identifier "param_2") (/ "/") (number_literal "0x15180"))) (; ";")) (expression_statement "dVar4 = (double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2);" (assignment_expression "dVar4 = (double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2)" (identifier "dVar4") (= "=") (cast_expression "(double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2)" (parenthesized_expression "(*(code *)PTR_FUN_0018f960)" (( "(") (pointer_expression "*(code *)PTR_FUN_0018f960" (* "*") (cast_expression "(code *)PTR_FUN_0018f960" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_0018f960"))) () ")")) (argument_list "(uVar2 + 0x253d8c < uVar2)" (( "(") (binary_expression "uVar2 + 0x253d8c < uVar2" (binary_expression "uVar2 + 0x253d8c" (identifier "uVar2") (+ "+") (number_literal "0x253d8c")) (< "<") (identifier "uVar2")) () ")"))))) (; ";")) (expression_statement "iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));" (assignment_expression "iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930))" (identifier "iVar5") (= "=") (cast_expression "(int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930))" (( "(") (binary_expression "(dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930)" (parenthesized_expression "(dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938))" (( "(") (binary_expression "dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)" (identifier "dVar4") (- "-") (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)" (* "*") (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)" (( "(") (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938" (identifier "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c") (+ "+") (number_literal "-0x6938")) () ")"))))) () ")")) (/ "/") (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930)" (* "*") (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930)" (( "(") (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930" (identifier "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c") (+ "+") (number_literal "-0x6930")) () ")"))))) () ")")))) (; ";")) (expression_statement "iVar3 = uVar2 + 0x254381 + iVar5;" (assignment_expression "iVar3 = uVar2 + 0x254381 + iVar5" (identifier "iVar3") (= "=") (binary_expression "uVar2 + 0x254381 + iVar5" (binary_expression "uVar2 + 0x254381" (identifier "uVar2") (+ "+") (number_literal "0x254381")) (+ "+") (identifier "iVar5"))) (; ";")) (if_statement "if (iVar5 < 0) {\n    iVar5 = iVar5 + 3;\n  }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = iVar5 + 3;\n  }" ({ "{") (expression_statement "iVar5 = iVar5 + 3;" (assignment_expression "iVar5 = iVar5 + 3" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 3" (identifier "iVar5") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "iVar3 = iVar3 - (iVar5 >> 2);" (assignment_expression "iVar3 = iVar3 - (iVar5 >> 2)" (identifier "iVar3") (= "=") (binary_expression "iVar3 - (iVar5 >> 2)" (identifier "iVar3") (- "-") (parenthesized_expression "(iVar5 >> 2)" (( "(") (binary_expression "iVar5 >> 2" (identifier "iVar5") (>> ">>") (number_literal "2")) () ")")))) (; ";")) (expression_statement "uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));" (assignment_expression "uVar2 = (uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920))" (identifier "uVar2") (= "=") (call_expression "(uint)(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920))" (( "(") (binary_expression "((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /\n                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920)" (parenthesized_expression "((double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928))" (( "(") (binary_expression "(double)iVar3 -\n                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)" (cast_expression "(double)iVar3" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar3")) (- "-") (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)" (* "*") (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)" (( "(") (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928" (identifier "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c") (+ "+") (number_literal "-0x6928")) () ")"))))) () ")")) (/ "/") (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920)" (* "*") (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920)" (( "(") (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920" (identifier "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c") (+ "+") (number_literal "-0x6920")) () ")"))))) () ")")))) (; ";")) (expression_statement "iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;" (assignment_expression "iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100" (identifier "iVar3") (= "=") (binary_expression "iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100" (identifier "iVar3") (- "-") (binary_expression "((uVar2 & 0x7fff) * 0x8ead) / 100" (parenthesized_expression "((uVar2 & 0x7fff) * 0x8ead)" (( "(") (binary_expression "(uVar2 & 0x7fff) * 0x8ead" (parenthesized_expression "(uVar2 & 0x7fff)" (( "(") (binary_expression "uVar2 & 0x7fff" (identifier "uVar2") (& "&") (number_literal "0x7fff")) () ")")) (* "*") (number_literal "0x8ead")) () ")")) (/ "/") (number_literal "100")))) (; ";")) (expression_statement "iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));" (assignment_expression "iVar6 = (int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" (identifier "iVar6") (= "=") (cast_expression "(int)((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" (( "(") (binary_expression "(double)iVar3 /\n               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" (cast_expression "(double)iVar3" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar3")) (/ "/") (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" (* "*") (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" (( "(") (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918" (identifier "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c") (+ "+") (number_literal "-0x6918")) () ")"))))) () ")")))) (; ";")) (expression_statement "iVar5 = iVar6 + -0xd;" (assignment_expression "iVar5 = iVar6 + -0xd" (identifier "iVar5") (= "=") (binary_expression "iVar6 + -0xd" (identifier "iVar6") (+ "+") (number_literal "-0xd"))) (; ";")) (if_statement "if (iVar6 < 0xe) {\n    iVar5 = iVar6 + -1;\n  }" (if "if") (parenthesized_expression "(iVar6 < 0xe)" (( "(") (binary_expression "iVar6 < 0xe" (identifier "iVar6") (< "<") (number_literal "0xe")) () ")")) (compound_statement "{\n    iVar5 = iVar6 + -1;\n  }" ({ "{") (expression_statement "iVar5 = iVar6 + -1;" (assignment_expression "iVar5 = iVar6 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (if_statement "if (iVar5 < 3) {\n    iVar1 = uVar2 - 0x126b;\n  }\n  else {\n    iVar1 = uVar2 - 0x126c;\n  }" (if "if") (parenthesized_expression "(iVar5 < 3)" (( "(") (binary_expression "iVar5 < 3" (identifier "iVar5") (< "<") (number_literal "3")) () ")")) (compound_statement "{\n    iVar1 = uVar2 - 0x126b;\n  }" ({ "{") (expression_statement "iVar1 = uVar2 - 0x126b;" (assignment_expression "iVar1 = uVar2 - 0x126b" (identifier "iVar1") (= "=") (binary_expression "uVar2 - 0x126b" (identifier "uVar2") (- "-") (number_literal "0x126b"))) (; ";")) (} "}")) (else_clause "else {\n    iVar1 = uVar2 - 0x126c;\n  }" (else "else") (compound_statement "{\n    iVar1 = uVar2 - 0x126c;\n  }" ({ "{") (expression_statement "iVar1 = uVar2 - 0x126c;" (assignment_expression "iVar1 = uVar2 - 0x126c" (identifier "iVar1") (= "=") (binary_expression "uVar2 - 0x126c" (identifier "uVar2") (- "-") (number_literal "0x126c"))) (; ";")) (} "}")))) (if_statement "if (iVar1 < 0x7bc) {\n    *(undefined2 *)(param_1 + 8) = 0;\n    *(undefined2 *)(param_1 + 10) = 0;\n  }\n  else {\n    *(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    *(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }" (if "if") (parenthesized_expression "(iVar1 < 0x7bc)" (( "(") (binary_expression "iVar1 < 0x7bc" (identifier "iVar1") (< "<") (number_literal "0x7bc")) () ")")) (compound_statement "{\n    *(undefined2 *)(param_1 + 8) = 0;\n    *(undefined2 *)(param_1 + 10) = 0;\n  }" ({ "{") (expression_statement "*(undefined2 *)(param_1 + 8) = 0;" (assignment_expression "*(undefined2 *)(param_1 + 8) = 0" (pointer_expression "*(undefined2 *)(param_1 + 8)" (* "*") (cast_expression "(undefined2 *)(param_1 + 8)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(param_1 + 10) = 0;" (assignment_expression "*(undefined2 *)(param_1 + 10) = 0" (pointer_expression "*(undefined2 *)(param_1 + 10)" (* "*") (cast_expression "(undefined2 *)(param_1 + 10)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 10)" (( "(") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    *(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    *(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }" (else "else") (compound_statement "{\n    *(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;\n    *(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);\n  }" ({ "{") (expression_statement "*(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;" (assignment_expression "*(short *)(param_1 + 10) =\n         ((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200" (pointer_expression "*(short *)(param_1 + 10)" (* "*") (cast_expression "(short *)(param_1 + 10)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 10)" (( "(") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10")) () ")")))) (= "=") (binary_expression "((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200" (binary_expression "((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +\n         (short)iVar5 * 0x20" (parenthesized_expression "((short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)))" (( "(") (binary_expression "(short)iVar3 -\n         (short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" (cast_expression "(short)iVar3" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "iVar3")) (- "-") (cast_expression "(short)(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (cast_expression "(int)((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))" (( "(") (binary_expression "(double)iVar6 *\n                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" (cast_expression "(double)iVar6" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar6")) (* "*") (pointer_expression "*(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" (* "*") (cast_expression "(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918)" (( "(") (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918" (identifier "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c") (+ "+") (number_literal "-0x6918")) () ")"))))) () ")"))))) () ")")) (+ "+") (binary_expression "(short)iVar5 * 0x20" (cast_expression "(short)iVar5" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "iVar5")) (* "*") (number_literal "0x20"))) (+ "+") (binary_expression "((short)iVar1 + -0x7bc) * 0x200" (parenthesized_expression "((short)iVar1 + -0x7bc)" (( "(") (binary_expression "(short)iVar1 + -0x7bc" (cast_expression "(short)iVar1" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "iVar1")) (+ "+") (number_literal "-0x7bc")) () ")")) (* "*") (number_literal "0x200")))) (; ";")) (expression_statement "*(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);" (assignment_expression "*(ushort *)(param_1 + 8) =\n         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800)" (pointer_expression "*(ushort *)(param_1 + 8)" (* "*") (cast_expression "(ushort *)(param_1 + 8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2) +\n         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800)" (binary_expression "((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +\n         (short)((param_2 % 0x3c) / 2)" (parenthesized_expression "((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0)" (( "(") (binary_expression "(ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0" (call_expression "(ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20)" (( "(") (binary_expression "(ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20" (binary_expression "(ulonglong)(param_2 % 0xe10) * 0x88888889" (call_expression "(ulonglong)(param_2 % 0xe10)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(param_2 % 0xe10)" (( "(") (binary_expression "param_2 % 0xe10" (identifier "param_2") (% "%") (number_literal "0xe10")) () ")"))) (* "*") (number_literal "0x88888889")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (number_literal "0xffe0")) () ")")) (+ "+") (cast_expression "(short)((param_2 % 0x3c) / 2)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "((param_2 % 0x3c) / 2)" (( "(") (binary_expression "(param_2 % 0x3c) / 2" (parenthesized_expression "(param_2 % 0x3c)" (( "(") (binary_expression "param_2 % 0x3c" (identifier "param_2") (% "%") (number_literal "0x3c")) () ")")) (/ "/") (number_literal "2")) () ")")))) (+ "+") (parenthesized_expression "((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800)" (( "(") (binary_expression "(ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800" (call_expression "(ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20)" (( "(") (binary_expression "(ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20" (binary_expression "(ulonglong)(param_2 % 0x15180) * 0x91a2b3c5" (call_expression "(ulonglong)(param_2 % 0x15180)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(param_2 % 0x15180)" (( "(") (binary_expression "param_2 % 0x15180" (identifier "param_2") (% "%") (number_literal "0x15180")) () ")"))) (* "*") (number_literal "0x91a2b3c5")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (number_literal "0xf800")) () ")")))) (; ";")) (} "}")))) (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: (identifier)) (parameter_declaration type: (type_identifier) 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)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_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))))))) 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: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (if_statement condition: (parenthesized_expression (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: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))))))) 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: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) 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: (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: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (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: (identifier) right: (number_literal))))) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (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: (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: (sized_type_specifier)) value: (identifier)) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) 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: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)) right: (number_literal)))) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)) right: (number_literal)))) right: (number_literal))))))))) (return_statement))))

void MASKED(int param_1,uint param_2)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  double dVar4;
  int iVar5;
  int iVar6;
  
  uVar2 = param_2 / 0x15180;
  dVar4 = (double)(*(code *)PTR_FUN_0018f960)(uVar2 + 0x253d8c < uVar2);
  iVar5 = (int)((dVar4 - *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6938)) /
               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6930));
  iVar3 = uVar2 + 0x254381 + iVar5;
  if (iVar5 < 0) {
    iVar5 = iVar5 + 3;
  }
  iVar3 = iVar3 - (iVar5 >> 2);
  uVar2 = (uint)(((double)iVar3 -
                 *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6928)) /
                *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6920));
  iVar3 = iVar3 - ((uVar2 & 0x7fff) * 0x8ead) / 100;
  iVar6 = (int)((double)iVar3 /
               *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918));
  iVar5 = iVar6 + -0xd;
  if (iVar6 < 0xe) {
    iVar5 = iVar6 + -1;
  }
  if (iVar5 < 3) {
    iVar1 = uVar2 - 0x126b;
  }
  else {
    iVar1 = uVar2 - 0x126c;
  }
  if (iVar1 < 0x7bc) {
    *(undefined2 *)(param_1 + 8) = 0;
    *(undefined2 *)(param_1 + 10) = 0;
  }
  else {
    *(short *)(param_1 + 10) =
         ((short)iVar3 -
         (short)(int)((double)iVar6 *
                     *(double *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x6918))) +
         (short)iVar5 * 0x20 + ((short)iVar1 + -0x7bc) * 0x200;
    *(ushort *)(param_1 + 8) =
         ((ushort)((ulonglong)(param_2 % 0xe10) * 0x88888889 >> 0x20) & 0xffe0) +
         (short)((param_2 % 0x3c) / 2) +
         ((ushort)((ulonglong)(param_2 % 0x15180) * 0x91a2b3c5 >> 0x20) & 0xf800);
  }
  return;
}

