
/* DWARF original prototype: sqlite3_int64 localtimeOffset(DateTime * p, sqlite3_context * pCtx, int
   * pRc, sqlite3_context * pCtx) */

sqlite3_int64 localtimeOffset(DateTime *p,sqlite3_context *pCtx,int *pRc,sqlite3_context *pCtx_1)

{
  undefined *puVar1;
  DateTime *pDVar2;
  undefined4 *puVar3;
  int iVar4;
  int extraout_v1;
  uint extraout_v1_00;
  uint uVar5;
  DateTime *pDVar6;
  int *piVar7;
  undefined4 *puVar8;
  int iVar9;
  code *pcVar10;
  undefined *puVar11;
  sqlite3_int64 sVar12;
  time_t t;
  tm sLocal;
  DateTime x;
  DateTime y;
  
  puVar11 = PTR___stack_chk_guard_00190e24;
  sLocal.tm_sec = 0;
  sLocal.tm_min = 0;
  sLocal.tm_hour = 0;
  sLocal.tm_mday = 0;
  sLocal.tm_mon = 0;
  sLocal.tm_year = 0;
  sLocal.tm_wday = 0;
  sLocal.tm_yday = 0;
  sLocal.tm_isdst = 0;
  sLocal.tm_gmtoff = 0;
  sLocal.tm_zone = (char *)0x0;
  puVar3 = *(undefined4 **)PTR___stack_chk_guard_00190e24;
  pDVar2 = &x;
  pDVar6 = p;
  do {
    piVar7 = &pDVar6->D;
    sVar12 = pDVar6->iJD;
    iVar9 = pDVar6->Y;
    iVar4 = pDVar6->M;
    *(undefined4 *)&pDVar2->iJD = *(undefined4 *)&pDVar6->iJD;
    *(int *)((int)&pDVar2->iJD + 4) = (int)sVar12;
    pDVar2->Y = iVar9;
    pDVar2->M = iVar4;
    pDVar2 = (DateTime *)&pDVar2->D;
    pDVar6 = (DateTime *)piVar7;
  } while ((DateTime *)piVar7 != p + 1);
  (*(code *)(PTR_LAB_00190ba8 + -0x35ac))(&x);
  if (x.Y - 0x7b3U < 0x43) {
    x.s = (double)(int)(x.s + *(double *)(PTR_DAT_00190b94 + -0x3ab8));
  }
  else {
    x.h = 0;
    x.m = 0;
    x.M = 1;
    x.Y = 2000;
    x.D = 1;
    x.s = 0.0;
  }
  x.tz = 0;
  pcVar10 = (code *)(PTR_LAB_00190ba8 + -0x3bac);
  x.validJD = '\0';
  (*pcVar10)(&x);
  (*(code *)PTR___divdi3_00190aa0)(x.iJD._0_4_,x.iJD._4_4_,0,1000);
  t = extraout_v1 + -0x18a36940;
  if ((*(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + -0xa64) == 0) &&
     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&t,&sLocal), iVar4 != 0)) {
    y.validTZ = '\0';
    y.M = sLocal.tm_mon + 1;
    y.isError = '\0';
    y.Y = sLocal.tm_year + 0x76c;
    y.s = (double)sLocal.tm_sec;
    y.D = sLocal.tm_mday;
    y.h = sLocal.tm_hour;
    y.m = sLocal.tm_min;
    y.validJD = '\0';
    y.rawS = '\0';
    y.validYMD = '\x01';
    y.validHMS = '\x01';
    (*pcVar10)(&y);
    pCtx_1->pOut = (Mem *)0x0;
    sVar12 = FUN_0007ddd4(y.iJD._4_4_ < y.iJD._4_4_ - x.iJD._4_4_,x.iJD._0_4_);
    return sVar12;
  }
  puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;
  *pRc = 1;
  sqlite3VdbeMemSetStr(pCtx->pOut,puVar1 + -0x61c8,-1,'\x01',(_func_void_void_ptr *)0xffffffff);
  pCtx_1->pOut = (Mem *)0x1;
  puVar8 = *(undefined4 **)puVar11;
  if (puVar3 == puVar8) {
    return 0;
  }
  puVar11 = PTR___stack_chk_fail_00190df8;
  (*(code *)PTR___stack_chk_fail_00190df8)();
  iVar4 = puVar8[2];
  uVar5 = extraout_v1_00;
  if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {
    puVar3 = (undefined4 *)
             createAggContext((sqlite3_context *)(puVar8 + 1),iVar4,(sqlite3_context *)0x0);
  }
  else {
    puVar3 = *(undefined4 **)(iVar4 + 0x10);
  }
  if (puVar3 == (undefined4 *)0x0) goto LAB_0007df78;
  uVar5 = puVar3[4];
  if ((int)uVar5 < 1) {
    if (uVar5 != 0) goto LAB_0007df78;
    if (puVar3[5] == 0) {
      uVar5 = 0;
      goto LAB_0007df78;
    }
  }
  uVar5 = (uint)*(byte *)(puVar3 + 6);
  iVar4 = *(int *)(puVar11 + 0x112a94);
  if (uVar5 == 0) {
    if (*(char *)((int)puVar3 + 0x19) == '\0') {
                    /* WARNING: Could not recover jumptable at 0x0007dfcc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      sVar12 = (**(code **)(puVar11 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);
      return sVar12;
    }
                    /* WARNING: Could not recover jumptable at 0x0007df3c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    sVar12 = (**(code **)(puVar11 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);
    return sVar12;
  }
  puVar8[5] = 1;
  puVar3 = (undefined4 *)
           sqlite3VdbeMemSetStr
                     ((Mem *)*puVar8,(char *)(iVar4 + -0x61b0),-1,'\x01',
                      (_func_void_void_ptr *)0xffffffff);
LAB_0007df78:
  return CONCAT44(puVar3,uVar5);
}



ulonglong FUN_0007dc40(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4)

{
  undefined *puVar1;
  int *piVar2;
  undefined4 *puVar3;
  int iVar4;
  int extraout_v1;
  uint uVar5;
  undefined4 extraout_v1_00;
  int *piVar6;
  int *piVar7;
  undefined4 *puVar8;
  int iVar9;
  int iVar10;
  code *pcVar11;
  undefined *puVar12;
  ulonglong uVar13;
  int local_b8;
  int local_b4;
  undefined4 local_b0;
  undefined4 local_ac;
  undefined4 local_a8;
  int local_a4;
  int local_a0;
  undefined4 local_9c;
  undefined4 local_98;
  undefined4 local_94;
  undefined4 local_90;
  undefined4 local_8c;
  int local_88 [8];
  double local_68;
  undefined1 local_60;
  undefined4 local_58;
  int local_54;
  int local_50;
  int local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  double local_38;
  undefined4 local_30;
  undefined1 local_2c;
  undefined1 local_2a;
  undefined4 *local_24;
  
  puVar12 = PTR___stack_chk_guard_00190e24;
  local_b4 = 0;
  local_b0 = 0;
  local_ac = 0;
  local_a8 = 0;
  local_a4 = 0;
  local_a0 = 0;
  local_9c = 0;
  local_98 = 0;
  local_94 = 0;
  local_90 = 0;
  local_8c = 0;
  local_24 = *(undefined4 **)PTR___stack_chk_guard_00190e24;
  piVar2 = local_88;
  piVar6 = param_1;
  do {
    piVar7 = piVar6 + 4;
    iVar10 = piVar6[1];
    iVar9 = piVar6[2];
    iVar4 = piVar6[3];
    *piVar2 = *piVar6;
    piVar2[1] = iVar10;
    piVar2[2] = iVar9;
    piVar2[3] = iVar4;
    piVar2 = piVar2 + 4;
    piVar6 = piVar7;
  } while (piVar7 != param_1 + 0xc);
  (*(code *)(PTR_LAB_00190ba8 + -0x35ac))(local_88);
  if (local_88[2] - 0x7b3U < 0x43) {
    local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));
  }
  else {
    local_88[5] = 0;
    local_88[6] = 0;
    local_88[3] = 1;
    local_88[2] = 2000;
    local_88[4] = 1;
    local_68 = 0.0;
  }
  local_88[7] = 0;
  pcVar11 = (code *)(PTR_LAB_00190ba8 + -0x3bac);
  local_60 = 0;
  (*pcVar11)(local_88);
  (*(code *)PTR_FUN_00190aa0)(local_88[0],local_88[1],0,1000);
  local_b8 = extraout_v1 + -0x18a36940;
  if ((*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&
     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)) {
    local_2c = 0;
    local_4c = local_a4 + 1;
    local_2a = 0;
    local_50 = local_a0 + 0x76c;
    local_38 = (double)local_b4;
    local_48 = local_a8;
    local_44 = local_ac;
    local_40 = local_b0;
    local_30 = 0x101;
    (*pcVar11)(&local_58);
    uVar5 = local_54 - local_88[1];
    *param_4 = 0;
  }
  else {
    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;
    *param_3 = 1;
    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);
    uVar5 = 0;
    *param_4 = 1;
  }
  puVar8 = *(undefined4 **)puVar12;
  if (local_24 == puVar8) {
    return (ulonglong)uVar5;
  }
  puVar12 = PTR___stack_chk_fail_00190df8;
  (*(code *)PTR___stack_chk_fail_00190df8)();
  iVar4 = puVar8[2];
  if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {
    uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);
  }
  else {
    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);
  }
  puVar3 = (undefined4 *)(uVar13 >> 0x20);
  if (puVar3 == (undefined4 *)0x0) {
    return uVar13;
  }
  iVar4 = puVar3[4];
  if (iVar4 < 1) {
    if (iVar4 != 0) {
      return CONCAT44(puVar3,iVar4);
    }
    if (puVar3[5] == 0) {
      return 0;
    }
  }
  iVar4 = *(int *)(puVar12 + 0x112a94);
  if (*(char *)(puVar3 + 6) != '\0') {
    puVar8[5] = 1;
    uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);
    return uVar13;
  }
  if (*(char *)((int)puVar3 + 0x19) != '\0') {
                    /* WARNING: Could not recover jumptable at 0x0007df3c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);
    return uVar13;
  }
                    /* WARNING: Could not recover jumptable at 0x0007dfcc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  uVar13 = (**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);
  return uVar13;
}


lui gp,0x12
addiu gp,gp,-0x5320
addu gp,gp,t9
addiu sp,sp,-0xd8
addiu t0,a0,0x30
sw s1,0xc0(sp)
sw s5,0xd0(sp)
addiu s5,sp,0x50
sw s4,0xcc(sp)
or s4,a2,zero
sw s3,0xc8(sp)
or v0,s5,zero
sw s2,0xc4(sp)
or s3,a1,zero
sw s0,0xbc(sp)
addiu s0,sp,0x24
sw gp,0x18(sp)
or s2,a3,zero
sw ra,0xd4(sp)
lw s1,-0x7afc(gp)
sw zero,0x24(sp)
sw zero,0x4(s0)
sw zero,0x8(s0)
sw zero,0xc(s0)
sw zero,0x10(s0)
sw zero,0x14(s0)
sw zero,0x18(s0)
sw zero,0x1c(s0)
sw zero,0x20(s0)
sw zero,0x24(s0)
sw zero,0x28(s0)
lw v1,0x0(s1)
sw v1,0xb4(sp)
lw a3,0x0(a0)
addiu a0,a0,0x10
addiu v0,v0,0x10
lw a2,-0xc(a0)
lw a1,-0x8(a0)
lw v1,-0x4(a0)
sw a3,-0x10(v0)
sw a2,-0xc(v0)
sw a1,-0x8(v0)
bne a0,t0,0x0007dcc4
_sw v1,-0x4(v0)
lw t9,-0x7d78(gp)
addiu t9,t9,-0x35ac
jalr t9
_or a0,s5,zero
lw v0,0x58(sp)
addiu v0,v0,-0x7b3
sltiu v0,v0,0x43
bne v0,zero,0x0007de04
_lw gp,0x18(sp)
li v0,0x1
sw zero,0x64(sp)
li v1,0x7d0
sw zero,0x68(sp)
sw v0,0x5c(sp)
sw v1,0x58(sp)
sw v0,0x60(sp)
sw zero,0x74(sp)
sw zero,0x70(sp)
or a0,s5,zero
lw s5,-0x7d78(gp)
sw zero,0x6c(sp)
addiu s5,s5,-0x3bac
or t9,s5,zero
jalr t9
_sb zero,0x78(sp)
li a3,0x3e8
lw gp,0x18(sp)
or a2,zero,zero
lw a1,0x54(sp)
lw t9,-0x7e80(gp)
jalr t9
_lw a0,0x50(sp)
lui v0,0xe75c
lw gp,0x18(sp)
ori v0,v0,0x96c0
addu v1,v1,v0
lw v0,-0x7fd8(gp)
sw v1,0x20(sp)
lw v0,-0xa64(v0)
beq v0,zero,0x0007de24
_lw t9,-0x7b48(gp)
li s0,0x1
lw a1,-0x7fc4(gp)
li v0,-0x1
lw t9,-0x7d60(gp)
sw s0,0x0(s4)
li a3,0x1
sw v0,0x10(sp)
li a2,-0x1
lw a0,0x0(s3)
addiu t9,t9,-0x2aec
bal 0x0007d514
_addiu a1,a1,-0x61c8
or v0,zero,zero
or v1,zero,zero
lw gp,0x18(sp)
sw s0,0x0(s2)
lw a1,0xb4(sp)
lw a0,0x0(s1)
bne a1,a0,0x0007debc
_lw ra,0xd4(sp)
lw s5,0xd0(sp)
lw s4,0xcc(sp)
lw s3,0xc8(sp)
lw s2,0xc4(sp)
lw s1,0xc0(sp)
lw s0,0xbc(sp)
jr ra
_addiu sp,sp,0xd8
lw v0,-0x7d8c(gp)
ldc1 f0,0x70(sp)
ldc1 f2,-0x3ab8(v0)
add.D f0,f0,f2
trunc.w.D f0,f0
cvt.d.W f0,f0
b 0x0007dd38
_sdc1 f0,0x70(sp)
addiu a0,sp,0x20
jalr t9
_or a1,s0,zero
beq v0,zero,0x0007dd94
_lw gp,0x18(sp)
lwc1 f0,0x24(sp)
addiu a0,sp,0x80
lw v0,0x34(sp)
or t9,s5,zero
lw v1,0x38(sp)
sb zero,0xac(sp)
addiu v0,v0,0x1
sb zero,0xae(sp)
addiu v1,v1,0x76c
sw v0,0x8c(sp)
lw v0,0x30(sp)
cvt.d.W f0,f0
sw v1,0x88(sp)
sw v0,0x90(sp)
lw v0,0x2c(sp)
sw v0,0x94(sp)
lw v0,0x28(sp)
sdc1 f0,0xa0(sp)
sw v0,0x98(sp)
li v0,0x101
jalr t9
_sw v0,0xa8(sp)
lw a0,0x84(sp)
lw v1,0x54(sp)
lw v0,0x80(sp)
lw a1,0x50(sp)
subu v1,a0,v1
lw gp,0x18(sp)
sw zero,0x0(s2)
subu v0,v0,a1
sltu a0,a0,v1
b 0x0007ddd4
_subu v0,v0,a0
lw t9,-0x7b28(gp)
jalr t9
_nop
lui gp,0x12
addiu gp,gp,-0x55a8
addu gp,gp,t9
addiu sp,sp,-0x28
sw s0,0x20(sp)
sw gp,0x18(sp)
sw ra,0x24(sp)
lw a1,0x8(a0)
lhu v0,0x8(a1)
andi v0,v0,0x2000
beq v0,zero,0x0007df9c
_or s0,a0,zero
lw v0,0x10(a1)
beq v0,zero,0x0007df74
_lw ra,0x24(sp)
lw v1,0x10(v0)
blez v1,0x0007df80
_nop
lbu v1,0x18(v0)
bne v1,zero,0x0007df44
_lw a1,-0x7fc4(gp)
lbu v1,0x19(v0)
beq v1,zero,0x0007dfb8
_lw ra,0x24(sp)
or a0,s0,zero
lw a3,0x4(v0)
lw s0,0x20(sp)
lw a2,0x0(v0)
lw t9,-0x7ee4(gp)
jr t9
_addiu sp,sp,0x28
li v0,0x1
lw t9,-0x7d60(gp)
li a3,0x1
lw a0,0x0(s0)
li a2,-0x1
sw v0,0x14(s0)
li v0,-0x1
addiu a1,a1,-0x61b0
addiu t9,t9,-0x2aec
bal 0x0007d514
_sw v0,0x10(sp)
lw ra,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x28
bne v1,zero,0x0007df74
_lw ra,0x24(sp)
lw v1,0x14(v0)
bne v1,zero,0x0007df10
_nop
b 0x0007df78
_lw s0,0x20(sp)
lw t9,-0x7d60(gp)
or a2,zero,zero
addiu t9,t9,-0x4168
bal 0x0007be98
_addiu a0,a0,0x4
b 0x0007defc
_lw gp,0x18(sp)
or a0,s0,zero
lw a3,0xc(v0)
lw s0,0x20(sp)
lw a2,0x8(v0)
lw t9,-0x7f5c(gp)
jr t9
_addiu sp,sp,0x28
(translation_unit "ulonglong FUN_0007dc40(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int extraout_v1;\n  uint uVar5;\n  undefined4 extraout_v1_00;\n  int *piVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int iVar10;\n  code *pcVar11;\n  undefined *puVar12;\n  ulonglong uVar13;\n  int local_b8;\n  int local_b4;\n  undefined4 local_b0;\n  undefined4 local_ac;\n  undefined4 local_a8;\n  int local_a4;\n  int local_a0;\n  undefined4 local_9c;\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined4 local_8c;\n  int local_88 [8];\n  double local_68;\n  undefined1 local_60;\n  undefined4 local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  double local_38;\n  undefined4 local_30;\n  undefined1 local_2c;\n  undefined1 local_2a;\n  undefined4 *local_24;\n  \n  puVar12 = PTR___stack_chk_guard_00190e24;\n  local_b4 = 0;\n  local_b0 = 0;\n  local_ac = 0;\n  local_a8 = 0;\n  local_a4 = 0;\n  local_a0 = 0;\n  local_9c = 0;\n  local_98 = 0;\n  local_94 = 0;\n  local_90 = 0;\n  local_8c = 0;\n  local_24 = *(undefined4 **)PTR___stack_chk_guard_00190e24;\n  piVar2 = local_88;\n  piVar6 = param_1;\n  do {\n    piVar7 = piVar6 + 4;\n    iVar10 = piVar6[1];\n    iVar9 = piVar6[2];\n    iVar4 = piVar6[3];\n    *piVar2 = *piVar6;\n    piVar2[1] = iVar10;\n    piVar2[2] = iVar9;\n    piVar2[3] = iVar4;\n    piVar2 = piVar2 + 4;\n    piVar6 = piVar7;\n  } while (piVar7 != param_1 + 0xc);\n  (*(code *)(PTR_LAB_00190ba8 + -0x35ac))(local_88);\n  if (local_88[2] - 0x7b3U < 0x43) {\n    local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }\n  else {\n    local_88[5] = 0;\n    local_88[6] = 0;\n    local_88[3] = 1;\n    local_88[2] = 2000;\n    local_88[4] = 1;\n    local_68 = 0.0;\n  }\n  local_88[7] = 0;\n  pcVar11 = (code *)(PTR_LAB_00190ba8 + -0x3bac);\n  local_60 = 0;\n  (*pcVar11)(local_88);\n  (*(code *)PTR_FUN_00190aa0)(local_88[0],local_88[1],0,1000);\n  local_b8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)) {\n    local_2c = 0;\n    local_4c = local_a4 + 1;\n    local_2a = 0;\n    local_50 = local_a0 + 0x76c;\n    local_38 = (double)local_b4;\n    local_48 = local_a8;\n    local_44 = local_ac;\n    local_40 = local_b0;\n    local_30 = 0x101;\n    (*pcVar11)(&local_58);\n    uVar5 = local_54 - local_88[1];\n    *param_4 = 0;\n  }\n  else {\n    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n    *param_3 = 1;\n    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);\n    uVar5 = 0;\n    *param_4 = 1;\n  }\n  puVar8 = *(undefined4 **)puVar12;\n  if (local_24 == puVar8) {\n    return (ulonglong)uVar5;\n  }\n  puVar12 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  iVar4 = puVar8[2];\n  if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {\n    uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);\n  }\n  else {\n    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);\n  }\n  puVar3 = (undefined4 *)(uVar13 >> 0x20);\n  if (puVar3 == (undefined4 *)0x0) {\n    return uVar13;\n  }\n  iVar4 = puVar3[4];\n  if (iVar4 < 1) {\n    if (iVar4 != 0) {\n      return CONCAT44(puVar3,iVar4);\n    }\n    if (puVar3[5] == 0) {\n      return 0;\n    }\n  }\n  iVar4 = *(int *)(puVar12 + 0x112a94);\n  if (*(char *)(puVar3 + 6) != '\0') {\n    puVar8[5] = 1;\n    uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);\n    return uVar13;\n  }\n  if (*(char *)((int)puVar3 + 0x19) != '\0') {\n                    /* WARNING: Could not recover jumptable at 0x0007df3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return uVar13;\n  }\n                    /* WARNING: Could not recover jumptable at 0x0007dfcc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar13 = (**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);\n  return uVar13;\n}\n\n" (function_definition "ulonglong FUN_0007dc40(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int extraout_v1;\n  uint uVar5;\n  undefined4 extraout_v1_00;\n  int *piVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int iVar10;\n  code *pcVar11;\n  undefined *puVar12;\n  ulonglong uVar13;\n  int local_b8;\n  int local_b4;\n  undefined4 local_b0;\n  undefined4 local_ac;\n  undefined4 local_a8;\n  int local_a4;\n  int local_a0;\n  undefined4 local_9c;\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined4 local_8c;\n  int local_88 [8];\n  double local_68;\n  undefined1 local_60;\n  undefined4 local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  double local_38;\n  undefined4 local_30;\n  undefined1 local_2c;\n  undefined1 local_2a;\n  undefined4 *local_24;\n  \n  puVar12 = PTR___stack_chk_guard_00190e24;\n  local_b4 = 0;\n  local_b0 = 0;\n  local_ac = 0;\n  local_a8 = 0;\n  local_a4 = 0;\n  local_a0 = 0;\n  local_9c = 0;\n  local_98 = 0;\n  local_94 = 0;\n  local_90 = 0;\n  local_8c = 0;\n  local_24 = *(undefined4 **)PTR___stack_chk_guard_00190e24;\n  piVar2 = local_88;\n  piVar6 = param_1;\n  do {\n    piVar7 = piVar6 + 4;\n    iVar10 = piVar6[1];\n    iVar9 = piVar6[2];\n    iVar4 = piVar6[3];\n    *piVar2 = *piVar6;\n    piVar2[1] = iVar10;\n    piVar2[2] = iVar9;\n    piVar2[3] = iVar4;\n    piVar2 = piVar2 + 4;\n    piVar6 = piVar7;\n  } while (piVar7 != param_1 + 0xc);\n  (*(code *)(PTR_LAB_00190ba8 + -0x35ac))(local_88);\n  if (local_88[2] - 0x7b3U < 0x43) {\n    local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }\n  else {\n    local_88[5] = 0;\n    local_88[6] = 0;\n    local_88[3] = 1;\n    local_88[2] = 2000;\n    local_88[4] = 1;\n    local_68 = 0.0;\n  }\n  local_88[7] = 0;\n  pcVar11 = (code *)(PTR_LAB_00190ba8 + -0x3bac);\n  local_60 = 0;\n  (*pcVar11)(local_88);\n  (*(code *)PTR_FUN_00190aa0)(local_88[0],local_88[1],0,1000);\n  local_b8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)) {\n    local_2c = 0;\n    local_4c = local_a4 + 1;\n    local_2a = 0;\n    local_50 = local_a0 + 0x76c;\n    local_38 = (double)local_b4;\n    local_48 = local_a8;\n    local_44 = local_ac;\n    local_40 = local_b0;\n    local_30 = 0x101;\n    (*pcVar11)(&local_58);\n    uVar5 = local_54 - local_88[1];\n    *param_4 = 0;\n  }\n  else {\n    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n    *param_3 = 1;\n    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);\n    uVar5 = 0;\n    *param_4 = 1;\n  }\n  puVar8 = *(undefined4 **)puVar12;\n  if (local_24 == puVar8) {\n    return (ulonglong)uVar5;\n  }\n  puVar12 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  iVar4 = puVar8[2];\n  if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {\n    uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);\n  }\n  else {\n    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);\n  }\n  puVar3 = (undefined4 *)(uVar13 >> 0x20);\n  if (puVar3 == (undefined4 *)0x0) {\n    return uVar13;\n  }\n  iVar4 = puVar3[4];\n  if (iVar4 < 1) {\n    if (iVar4 != 0) {\n      return CONCAT44(puVar3,iVar4);\n    }\n    if (puVar3[5] == 0) {\n      return 0;\n    }\n  }\n  iVar4 = *(int *)(puVar12 + 0x112a94);\n  if (*(char *)(puVar3 + 6) != '\0') {\n    puVar8[5] = 1;\n    uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);\n    return uVar13;\n  }\n  if (*(char *)((int)puVar3 + 0x19) != '\0') {\n                    /* WARNING: Could not recover jumptable at 0x0007df3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return uVar13;\n  }\n                    /* WARNING: Could not recover jumptable at 0x0007dfcc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar13 = (**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);\n  return uVar13;\n}" type_identifier (function_declarator "FUN_0007dc40(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4)" identifier (parameter_list "(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int extraout_v1;\n  uint uVar5;\n  undefined4 extraout_v1_00;\n  int *piVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int iVar10;\n  code *pcVar11;\n  undefined *puVar12;\n  ulonglong uVar13;\n  int local_b8;\n  int local_b4;\n  undefined4 local_b0;\n  undefined4 local_ac;\n  undefined4 local_a8;\n  int local_a4;\n  int local_a0;\n  undefined4 local_9c;\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined4 local_8c;\n  int local_88 [8];\n  double local_68;\n  undefined1 local_60;\n  undefined4 local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  double local_38;\n  undefined4 local_30;\n  undefined1 local_2c;\n  undefined1 local_2a;\n  undefined4 *local_24;\n  \n  puVar12 = PTR___stack_chk_guard_00190e24;\n  local_b4 = 0;\n  local_b0 = 0;\n  local_ac = 0;\n  local_a8 = 0;\n  local_a4 = 0;\n  local_a0 = 0;\n  local_9c = 0;\n  local_98 = 0;\n  local_94 = 0;\n  local_90 = 0;\n  local_8c = 0;\n  local_24 = *(undefined4 **)PTR___stack_chk_guard_00190e24;\n  piVar2 = local_88;\n  piVar6 = param_1;\n  do {\n    piVar7 = piVar6 + 4;\n    iVar10 = piVar6[1];\n    iVar9 = piVar6[2];\n    iVar4 = piVar6[3];\n    *piVar2 = *piVar6;\n    piVar2[1] = iVar10;\n    piVar2[2] = iVar9;\n    piVar2[3] = iVar4;\n    piVar2 = piVar2 + 4;\n    piVar6 = piVar7;\n  } while (piVar7 != param_1 + 0xc);\n  (*(code *)(PTR_LAB_00190ba8 + -0x35ac))(local_88);\n  if (local_88[2] - 0x7b3U < 0x43) {\n    local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }\n  else {\n    local_88[5] = 0;\n    local_88[6] = 0;\n    local_88[3] = 1;\n    local_88[2] = 2000;\n    local_88[4] = 1;\n    local_68 = 0.0;\n  }\n  local_88[7] = 0;\n  pcVar11 = (code *)(PTR_LAB_00190ba8 + -0x3bac);\n  local_60 = 0;\n  (*pcVar11)(local_88);\n  (*(code *)PTR_FUN_00190aa0)(local_88[0],local_88[1],0,1000);\n  local_b8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)) {\n    local_2c = 0;\n    local_4c = local_a4 + 1;\n    local_2a = 0;\n    local_50 = local_a0 + 0x76c;\n    local_38 = (double)local_b4;\n    local_48 = local_a8;\n    local_44 = local_ac;\n    local_40 = local_b0;\n    local_30 = 0x101;\n    (*pcVar11)(&local_58);\n    uVar5 = local_54 - local_88[1];\n    *param_4 = 0;\n  }\n  else {\n    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n    *param_3 = 1;\n    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);\n    uVar5 = 0;\n    *param_4 = 1;\n  }\n  puVar8 = *(undefined4 **)puVar12;\n  if (local_24 == puVar8) {\n    return (ulonglong)uVar5;\n  }\n  puVar12 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  iVar4 = puVar8[2];\n  if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {\n    uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);\n  }\n  else {\n    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);\n  }\n  puVar3 = (undefined4 *)(uVar13 >> 0x20);\n  if (puVar3 == (undefined4 *)0x0) {\n    return uVar13;\n  }\n  iVar4 = puVar3[4];\n  if (iVar4 < 1) {\n    if (iVar4 != 0) {\n      return CONCAT44(puVar3,iVar4);\n    }\n    if (puVar3[5] == 0) {\n      return 0;\n    }\n  }\n  iVar4 = *(int *)(puVar12 + 0x112a94);\n  if (*(char *)(puVar3 + 6) != '\0') {\n    puVar8[5] = 1;\n    uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);\n    return uVar13;\n  }\n  if (*(char *)((int)puVar3 + 0x19) != '\0') {\n                    /* WARNING: Could not recover jumptable at 0x0007df3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return uVar13;\n  }\n                    /* WARNING: Could not recover jumptable at 0x0007dfcc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar13 = (**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);\n  return uVar13;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 extraout_v1_00;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "ulonglong uVar13;" type_identifier identifier ;) (declaration "int local_b8;" primitive_type identifier ;) (declaration "int local_b4;" primitive_type identifier ;) (declaration "undefined4 local_b0;" type_identifier identifier ;) (declaration "undefined4 local_ac;" type_identifier identifier ;) (declaration "undefined4 local_a8;" type_identifier identifier ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "undefined4 local_9c;" type_identifier identifier ;) (declaration "undefined4 local_98;" type_identifier identifier ;) (declaration "undefined4 local_94;" type_identifier identifier ;) (declaration "undefined4 local_90;" type_identifier identifier ;) (declaration "undefined4 local_8c;" type_identifier identifier ;) (declaration "int local_88 [8];" primitive_type (array_declarator "local_88 [8]" identifier [ number_literal ]) ;) (declaration "double local_68;" primitive_type identifier ;) (declaration "undefined1 local_60;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "double local_38;" primitive_type identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined1 local_2c;" type_identifier identifier ;) (declaration "undefined1 local_2a;" type_identifier identifier ;) (declaration "undefined4 *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (expression_statement "puVar12 = PTR___stack_chk_guard_00190e24;" (assignment_expression "puVar12 = PTR___stack_chk_guard_00190e24" identifier = identifier) ;) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "local_ac = 0;" (assignment_expression "local_ac = 0" identifier = number_literal) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" identifier = number_literal) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "local_24 = *(undefined4 **)PTR___stack_chk_guard_00190e24;" (assignment_expression "local_24 = *(undefined4 **)PTR___stack_chk_guard_00190e24" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_00190e24" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_00190e24" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "piVar2 = local_88;" (assignment_expression "piVar2 = local_88" identifier = identifier) ;) (expression_statement "piVar6 = param_1;" (assignment_expression "piVar6 = param_1" identifier = identifier) ;) (do_statement "do {\n    piVar7 = piVar6 + 4;\n    iVar10 = piVar6[1];\n    iVar9 = piVar6[2];\n    iVar4 = piVar6[3];\n    *piVar2 = *piVar6;\n    piVar2[1] = iVar10;\n    piVar2[2] = iVar9;\n    piVar2[3] = iVar4;\n    piVar2 = piVar2 + 4;\n    piVar6 = piVar7;\n  } while (piVar7 != param_1 + 0xc);" do (compound_statement "{\n    piVar7 = piVar6 + 4;\n    iVar10 = piVar6[1];\n    iVar9 = piVar6[2];\n    iVar4 = piVar6[3];\n    *piVar2 = *piVar6;\n    piVar2[1] = iVar10;\n    piVar2[2] = iVar9;\n    piVar2[3] = iVar4;\n    piVar2 = piVar2 + 4;\n    piVar6 = piVar7;\n  }" { (expression_statement "piVar7 = piVar6 + 4;" (assignment_expression "piVar7 = piVar6 + 4" identifier = (binary_expression "piVar6 + 4" identifier + number_literal)) ;) (expression_statement "iVar10 = piVar6[1];" (assignment_expression "iVar10 = piVar6[1]" identifier = (subscript_expression "piVar6[1]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = piVar6[2];" (assignment_expression "iVar9 = piVar6[2]" identifier = (subscript_expression "piVar6[2]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = piVar6[3];" (assignment_expression "iVar4 = piVar6[3]" identifier = (subscript_expression "piVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar2 = *piVar6;" (assignment_expression "*piVar2 = *piVar6" (pointer_expression "*piVar2" * identifier) = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar2[1] = iVar10;" (assignment_expression "piVar2[1] = iVar10" (subscript_expression "piVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[2] = iVar9;" (assignment_expression "piVar2[2] = iVar9" (subscript_expression "piVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[3] = iVar4;" (assignment_expression "piVar2[3] = iVar4" (subscript_expression "piVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) (expression_statement "piVar6 = piVar7;" (assignment_expression "piVar6 = piVar7" identifier = identifier) ;) }) while (parenthesized_expression "(piVar7 != param_1 + 0xc)" ( (binary_expression "piVar7 != param_1 + 0xc" identifier != (binary_expression "param_1 + 0xc" identifier + number_literal)) )) ;) (expression_statement "(*(code *)(PTR_LAB_00190ba8 + -0x35ac))(local_88);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + -0x35ac))(local_88)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + -0x35ac))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + -0x35ac)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + -0x35ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + -0x35ac)" ( (binary_expression "PTR_LAB_00190ba8 + -0x35ac" identifier + number_literal) )))) )) (argument_list "(local_88)" ( identifier ))) ;) (if_statement "if (local_88[2] - 0x7b3U < 0x43) {\n    local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }\n  else {\n    local_88[5] = 0;\n    local_88[6] = 0;\n    local_88[3] = 1;\n    local_88[2] = 2000;\n    local_88[4] = 1;\n    local_68 = 0.0;\n  }" if (parenthesized_expression "(local_88[2] - 0x7b3U < 0x43)" ( (binary_expression "local_88[2] - 0x7b3U < 0x43" (binary_expression "local_88[2] - 0x7b3U" (subscript_expression "local_88[2]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n    local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }" { (expression_statement "local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));" (assignment_expression "local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8))" identifier = (cast_expression "(double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8))" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8))" ( (binary_expression "local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8)" identifier + (pointer_expression "*(double *)(PTR_DAT_00190b94 + -0x3ab8)" * (cast_expression "(double *)(PTR_DAT_00190b94 + -0x3ab8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00190b94 + -0x3ab8)" ( (binary_expression "PTR_DAT_00190b94 + -0x3ab8" identifier + number_literal) ))))) ))))) ;) }) (else_clause "else {\n    local_88[5] = 0;\n    local_88[6] = 0;\n    local_88[3] = 1;\n    local_88[2] = 2000;\n    local_88[4] = 1;\n    local_68 = 0.0;\n  }" else (compound_statement "{\n    local_88[5] = 0;\n    local_88[6] = 0;\n    local_88[3] = 1;\n    local_88[2] = 2000;\n    local_88[4] = 1;\n    local_68 = 0.0;\n  }" { (expression_statement "local_88[5] = 0;" (assignment_expression "local_88[5] = 0" (subscript_expression "local_88[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_88[6] = 0;" (assignment_expression "local_88[6] = 0" (subscript_expression "local_88[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_88[3] = 1;" (assignment_expression "local_88[3] = 1" (subscript_expression "local_88[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_88[2] = 2000;" (assignment_expression "local_88[2] = 2000" (subscript_expression "local_88[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_88[4] = 1;" (assignment_expression "local_88[4] = 1" (subscript_expression "local_88[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_68 = 0.0;" (assignment_expression "local_68 = 0.0" identifier = number_literal) ;) }))) (expression_statement "local_88[7] = 0;" (assignment_expression "local_88[7] = 0" (subscript_expression "local_88[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pcVar11 = (code *)(PTR_LAB_00190ba8 + -0x3bac);" (assignment_expression "pcVar11 = (code *)(PTR_LAB_00190ba8 + -0x3bac)" identifier = (cast_expression "(code *)(PTR_LAB_00190ba8 + -0x3bac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + -0x3bac)" ( (binary_expression "PTR_LAB_00190ba8 + -0x3bac" identifier + number_literal) )))) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "(*pcVar11)(local_88);" (call_expression "(*pcVar11)(local_88)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(local_88)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_FUN_00190aa0)(local_88[0],local_88[1],0,1000);" (call_expression "(*(code *)PTR_FUN_00190aa0)(local_88[0],local_88[1],0,1000)" (parenthesized_expression "(*(code *)PTR_FUN_00190aa0)" ( (pointer_expression "*(code *)PTR_FUN_00190aa0" * (cast_expression "(code *)PTR_FUN_00190aa0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_88[0],local_88[1],0,1000)" ( (subscript_expression "local_88[0]" identifier [ number_literal ]) , (subscript_expression "local_88[1]" identifier [ number_literal ]) , number_literal , number_literal ))) ;) (expression_statement "local_b8 = extraout_v1 + -0x18a36940;" (assignment_expression "local_b8 = extraout_v1 + -0x18a36940" identifier = (binary_expression "extraout_v1 + -0x18a36940" identifier + number_literal)) ;) (if_statement "if ((*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)) {\n    local_2c = 0;\n    local_4c = local_a4 + 1;\n    local_2a = 0;\n    local_50 = local_a0 + 0x76c;\n    local_38 = (double)local_b4;\n    local_48 = local_a8;\n    local_44 = local_ac;\n    local_40 = local_b0;\n    local_30 = 0x101;\n    (*pcVar11)(&local_58);\n    uVar5 = local_54 - local_88[1];\n    *param_4 = 0;\n  }\n  else {\n    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n    *param_3 = 1;\n    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);\n    uVar5 = 0;\n    *param_4 = 1;\n  }" if (parenthesized_expression "((*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0))" ( (binary_expression "(*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)" (parenthesized_expression "(*(int *)(PTR_DAT_00190948 + -0xa64) == 0)" ( (binary_expression "*(int *)(PTR_DAT_00190948 + -0xa64) == 0" (pointer_expression "*(int *)(PTR_DAT_00190948 + -0xa64)" * (cast_expression "(int *)(PTR_DAT_00190948 + -0xa64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00190948 + -0xa64)" ( (binary_expression "PTR_DAT_00190948 + -0xa64" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)" ( (comma_expression "iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0" (assignment_expression "iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4)" identifier = (call_expression "(*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4)" (parenthesized_expression "(*(code *)PTR_localtime_r_00190dd8)" ( (pointer_expression "*(code *)PTR_localtime_r_00190dd8" * (cast_expression "(code *)PTR_localtime_r_00190dd8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_b8,&local_b4)" ( (pointer_expression "&local_b8" & identifier) , (pointer_expression "&local_b4" & identifier) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    local_2c = 0;\n    local_4c = local_a4 + 1;\n    local_2a = 0;\n    local_50 = local_a0 + 0x76c;\n    local_38 = (double)local_b4;\n    local_48 = local_a8;\n    local_44 = local_ac;\n    local_40 = local_b0;\n    local_30 = 0x101;\n    (*pcVar11)(&local_58);\n    uVar5 = local_54 - local_88[1];\n    *param_4 = 0;\n  }" { (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_4c = local_a4 + 1;" (assignment_expression "local_4c = local_a4 + 1" identifier = (binary_expression "local_a4 + 1" identifier + number_literal)) ;) (expression_statement "local_2a = 0;" (assignment_expression "local_2a = 0" identifier = number_literal) ;) (expression_statement "local_50 = local_a0 + 0x76c;" (assignment_expression "local_50 = local_a0 + 0x76c" identifier = (binary_expression "local_a0 + 0x76c" identifier + number_literal)) ;) (expression_statement "local_38 = (double)local_b4;" (assignment_expression "local_38 = (double)local_b4" identifier = (cast_expression "(double)local_b4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_48 = local_a8;" (assignment_expression "local_48 = local_a8" identifier = identifier) ;) (expression_statement "local_44 = local_ac;" (assignment_expression "local_44 = local_ac" identifier = identifier) ;) (expression_statement "local_40 = local_b0;" (assignment_expression "local_40 = local_b0" identifier = identifier) ;) (expression_statement "local_30 = 0x101;" (assignment_expression "local_30 = 0x101" identifier = number_literal) ;) (expression_statement "(*pcVar11)(&local_58);" (call_expression "(*pcVar11)(&local_58)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(&local_58)" ( (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "uVar5 = local_54 - local_88[1];" (assignment_expression "uVar5 = local_54 - local_88[1]" identifier = (binary_expression "local_54 - local_88[1]" identifier - (subscript_expression "local_88[1]" identifier [ number_literal ]))) ;) (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" * identifier) = number_literal) ;) }) (else_clause "else {\n    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n    *param_3 = 1;\n    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);\n    uVar5 = 0;\n    *param_4 = 1;\n  }" else (compound_statement "{\n    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n    *param_3 = 1;\n    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);\n    uVar5 = 0;\n    *param_4 = 1;\n  }" { (expression_statement "puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;" (assignment_expression "puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c" identifier = identifier) ;) (expression_statement "*param_3 = 1;" (assignment_expression "*param_3 = 1" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);" (call_expression "FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff)" identifier (argument_list "(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff)" ( (pointer_expression "*param_2" * identifier) , (binary_expression "puVar1 + -0x61c8" identifier + number_literal) , number_literal , number_literal , number_literal ))) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "*param_4 = 1;" (assignment_expression "*param_4 = 1" (pointer_expression "*param_4" * identifier) = number_literal) ;) }))) (expression_statement "puVar8 = *(undefined4 **)puVar12;" (assignment_expression "puVar8 = *(undefined4 **)puVar12" identifier = (pointer_expression "*(undefined4 **)puVar12" * (cast_expression "(undefined4 **)puVar12" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (local_24 == puVar8) {\n    return (ulonglong)uVar5;\n  }" if (parenthesized_expression "(local_24 == puVar8)" ( (binary_expression "local_24 == puVar8" identifier == identifier) )) (compound_statement "{\n    return (ulonglong)uVar5;\n  }" { (return_statement "return (ulonglong)uVar5;" return (cast_expression "(ulonglong)uVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier) ;) })) (expression_statement "puVar12 = PTR___stack_chk_fail_00190df8;" (assignment_expression "puVar12 = PTR___stack_chk_fail_00190df8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00190df8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00190df8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00190df8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00190df8" * (cast_expression "(code *)PTR___stack_chk_fail_00190df8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = puVar8[2];" (assignment_expression "iVar4 = puVar8[2]" identifier = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (if_statement "if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {\n    uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);\n  }\n  else {\n    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);\n  }" if (parenthesized_expression "((*(ushort *)(iVar4 + 8) & 0x2000) == 0)" ( (binary_expression "(*(ushort *)(iVar4 + 8) & 0x2000) == 0" (parenthesized_expression "(*(ushort *)(iVar4 + 8) & 0x2000)" ( (binary_expression "*(ushort *)(iVar4 + 8) & 0x2000" (pointer_expression "*(ushort *)(iVar4 + 8)" * (cast_expression "(ushort *)(iVar4 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);\n  }" { (expression_statement "uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);" (assignment_expression "uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0)" identifier = (call_expression "FUN_0007be98(puVar8 + 1,iVar4,0)" identifier (argument_list "(puVar8 + 1,iVar4,0)" ( (binary_expression "puVar8 + 1" identifier + number_literal) , identifier , number_literal )))) ;) }) (else_clause "else {\n    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);\n  }" else (compound_statement "{\n    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);\n  }" { (expression_statement "uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);" (assignment_expression "uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00)" identifier = (call_expression "CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00)" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) , identifier )))) ;) }))) (expression_statement "puVar3 = (undefined4 *)(uVar13 >> 0x20);" (assignment_expression "puVar3 = (undefined4 *)(uVar13 >> 0x20)" identifier = (cast_expression "(undefined4 *)(uVar13 >> 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar13 >> 0x20)" ( (binary_expression "uVar13 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (puVar3 == (undefined4 *)0x0) {\n    return uVar13;\n  }" if (parenthesized_expression "(puVar3 == (undefined4 *)0x0)" ( (binary_expression "puVar3 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return uVar13;\n  }" { (return_statement "return uVar13;" return identifier ;) })) (expression_statement "iVar4 = puVar3[4];" (assignment_expression "iVar4 = puVar3[4]" identifier = (subscript_expression "puVar3[4]" identifier [ number_literal ])) ;) (if_statement "if (iVar4 < 1) {\n    if (iVar4 != 0) {\n      return CONCAT44(puVar3,iVar4);\n    }\n    if (puVar3[5] == 0) {\n      return 0;\n    }\n  }" if (parenthesized_expression "(iVar4 < 1)" ( (binary_expression "iVar4 < 1" identifier < number_literal) )) (compound_statement "{\n    if (iVar4 != 0) {\n      return CONCAT44(puVar3,iVar4);\n    }\n    if (puVar3[5] == 0) {\n      return 0;\n    }\n  }" { (if_statement "if (iVar4 != 0) {\n      return CONCAT44(puVar3,iVar4);\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      return CONCAT44(puVar3,iVar4);\n    }" { (return_statement "return CONCAT44(puVar3,iVar4);" return (call_expression "CONCAT44(puVar3,iVar4)" identifier (argument_list "(puVar3,iVar4)" ( identifier , identifier ))) ;) })) (if_statement "if (puVar3[5] == 0) {\n      return 0;\n    }" if (parenthesized_expression "(puVar3[5] == 0)" ( (binary_expression "puVar3[5] == 0" (subscript_expression "puVar3[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "iVar4 = *(int *)(puVar12 + 0x112a94);" (assignment_expression "iVar4 = *(int *)(puVar12 + 0x112a94)" identifier = (pointer_expression "*(int *)(puVar12 + 0x112a94)" * (cast_expression "(int *)(puVar12 + 0x112a94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x112a94)" ( (binary_expression "puVar12 + 0x112a94" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(puVar3 + 6) != '\0') {\n    puVar8[5] = 1;\n    uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);\n    return uVar13;\n  }" if (parenthesized_expression "(*(char *)(puVar3 + 6) != '\0')" ( (binary_expression "*(char *)(puVar3 + 6) != '\0'" (pointer_expression "*(char *)(puVar3 + 6)" * (cast_expression "(char *)(puVar3 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 6)" ( (binary_expression "puVar3 + 6" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar8[5] = 1;\n    uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);\n    return uVar13;\n  }" { (expression_statement "puVar8[5] = 1;" (assignment_expression "puVar8[5] = 1" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);" (assignment_expression "uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff)" identifier = (call_expression "FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff)" identifier (argument_list "(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff)" ( (pointer_expression "*puVar8" * identifier) , (binary_expression "iVar4 + -0x61b0" identifier + number_literal) , number_literal , number_literal , number_literal )))) ;) (return_statement "return uVar13;" return identifier ;) })) (if_statement "if (*(char *)((int)puVar3 + 0x19) != '\0') {\n                    /* WARNING: Could not recover jumptable at 0x0007df3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return uVar13;\n  }" if (parenthesized_expression "(*(char *)((int)puVar3 + 0x19) != '\0')" ( (binary_expression "*(char *)((int)puVar3 + 0x19) != '\0'" (pointer_expression "*(char *)((int)puVar3 + 0x19)" * (cast_expression "(char *)((int)puVar3 + 0x19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + 0x19)" ( (binary_expression "(int)puVar3 + 0x19" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0007df3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return uVar13;\n  }" { comment comment (expression_statement "uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);" (assignment_expression "uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1])" identifier = (call_expression "(**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1])" (parenthesized_expression "(**(code **)(puVar12 + 0x112b74))" ( (pointer_expression "**(code **)(puVar12 + 0x112b74)" * (pointer_expression "*(code **)(puVar12 + 0x112b74)" * (cast_expression "(code **)(puVar12 + 0x112b74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x112b74)" ( (binary_expression "puVar12 + 0x112b74" identifier + number_literal) ))))) )) (argument_list "(puVar8,iVar4,*puVar3,puVar3[1])" ( identifier , identifier , (pointer_expression "*puVar3" * identifier) , (subscript_expression "puVar3[1]" identifier [ number_literal ]) )))) ;) (return_statement "return uVar13;" return identifier ;) })) comment comment (expression_statement "uVar13 = (**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);" (assignment_expression "uVar13 = (**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3])" identifier = (call_expression "(**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3])" (parenthesized_expression "(**(code **)(puVar12 + 0x112afc))" ( (pointer_expression "**(code **)(puVar12 + 0x112afc)" * (pointer_expression "*(code **)(puVar12 + 0x112afc)" * (cast_expression "(code **)(puVar12 + 0x112afc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x112afc)" ( (binary_expression "puVar12 + 0x112afc" identifier + number_literal) ))))) )) (argument_list "(puVar8,iVar4,puVar3[2],puVar3[3])" ( identifier , identifier , (subscript_expression "puVar3[2]" identifier [ number_literal ]) , (subscript_expression "puVar3[3]" identifier [ number_literal ]) )))) ;) (return_statement "return uVar13;" return identifier ;) })))
(translation_unit "/* DWARF original prototype: sqlite3_int64 localtimeOffset(DateTime * p, sqlite3_context * pCtx, int\n   * pRc, sqlite3_context * pCtx) */\n\nsqlite3_int64 localtimeOffset(DateTime *p,sqlite3_context *pCtx,int *pRc,sqlite3_context *pCtx_1)\n\n{\n  undefined *puVar1;\n  DateTime *pDVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int extraout_v1;\n  uint extraout_v1_00;\n  uint uVar5;\n  DateTime *pDVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  code *pcVar10;\n  undefined *puVar11;\n  sqlite3_int64 sVar12;\n  time_t t;\n  tm sLocal;\n  DateTime x;\n  DateTime y;\n  \n  puVar11 = PTR___stack_chk_guard_00190e24;\n  sLocal.tm_sec = 0;\n  sLocal.tm_min = 0;\n  sLocal.tm_hour = 0;\n  sLocal.tm_mday = 0;\n  sLocal.tm_mon = 0;\n  sLocal.tm_year = 0;\n  sLocal.tm_wday = 0;\n  sLocal.tm_yday = 0;\n  sLocal.tm_isdst = 0;\n  sLocal.tm_gmtoff = 0;\n  sLocal.tm_zone = (char *)0x0;\n  puVar3 = *(undefined4 **)PTR___stack_chk_guard_00190e24;\n  pDVar2 = &x;\n  pDVar6 = p;\n  do {\n    piVar7 = &pDVar6->D;\n    sVar12 = pDVar6->iJD;\n    iVar9 = pDVar6->Y;\n    iVar4 = pDVar6->M;\n    *(undefined4 *)&pDVar2->iJD = *(undefined4 *)&pDVar6->iJD;\n    *(int *)((int)&pDVar2->iJD + 4) = (int)sVar12;\n    pDVar2->Y = iVar9;\n    pDVar2->M = iVar4;\n    pDVar2 = (DateTime *)&pDVar2->D;\n    pDVar6 = (DateTime *)piVar7;\n  } while ((DateTime *)piVar7 != p + 1);\n  (*(code *)(PTR_LAB_00190ba8 + -0x35ac))(&x);\n  if (x.Y - 0x7b3U < 0x43) {\n    x.s = (double)(int)(x.s + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }\n  else {\n    x.h = 0;\n    x.m = 0;\n    x.M = 1;\n    x.Y = 2000;\n    x.D = 1;\n    x.s = 0.0;\n  }\n  x.tz = 0;\n  pcVar10 = (code *)(PTR_LAB_00190ba8 + -0x3bac);\n  x.validJD = '\0';\n  (*pcVar10)(&x);\n  (*(code *)PTR___divdi3_00190aa0)(x.iJD._0_4_,x.iJD._4_4_,0,1000);\n  t = extraout_v1 + -0x18a36940;\n  if ((*(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&t,&sLocal), iVar4 != 0)) {\n    y.validTZ = '\0';\n    y.M = sLocal.tm_mon + 1;\n    y.isError = '\0';\n    y.Y = sLocal.tm_year + 0x76c;\n    y.s = (double)sLocal.tm_sec;\n    y.D = sLocal.tm_mday;\n    y.h = sLocal.tm_hour;\n    y.m = sLocal.tm_min;\n    y.validJD = '\0';\n    y.rawS = '\0';\n    y.validYMD = '\x01';\n    y.validHMS = '\x01';\n    (*pcVar10)(&y);\n    pCtx_1->pOut = (Mem *)0x0;\n    sVar12 = FUN_0007ddd4(y.iJD._4_4_ < y.iJD._4_4_ - x.iJD._4_4_,x.iJD._0_4_);\n    return sVar12;\n  }\n  puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n  *pRc = 1;\n  sqlite3VdbeMemSetStr(pCtx->pOut,puVar1 + -0x61c8,-1,'\x01',(_func_void_void_ptr *)0xffffffff);\n  pCtx_1->pOut = (Mem *)0x1;\n  puVar8 = *(undefined4 **)puVar11;\n  if (puVar3 == puVar8) {\n    return 0;\n  }\n  puVar11 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  iVar4 = puVar8[2];\n  uVar5 = extraout_v1_00;\n  if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {\n    puVar3 = (undefined4 *)\n             createAggContext((sqlite3_context *)(puVar8 + 1),iVar4,(sqlite3_context *)0x0);\n  }\n  else {\n    puVar3 = *(undefined4 **)(iVar4 + 0x10);\n  }\n  if (puVar3 == (undefined4 *)0x0) goto LAB_0007df78;\n  uVar5 = puVar3[4];\n  if ((int)uVar5 < 1) {\n    if (uVar5 != 0) goto LAB_0007df78;\n    if (puVar3[5] == 0) {\n      uVar5 = 0;\n      goto LAB_0007df78;\n    }\n  }\n  uVar5 = (uint)*(byte *)(puVar3 + 6);\n  iVar4 = *(int *)(puVar11 + 0x112a94);\n  if (uVar5 == 0) {\n    if (*(char *)((int)puVar3 + 0x19) == '\0') {\n                    /* WARNING: Could not recover jumptable at 0x0007dfcc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      sVar12 = (**(code **)(puVar11 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);\n      return sVar12;\n    }\n                    /* WARNING: Could not recover jumptable at 0x0007df3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    sVar12 = (**(code **)(puVar11 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return sVar12;\n  }\n  puVar8[5] = 1;\n  puVar3 = (undefined4 *)\n           sqlite3VdbeMemSetStr\n                     ((Mem *)*puVar8,(char *)(iVar4 + -0x61b0),-1,'\x01',\n                      (_func_void_void_ptr *)0xffffffff);\nLAB_0007df78:\n  return CONCAT44(puVar3,uVar5);\n}\n\n" comment (function_definition "sqlite3_int64 localtimeOffset(DateTime *p,sqlite3_context *pCtx,int *pRc,sqlite3_context *pCtx_1)\n\n{\n  undefined *puVar1;\n  DateTime *pDVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int extraout_v1;\n  uint extraout_v1_00;\n  uint uVar5;\n  DateTime *pDVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  code *pcVar10;\n  undefined *puVar11;\n  sqlite3_int64 sVar12;\n  time_t t;\n  tm sLocal;\n  DateTime x;\n  DateTime y;\n  \n  puVar11 = PTR___stack_chk_guard_00190e24;\n  sLocal.tm_sec = 0;\n  sLocal.tm_min = 0;\n  sLocal.tm_hour = 0;\n  sLocal.tm_mday = 0;\n  sLocal.tm_mon = 0;\n  sLocal.tm_year = 0;\n  sLocal.tm_wday = 0;\n  sLocal.tm_yday = 0;\n  sLocal.tm_isdst = 0;\n  sLocal.tm_gmtoff = 0;\n  sLocal.tm_zone = (char *)0x0;\n  puVar3 = *(undefined4 **)PTR___stack_chk_guard_00190e24;\n  pDVar2 = &x;\n  pDVar6 = p;\n  do {\n    piVar7 = &pDVar6->D;\n    sVar12 = pDVar6->iJD;\n    iVar9 = pDVar6->Y;\n    iVar4 = pDVar6->M;\n    *(undefined4 *)&pDVar2->iJD = *(undefined4 *)&pDVar6->iJD;\n    *(int *)((int)&pDVar2->iJD + 4) = (int)sVar12;\n    pDVar2->Y = iVar9;\n    pDVar2->M = iVar4;\n    pDVar2 = (DateTime *)&pDVar2->D;\n    pDVar6 = (DateTime *)piVar7;\n  } while ((DateTime *)piVar7 != p + 1);\n  (*(code *)(PTR_LAB_00190ba8 + -0x35ac))(&x);\n  if (x.Y - 0x7b3U < 0x43) {\n    x.s = (double)(int)(x.s + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }\n  else {\n    x.h = 0;\n    x.m = 0;\n    x.M = 1;\n    x.Y = 2000;\n    x.D = 1;\n    x.s = 0.0;\n  }\n  x.tz = 0;\n  pcVar10 = (code *)(PTR_LAB_00190ba8 + -0x3bac);\n  x.validJD = '\0';\n  (*pcVar10)(&x);\n  (*(code *)PTR___divdi3_00190aa0)(x.iJD._0_4_,x.iJD._4_4_,0,1000);\n  t = extraout_v1 + -0x18a36940;\n  if ((*(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&t,&sLocal), iVar4 != 0)) {\n    y.validTZ = '\0';\n    y.M = sLocal.tm_mon + 1;\n    y.isError = '\0';\n    y.Y = sLocal.tm_year + 0x76c;\n    y.s = (double)sLocal.tm_sec;\n    y.D = sLocal.tm_mday;\n    y.h = sLocal.tm_hour;\n    y.m = sLocal.tm_min;\n    y.validJD = '\0';\n    y.rawS = '\0';\n    y.validYMD = '\x01';\n    y.validHMS = '\x01';\n    (*pcVar10)(&y);\n    pCtx_1->pOut = (Mem *)0x0;\n    sVar12 = FUN_0007ddd4(y.iJD._4_4_ < y.iJD._4_4_ - x.iJD._4_4_,x.iJD._0_4_);\n    return sVar12;\n  }\n  puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n  *pRc = 1;\n  sqlite3VdbeMemSetStr(pCtx->pOut,puVar1 + -0x61c8,-1,'\x01',(_func_void_void_ptr *)0xffffffff);\n  pCtx_1->pOut = (Mem *)0x1;\n  puVar8 = *(undefined4 **)puVar11;\n  if (puVar3 == puVar8) {\n    return 0;\n  }\n  puVar11 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  iVar4 = puVar8[2];\n  uVar5 = extraout_v1_00;\n  if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {\n    puVar3 = (undefined4 *)\n             createAggContext((sqlite3_context *)(puVar8 + 1),iVar4,(sqlite3_context *)0x0);\n  }\n  else {\n    puVar3 = *(undefined4 **)(iVar4 + 0x10);\n  }\n  if (puVar3 == (undefined4 *)0x0) goto LAB_0007df78;\n  uVar5 = puVar3[4];\n  if ((int)uVar5 < 1) {\n    if (uVar5 != 0) goto LAB_0007df78;\n    if (puVar3[5] == 0) {\n      uVar5 = 0;\n      goto LAB_0007df78;\n    }\n  }\n  uVar5 = (uint)*(byte *)(puVar3 + 6);\n  iVar4 = *(int *)(puVar11 + 0x112a94);\n  if (uVar5 == 0) {\n    if (*(char *)((int)puVar3 + 0x19) == '\0') {\n                    /* WARNING: Could not recover jumptable at 0x0007dfcc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      sVar12 = (**(code **)(puVar11 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);\n      return sVar12;\n    }\n                    /* WARNING: Could not recover jumptable at 0x0007df3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    sVar12 = (**(code **)(puVar11 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return sVar12;\n  }\n  puVar8[5] = 1;\n  puVar3 = (undefined4 *)\n           sqlite3VdbeMemSetStr\n                     ((Mem *)*puVar8,(char *)(iVar4 + -0x61b0),-1,'\x01',\n                      (_func_void_void_ptr *)0xffffffff);\nLAB_0007df78:\n  return CONCAT44(puVar3,uVar5);\n}" type_identifier (function_declarator "localtimeOffset(DateTime *p,sqlite3_context *pCtx,int *pRc,sqlite3_context *pCtx_1)" identifier (parameter_list "(DateTime *p,sqlite3_context *pCtx,int *pRc,sqlite3_context *pCtx_1)" ( (parameter_declaration "DateTime *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "sqlite3_context *pCtx" type_identifier (pointer_declarator "*pCtx" * identifier)) , (parameter_declaration "int *pRc" primitive_type (pointer_declarator "*pRc" * identifier)) , (parameter_declaration "sqlite3_context *pCtx_1" type_identifier (pointer_declarator "*pCtx_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  DateTime *pDVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int extraout_v1;\n  uint extraout_v1_00;\n  uint uVar5;\n  DateTime *pDVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  code *pcVar10;\n  undefined *puVar11;\n  sqlite3_int64 sVar12;\n  time_t t;\n  tm sLocal;\n  DateTime x;\n  DateTime y;\n  \n  puVar11 = PTR___stack_chk_guard_00190e24;\n  sLocal.tm_sec = 0;\n  sLocal.tm_min = 0;\n  sLocal.tm_hour = 0;\n  sLocal.tm_mday = 0;\n  sLocal.tm_mon = 0;\n  sLocal.tm_year = 0;\n  sLocal.tm_wday = 0;\n  sLocal.tm_yday = 0;\n  sLocal.tm_isdst = 0;\n  sLocal.tm_gmtoff = 0;\n  sLocal.tm_zone = (char *)0x0;\n  puVar3 = *(undefined4 **)PTR___stack_chk_guard_00190e24;\n  pDVar2 = &x;\n  pDVar6 = p;\n  do {\n    piVar7 = &pDVar6->D;\n    sVar12 = pDVar6->iJD;\n    iVar9 = pDVar6->Y;\n    iVar4 = pDVar6->M;\n    *(undefined4 *)&pDVar2->iJD = *(undefined4 *)&pDVar6->iJD;\n    *(int *)((int)&pDVar2->iJD + 4) = (int)sVar12;\n    pDVar2->Y = iVar9;\n    pDVar2->M = iVar4;\n    pDVar2 = (DateTime *)&pDVar2->D;\n    pDVar6 = (DateTime *)piVar7;\n  } while ((DateTime *)piVar7 != p + 1);\n  (*(code *)(PTR_LAB_00190ba8 + -0x35ac))(&x);\n  if (x.Y - 0x7b3U < 0x43) {\n    x.s = (double)(int)(x.s + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }\n  else {\n    x.h = 0;\n    x.m = 0;\n    x.M = 1;\n    x.Y = 2000;\n    x.D = 1;\n    x.s = 0.0;\n  }\n  x.tz = 0;\n  pcVar10 = (code *)(PTR_LAB_00190ba8 + -0x3bac);\n  x.validJD = '\0';\n  (*pcVar10)(&x);\n  (*(code *)PTR___divdi3_00190aa0)(x.iJD._0_4_,x.iJD._4_4_,0,1000);\n  t = extraout_v1 + -0x18a36940;\n  if ((*(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&t,&sLocal), iVar4 != 0)) {\n    y.validTZ = '\0';\n    y.M = sLocal.tm_mon + 1;\n    y.isError = '\0';\n    y.Y = sLocal.tm_year + 0x76c;\n    y.s = (double)sLocal.tm_sec;\n    y.D = sLocal.tm_mday;\n    y.h = sLocal.tm_hour;\n    y.m = sLocal.tm_min;\n    y.validJD = '\0';\n    y.rawS = '\0';\n    y.validYMD = '\x01';\n    y.validHMS = '\x01';\n    (*pcVar10)(&y);\n    pCtx_1->pOut = (Mem *)0x0;\n    sVar12 = FUN_0007ddd4(y.iJD._4_4_ < y.iJD._4_4_ - x.iJD._4_4_,x.iJD._0_4_);\n    return sVar12;\n  }\n  puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n  *pRc = 1;\n  sqlite3VdbeMemSetStr(pCtx->pOut,puVar1 + -0x61c8,-1,'\x01',(_func_void_void_ptr *)0xffffffff);\n  pCtx_1->pOut = (Mem *)0x1;\n  puVar8 = *(undefined4 **)puVar11;\n  if (puVar3 == puVar8) {\n    return 0;\n  }\n  puVar11 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  iVar4 = puVar8[2];\n  uVar5 = extraout_v1_00;\n  if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {\n    puVar3 = (undefined4 *)\n             createAggContext((sqlite3_context *)(puVar8 + 1),iVar4,(sqlite3_context *)0x0);\n  }\n  else {\n    puVar3 = *(undefined4 **)(iVar4 + 0x10);\n  }\n  if (puVar3 == (undefined4 *)0x0) goto LAB_0007df78;\n  uVar5 = puVar3[4];\n  if ((int)uVar5 < 1) {\n    if (uVar5 != 0) goto LAB_0007df78;\n    if (puVar3[5] == 0) {\n      uVar5 = 0;\n      goto LAB_0007df78;\n    }\n  }\n  uVar5 = (uint)*(byte *)(puVar3 + 6);\n  iVar4 = *(int *)(puVar11 + 0x112a94);\n  if (uVar5 == 0) {\n    if (*(char *)((int)puVar3 + 0x19) == '\0') {\n                    /* WARNING: Could not recover jumptable at 0x0007dfcc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      sVar12 = (**(code **)(puVar11 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);\n      return sVar12;\n    }\n                    /* WARNING: Could not recover jumptable at 0x0007df3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    sVar12 = (**(code **)(puVar11 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return sVar12;\n  }\n  puVar8[5] = 1;\n  puVar3 = (undefined4 *)\n           sqlite3VdbeMemSetStr\n                     ((Mem *)*puVar8,(char *)(iVar4 + -0x61b0),-1,'\x01',\n                      (_func_void_void_ptr *)0xffffffff);\nLAB_0007df78:\n  return CONCAT44(puVar3,uVar5);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "DateTime *pDVar2;" type_identifier (pointer_declarator "*pDVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "uint extraout_v1_00;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "DateTime *pDVar6;" type_identifier (pointer_declarator "*pDVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "sqlite3_int64 sVar12;" type_identifier identifier ;) (declaration "time_t t;" type_identifier identifier ;) (declaration "tm sLocal;" type_identifier identifier ;) (declaration "DateTime x;" type_identifier identifier ;) (declaration "DateTime y;" type_identifier identifier ;) (expression_statement "puVar11 = PTR___stack_chk_guard_00190e24;" (assignment_expression "puVar11 = PTR___stack_chk_guard_00190e24" identifier = identifier) ;) (expression_statement "sLocal.tm_sec = 0;" (assignment_expression "sLocal.tm_sec = 0" (field_expression "sLocal.tm_sec" identifier . field_identifier) = number_literal) ;) (expression_statement "sLocal.tm_min = 0;" (assignment_expression "sLocal.tm_min = 0" (field_expression "sLocal.tm_min" identifier . field_identifier) = number_literal) ;) (expression_statement "sLocal.tm_hour = 0;" (assignment_expression "sLocal.tm_hour = 0" (field_expression "sLocal.tm_hour" identifier . field_identifier) = number_literal) ;) (expression_statement "sLocal.tm_mday = 0;" (assignment_expression "sLocal.tm_mday = 0" (field_expression "sLocal.tm_mday" identifier . field_identifier) = number_literal) ;) (expression_statement "sLocal.tm_mon = 0;" (assignment_expression "sLocal.tm_mon = 0" (field_expression "sLocal.tm_mon" identifier . field_identifier) = number_literal) ;) (expression_statement "sLocal.tm_year = 0;" (assignment_expression "sLocal.tm_year = 0" (field_expression "sLocal.tm_year" identifier . field_identifier) = number_literal) ;) (expression_statement "sLocal.tm_wday = 0;" (assignment_expression "sLocal.tm_wday = 0" (field_expression "sLocal.tm_wday" identifier . field_identifier) = number_literal) ;) (expression_statement "sLocal.tm_yday = 0;" (assignment_expression "sLocal.tm_yday = 0" (field_expression "sLocal.tm_yday" identifier . field_identifier) = number_literal) ;) (expression_statement "sLocal.tm_isdst = 0;" (assignment_expression "sLocal.tm_isdst = 0" (field_expression "sLocal.tm_isdst" identifier . field_identifier) = number_literal) ;) (expression_statement "sLocal.tm_gmtoff = 0;" (assignment_expression "sLocal.tm_gmtoff = 0" (field_expression "sLocal.tm_gmtoff" identifier . field_identifier) = number_literal) ;) (expression_statement "sLocal.tm_zone = (char *)0x0;" (assignment_expression "sLocal.tm_zone = (char *)0x0" (field_expression "sLocal.tm_zone" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar3 = *(undefined4 **)PTR___stack_chk_guard_00190e24;" (assignment_expression "puVar3 = *(undefined4 **)PTR___stack_chk_guard_00190e24" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_00190e24" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_00190e24" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pDVar2 = &x;" (assignment_expression "pDVar2 = &x" identifier = (pointer_expression "&x" & identifier)) ;) (expression_statement "pDVar6 = p;" (assignment_expression "pDVar6 = p" identifier = identifier) ;) (do_statement "do {\n    piVar7 = &pDVar6->D;\n    sVar12 = pDVar6->iJD;\n    iVar9 = pDVar6->Y;\n    iVar4 = pDVar6->M;\n    *(undefined4 *)&pDVar2->iJD = *(undefined4 *)&pDVar6->iJD;\n    *(int *)((int)&pDVar2->iJD + 4) = (int)sVar12;\n    pDVar2->Y = iVar9;\n    pDVar2->M = iVar4;\n    pDVar2 = (DateTime *)&pDVar2->D;\n    pDVar6 = (DateTime *)piVar7;\n  } while ((DateTime *)piVar7 != p + 1);" do (compound_statement "{\n    piVar7 = &pDVar6->D;\n    sVar12 = pDVar6->iJD;\n    iVar9 = pDVar6->Y;\n    iVar4 = pDVar6->M;\n    *(undefined4 *)&pDVar2->iJD = *(undefined4 *)&pDVar6->iJD;\n    *(int *)((int)&pDVar2->iJD + 4) = (int)sVar12;\n    pDVar2->Y = iVar9;\n    pDVar2->M = iVar4;\n    pDVar2 = (DateTime *)&pDVar2->D;\n    pDVar6 = (DateTime *)piVar7;\n  }" { (expression_statement "piVar7 = &pDVar6->D;" (assignment_expression "piVar7 = &pDVar6->D" identifier = (pointer_expression "&pDVar6->D" & (field_expression "pDVar6->D" identifier -> field_identifier))) ;) (expression_statement "sVar12 = pDVar6->iJD;" (assignment_expression "sVar12 = pDVar6->iJD" identifier = (field_expression "pDVar6->iJD" identifier -> field_identifier)) ;) (expression_statement "iVar9 = pDVar6->Y;" (assignment_expression "iVar9 = pDVar6->Y" identifier = (field_expression "pDVar6->Y" identifier -> field_identifier)) ;) (expression_statement "iVar4 = pDVar6->M;" (assignment_expression "iVar4 = pDVar6->M" identifier = (field_expression "pDVar6->M" identifier -> field_identifier)) ;) (expression_statement "*(undefined4 *)&pDVar2->iJD = *(undefined4 *)&pDVar6->iJD;" (assignment_expression "*(undefined4 *)&pDVar2->iJD = *(undefined4 *)&pDVar6->iJD" (pointer_expression "*(undefined4 *)&pDVar2->iJD" * (cast_expression "(undefined4 *)&pDVar2->iJD" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pDVar2->iJD" & (field_expression "pDVar2->iJD" identifier -> field_identifier)))) = (pointer_expression "*(undefined4 *)&pDVar6->iJD" * (cast_expression "(undefined4 *)&pDVar6->iJD" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pDVar6->iJD" & (field_expression "pDVar6->iJD" identifier -> field_identifier))))) ;) (expression_statement "*(int *)((int)&pDVar2->iJD + 4) = (int)sVar12;" (assignment_expression "*(int *)((int)&pDVar2->iJD + 4) = (int)sVar12" (pointer_expression "*(int *)((int)&pDVar2->iJD + 4)" * (cast_expression "(int *)((int)&pDVar2->iJD + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pDVar2->iJD + 4)" ( (binary_expression "(int)&pDVar2->iJD + 4" (cast_expression "(int)&pDVar2->iJD" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pDVar2->iJD" & (field_expression "pDVar2->iJD" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)sVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pDVar2->Y = iVar9;" (assignment_expression "pDVar2->Y = iVar9" (field_expression "pDVar2->Y" identifier -> field_identifier) = identifier) ;) (expression_statement "pDVar2->M = iVar4;" (assignment_expression "pDVar2->M = iVar4" (field_expression "pDVar2->M" identifier -> field_identifier) = identifier) ;) (expression_statement "pDVar2 = (DateTime *)&pDVar2->D;" (assignment_expression "pDVar2 = (DateTime *)&pDVar2->D" identifier = (cast_expression "(DateTime *)&pDVar2->D" ( (type_descriptor "DateTime *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pDVar2->D" & (field_expression "pDVar2->D" identifier -> field_identifier)))) ;) (expression_statement "pDVar6 = (DateTime *)piVar7;" (assignment_expression "pDVar6 = (DateTime *)piVar7" identifier = (cast_expression "(DateTime *)piVar7" ( (type_descriptor "DateTime *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "((DateTime *)piVar7 != p + 1)" ( (binary_expression "(DateTime *)piVar7 != p + 1" (cast_expression "(DateTime *)piVar7" ( (type_descriptor "DateTime *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (binary_expression "p + 1" identifier + number_literal)) )) ;) (expression_statement "(*(code *)(PTR_LAB_00190ba8 + -0x35ac))(&x);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + -0x35ac))(&x)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + -0x35ac))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + -0x35ac)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + -0x35ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + -0x35ac)" ( (binary_expression "PTR_LAB_00190ba8 + -0x35ac" identifier + number_literal) )))) )) (argument_list "(&x)" ( (pointer_expression "&x" & identifier) ))) ;) (if_statement "if (x.Y - 0x7b3U < 0x43) {\n    x.s = (double)(int)(x.s + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }\n  else {\n    x.h = 0;\n    x.m = 0;\n    x.M = 1;\n    x.Y = 2000;\n    x.D = 1;\n    x.s = 0.0;\n  }" if (parenthesized_expression "(x.Y - 0x7b3U < 0x43)" ( (binary_expression "x.Y - 0x7b3U < 0x43" (binary_expression "x.Y - 0x7b3U" (field_expression "x.Y" identifier . field_identifier) - number_literal) < number_literal) )) (compound_statement "{\n    x.s = (double)(int)(x.s + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }" { (expression_statement "x.s = (double)(int)(x.s + *(double *)(PTR_DAT_00190b94 + -0x3ab8));" (assignment_expression "x.s = (double)(int)(x.s + *(double *)(PTR_DAT_00190b94 + -0x3ab8))" (field_expression "x.s" identifier . field_identifier) = (cast_expression "(double)(int)(x.s + *(double *)(PTR_DAT_00190b94 + -0x3ab8))" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)(x.s + *(double *)(PTR_DAT_00190b94 + -0x3ab8))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(x.s + *(double *)(PTR_DAT_00190b94 + -0x3ab8))" ( (binary_expression "x.s + *(double *)(PTR_DAT_00190b94 + -0x3ab8)" (field_expression "x.s" identifier . field_identifier) + (pointer_expression "*(double *)(PTR_DAT_00190b94 + -0x3ab8)" * (cast_expression "(double *)(PTR_DAT_00190b94 + -0x3ab8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00190b94 + -0x3ab8)" ( (binary_expression "PTR_DAT_00190b94 + -0x3ab8" identifier + number_literal) ))))) ))))) ;) }) (else_clause "else {\n    x.h = 0;\n    x.m = 0;\n    x.M = 1;\n    x.Y = 2000;\n    x.D = 1;\n    x.s = 0.0;\n  }" else (compound_statement "{\n    x.h = 0;\n    x.m = 0;\n    x.M = 1;\n    x.Y = 2000;\n    x.D = 1;\n    x.s = 0.0;\n  }" { (expression_statement "x.h = 0;" (assignment_expression "x.h = 0" (field_expression "x.h" identifier . field_identifier) = number_literal) ;) (expression_statement "x.m = 0;" (assignment_expression "x.m = 0" (field_expression "x.m" identifier . field_identifier) = number_literal) ;) (expression_statement "x.M = 1;" (assignment_expression "x.M = 1" (field_expression "x.M" identifier . field_identifier) = number_literal) ;) (expression_statement "x.Y = 2000;" (assignment_expression "x.Y = 2000" (field_expression "x.Y" identifier . field_identifier) = number_literal) ;) (expression_statement "x.D = 1;" (assignment_expression "x.D = 1" (field_expression "x.D" identifier . field_identifier) = number_literal) ;) (expression_statement "x.s = 0.0;" (assignment_expression "x.s = 0.0" (field_expression "x.s" identifier . field_identifier) = number_literal) ;) }))) (expression_statement "x.tz = 0;" (assignment_expression "x.tz = 0" (field_expression "x.tz" identifier . field_identifier) = number_literal) ;) (expression_statement "pcVar10 = (code *)(PTR_LAB_00190ba8 + -0x3bac);" (assignment_expression "pcVar10 = (code *)(PTR_LAB_00190ba8 + -0x3bac)" identifier = (cast_expression "(code *)(PTR_LAB_00190ba8 + -0x3bac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + -0x3bac)" ( (binary_expression "PTR_LAB_00190ba8 + -0x3bac" identifier + number_literal) )))) ;) (expression_statement "x.validJD = '\0';" (assignment_expression "x.validJD = '\0'" (field_expression "x.validJD" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*pcVar10)(&x);" (call_expression "(*pcVar10)(&x)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(&x)" ( (pointer_expression "&x" & identifier) ))) ;) (expression_statement "(*(code *)PTR___divdi3_00190aa0)(x.iJD._0_4_,x.iJD._4_4_,0,1000);" (call_expression "(*(code *)PTR___divdi3_00190aa0)(x.iJD._0_4_,x.iJD._4_4_,0,1000)" (parenthesized_expression "(*(code *)PTR___divdi3_00190aa0)" ( (pointer_expression "*(code *)PTR___divdi3_00190aa0" * (cast_expression "(code *)PTR___divdi3_00190aa0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(x.iJD._0_4_,x.iJD._4_4_,0,1000)" ( (field_expression "x.iJD._0_4_" (field_expression "x.iJD" identifier . field_identifier) . field_identifier) , (field_expression "x.iJD._4_4_" (field_expression "x.iJD" identifier . field_identifier) . field_identifier) , number_literal , number_literal ))) ;) (expression_statement "t = extraout_v1 + -0x18a36940;" (assignment_expression "t = extraout_v1 + -0x18a36940" identifier = (binary_expression "extraout_v1 + -0x18a36940" identifier + number_literal)) ;) (if_statement "if ((*(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&t,&sLocal), iVar4 != 0)) {\n    y.validTZ = '\0';\n    y.M = sLocal.tm_mon + 1;\n    y.isError = '\0';\n    y.Y = sLocal.tm_year + 0x76c;\n    y.s = (double)sLocal.tm_sec;\n    y.D = sLocal.tm_mday;\n    y.h = sLocal.tm_hour;\n    y.m = sLocal.tm_min;\n    y.validJD = '\0';\n    y.rawS = '\0';\n    y.validYMD = '\x01';\n    y.validHMS = '\x01';\n    (*pcVar10)(&y);\n    pCtx_1->pOut = (Mem *)0x0;\n    sVar12 = FUN_0007ddd4(y.iJD._4_4_ < y.iJD._4_4_ - x.iJD._4_4_,x.iJD._0_4_);\n    return sVar12;\n  }" if (parenthesized_expression "((*(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&t,&sLocal), iVar4 != 0))" ( (binary_expression "(*(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&t,&sLocal), iVar4 != 0)" (parenthesized_expression "(*(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + -0xa64) == 0)" ( (binary_expression "*(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + -0xa64) == 0" (pointer_expression "*(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + -0xa64)" * (cast_expression "(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + -0xa64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_aBuiltinFunc_29540_1408__00190948 + -0xa64)" ( (binary_expression "PTR_aBuiltinFunc_29540_1408__00190948 + -0xa64" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&t,&sLocal), iVar4 != 0)" ( (comma_expression "iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&t,&sLocal), iVar4 != 0" (assignment_expression "iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&t,&sLocal)" identifier = (call_expression "(*(code *)PTR_localtime_r_00190dd8)(&t,&sLocal)" (parenthesized_expression "(*(code *)PTR_localtime_r_00190dd8)" ( (pointer_expression "*(code *)PTR_localtime_r_00190dd8" * (cast_expression "(code *)PTR_localtime_r_00190dd8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&t,&sLocal)" ( (pointer_expression "&t" & identifier) , (pointer_expression "&sLocal" & identifier) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    y.validTZ = '\0';\n    y.M = sLocal.tm_mon + 1;\n    y.isError = '\0';\n    y.Y = sLocal.tm_year + 0x76c;\n    y.s = (double)sLocal.tm_sec;\n    y.D = sLocal.tm_mday;\n    y.h = sLocal.tm_hour;\n    y.m = sLocal.tm_min;\n    y.validJD = '\0';\n    y.rawS = '\0';\n    y.validYMD = '\x01';\n    y.validHMS = '\x01';\n    (*pcVar10)(&y);\n    pCtx_1->pOut = (Mem *)0x0;\n    sVar12 = FUN_0007ddd4(y.iJD._4_4_ < y.iJD._4_4_ - x.iJD._4_4_,x.iJD._0_4_);\n    return sVar12;\n  }" { (expression_statement "y.validTZ = '\0';" (assignment_expression "y.validTZ = '\0'" (field_expression "y.validTZ" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "y.M = sLocal.tm_mon + 1;" (assignment_expression "y.M = sLocal.tm_mon + 1" (field_expression "y.M" identifier . field_identifier) = (binary_expression "sLocal.tm_mon + 1" (field_expression "sLocal.tm_mon" identifier . field_identifier) + number_literal)) ;) (expression_statement "y.isError = '\0';" (assignment_expression "y.isError = '\0'" (field_expression "y.isError" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "y.Y = sLocal.tm_year + 0x76c;" (assignment_expression "y.Y = sLocal.tm_year + 0x76c" (field_expression "y.Y" identifier . field_identifier) = (binary_expression "sLocal.tm_year + 0x76c" (field_expression "sLocal.tm_year" identifier . field_identifier) + number_literal)) ;) (expression_statement "y.s = (double)sLocal.tm_sec;" (assignment_expression "y.s = (double)sLocal.tm_sec" (field_expression "y.s" identifier . field_identifier) = (cast_expression "(double)sLocal.tm_sec" ( (type_descriptor "double" primitive_type) ) (field_expression "sLocal.tm_sec" identifier . field_identifier))) ;) (expression_statement "y.D = sLocal.tm_mday;" (assignment_expression "y.D = sLocal.tm_mday" (field_expression "y.D" identifier . field_identifier) = (field_expression "sLocal.tm_mday" identifier . field_identifier)) ;) (expression_statement "y.h = sLocal.tm_hour;" (assignment_expression "y.h = sLocal.tm_hour" (field_expression "y.h" identifier . field_identifier) = (field_expression "sLocal.tm_hour" identifier . field_identifier)) ;) (expression_statement "y.m = sLocal.tm_min;" (assignment_expression "y.m = sLocal.tm_min" (field_expression "y.m" identifier . field_identifier) = (field_expression "sLocal.tm_min" identifier . field_identifier)) ;) (expression_statement "y.validJD = '\0';" (assignment_expression "y.validJD = '\0'" (field_expression "y.validJD" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "y.rawS = '\0';" (assignment_expression "y.rawS = '\0'" (field_expression "y.rawS" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "y.validYMD = '\x01';" (assignment_expression "y.validYMD = '\x01'" (field_expression "y.validYMD" identifier . field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "y.validHMS = '\x01';" (assignment_expression "y.validHMS = '\x01'" (field_expression "y.validHMS" identifier . field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "(*pcVar10)(&y);" (call_expression "(*pcVar10)(&y)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(&y)" ( (pointer_expression "&y" & identifier) ))) ;) (expression_statement "pCtx_1->pOut = (Mem *)0x0;" (assignment_expression "pCtx_1->pOut = (Mem *)0x0" (field_expression "pCtx_1->pOut" identifier -> field_identifier) = (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sVar12 = FUN_0007ddd4(y.iJD._4_4_ < y.iJD._4_4_ - x.iJD._4_4_,x.iJD._0_4_);" (assignment_expression "sVar12 = FUN_0007ddd4(y.iJD._4_4_ < y.iJD._4_4_ - x.iJD._4_4_,x.iJD._0_4_)" identifier = (call_expression "FUN_0007ddd4(y.iJD._4_4_ < y.iJD._4_4_ - x.iJD._4_4_,x.iJD._0_4_)" identifier (argument_list "(y.iJD._4_4_ < y.iJD._4_4_ - x.iJD._4_4_,x.iJD._0_4_)" ( (binary_expression "y.iJD._4_4_ < y.iJD._4_4_ - x.iJD._4_4_" (field_expression "y.iJD._4_4_" (field_expression "y.iJD" identifier . field_identifier) . field_identifier) < (binary_expression "y.iJD._4_4_ - x.iJD._4_4_" (field_expression "y.iJD._4_4_" (field_expression "y.iJD" identifier . field_identifier) . field_identifier) - (field_expression "x.iJD._4_4_" (field_expression "x.iJD" identifier . field_identifier) . field_identifier))) , (field_expression "x.iJD._0_4_" (field_expression "x.iJD" identifier . field_identifier) . field_identifier) )))) ;) (return_statement "return sVar12;" return identifier ;) })) (expression_statement "puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;" (assignment_expression "puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c" identifier = identifier) ;) (expression_statement "*pRc = 1;" (assignment_expression "*pRc = 1" (pointer_expression "*pRc" * identifier) = number_literal) ;) (expression_statement "sqlite3VdbeMemSetStr(pCtx->pOut,puVar1 + -0x61c8,-1,'\x01',(_func_void_void_ptr *)0xffffffff);" (call_expression "sqlite3VdbeMemSetStr(pCtx->pOut,puVar1 + -0x61c8,-1,'\x01',(_func_void_void_ptr *)0xffffffff)" identifier (argument_list "(pCtx->pOut,puVar1 + -0x61c8,-1,'\x01',(_func_void_void_ptr *)0xffffffff)" ( (field_expression "pCtx->pOut" identifier -> field_identifier) , (binary_expression "puVar1 + -0x61c8" identifier + number_literal) , number_literal , (char_literal "'\x01'" ' escape_sequence ') , (cast_expression "(_func_void_void_ptr *)0xffffffff" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "pCtx_1->pOut = (Mem *)0x1;" (assignment_expression "pCtx_1->pOut = (Mem *)0x1" (field_expression "pCtx_1->pOut" identifier -> field_identifier) = (cast_expression "(Mem *)0x1" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar8 = *(undefined4 **)puVar11;" (assignment_expression "puVar8 = *(undefined4 **)puVar11" identifier = (pointer_expression "*(undefined4 **)puVar11" * (cast_expression "(undefined4 **)puVar11" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (puVar3 == puVar8) {\n    return 0;\n  }" if (parenthesized_expression "(puVar3 == puVar8)" ( (binary_expression "puVar3 == puVar8" identifier == identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar11 = PTR___stack_chk_fail_00190df8;" (assignment_expression "puVar11 = PTR___stack_chk_fail_00190df8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00190df8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00190df8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00190df8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00190df8" * (cast_expression "(code *)PTR___stack_chk_fail_00190df8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = puVar8[2];" (assignment_expression "iVar4 = puVar8[2]" identifier = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = extraout_v1_00;" (assignment_expression "uVar5 = extraout_v1_00" identifier = identifier) ;) (if_statement "if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {\n    puVar3 = (undefined4 *)\n             createAggContext((sqlite3_context *)(puVar8 + 1),iVar4,(sqlite3_context *)0x0);\n  }\n  else {\n    puVar3 = *(undefined4 **)(iVar4 + 0x10);\n  }" if (parenthesized_expression "((*(ushort *)(iVar4 + 8) & 0x2000) == 0)" ( (binary_expression "(*(ushort *)(iVar4 + 8) & 0x2000) == 0" (parenthesized_expression "(*(ushort *)(iVar4 + 8) & 0x2000)" ( (binary_expression "*(ushort *)(iVar4 + 8) & 0x2000" (pointer_expression "*(ushort *)(iVar4 + 8)" * (cast_expression "(ushort *)(iVar4 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    puVar3 = (undefined4 *)\n             createAggContext((sqlite3_context *)(puVar8 + 1),iVar4,(sqlite3_context *)0x0);\n  }" { (expression_statement "puVar3 = (undefined4 *)\n             createAggContext((sqlite3_context *)(puVar8 + 1),iVar4,(sqlite3_context *)0x0);" (assignment_expression "puVar3 = (undefined4 *)\n             createAggContext((sqlite3_context *)(puVar8 + 1),iVar4,(sqlite3_context *)0x0)" identifier = (cast_expression "(undefined4 *)\n             createAggContext((sqlite3_context *)(puVar8 + 1),iVar4,(sqlite3_context *)0x0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "createAggContext((sqlite3_context *)(puVar8 + 1),iVar4,(sqlite3_context *)0x0)" identifier (argument_list "((sqlite3_context *)(puVar8 + 1),iVar4,(sqlite3_context *)0x0)" ( (cast_expression "(sqlite3_context *)(puVar8 + 1)" ( (type_descriptor "sqlite3_context *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 1)" ( (binary_expression "puVar8 + 1" identifier + number_literal) ))) , identifier , (cast_expression "(sqlite3_context *)0x0" ( (type_descriptor "sqlite3_context *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) }) (else_clause "else {\n    puVar3 = *(undefined4 **)(iVar4 + 0x10);\n  }" else (compound_statement "{\n    puVar3 = *(undefined4 **)(iVar4 + 0x10);\n  }" { (expression_statement "puVar3 = *(undefined4 **)(iVar4 + 0x10);" (assignment_expression "puVar3 = *(undefined4 **)(iVar4 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(iVar4 + 0x10)" * (cast_expression "(undefined4 **)(iVar4 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) ))))) ;) }))) (if_statement "if (puVar3 == (undefined4 *)0x0) goto LAB_0007df78;" if (parenthesized_expression "(puVar3 == (undefined4 *)0x0)" ( (binary_expression "puVar3 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007df78;" goto statement_identifier ;)) (expression_statement "uVar5 = puVar3[4];" (assignment_expression "uVar5 = puVar3[4]" identifier = (subscript_expression "puVar3[4]" identifier [ number_literal ])) ;) (if_statement "if ((int)uVar5 < 1) {\n    if (uVar5 != 0) goto LAB_0007df78;\n    if (puVar3[5] == 0) {\n      uVar5 = 0;\n      goto LAB_0007df78;\n    }\n  }" if (parenthesized_expression "((int)uVar5 < 1)" ( (binary_expression "(int)uVar5 < 1" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    if (uVar5 != 0) goto LAB_0007df78;\n    if (puVar3[5] == 0) {\n      uVar5 = 0;\n      goto LAB_0007df78;\n    }\n  }" { (if_statement "if (uVar5 != 0) goto LAB_0007df78;" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0007df78;" goto statement_identifier ;)) (if_statement "if (puVar3[5] == 0) {\n      uVar5 = 0;\n      goto LAB_0007df78;\n    }" if (parenthesized_expression "(puVar3[5] == 0)" ( (binary_expression "puVar3[5] == 0" (subscript_expression "puVar3[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      uVar5 = 0;\n      goto LAB_0007df78;\n    }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007df78;" goto statement_identifier ;) })) })) (expression_statement "uVar5 = (uint)*(byte *)(puVar3 + 6);" (assignment_expression "uVar5 = (uint)*(byte *)(puVar3 + 6)" identifier = (binary_expression "(uint)*(byte *)(puVar3 + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(puVar3 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 6)" ( (binary_expression "puVar3 + 6" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(puVar11 + 0x112a94);" (assignment_expression "iVar4 = *(int *)(puVar11 + 0x112a94)" identifier = (pointer_expression "*(int *)(puVar11 + 0x112a94)" * (cast_expression "(int *)(puVar11 + 0x112a94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x112a94)" ( (binary_expression "puVar11 + 0x112a94" identifier + number_literal) ))))) ;) (if_statement "if (uVar5 == 0) {\n    if (*(char *)((int)puVar3 + 0x19) == '\0') {\n                    /* WARNING: Could not recover jumptable at 0x0007dfcc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      sVar12 = (**(code **)(puVar11 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);\n      return sVar12;\n    }\n                    /* WARNING: Could not recover jumptable at 0x0007df3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    sVar12 = (**(code **)(puVar11 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return sVar12;\n  }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*(char *)((int)puVar3 + 0x19) == '\0') {\n                    /* WARNING: Could not recover jumptable at 0x0007dfcc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      sVar12 = (**(code **)(puVar11 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);\n      return sVar12;\n    }\n                    /* WARNING: Could not recover jumptable at 0x0007df3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    sVar12 = (**(code **)(puVar11 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return sVar12;\n  }" { (if_statement "if (*(char *)((int)puVar3 + 0x19) == '\0') {\n                    /* WARNING: Could not recover jumptable at 0x0007dfcc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      sVar12 = (**(code **)(puVar11 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);\n      return sVar12;\n    }" if (parenthesized_expression "(*(char *)((int)puVar3 + 0x19) == '\0')" ( (binary_expression "*(char *)((int)puVar3 + 0x19) == '\0'" (pointer_expression "*(char *)((int)puVar3 + 0x19)" * (cast_expression "(char *)((int)puVar3 + 0x19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + 0x19)" ( (binary_expression "(int)puVar3 + 0x19" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0007dfcc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      sVar12 = (**(code **)(puVar11 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);\n      return sVar12;\n    }" { comment comment (expression_statement "sVar12 = (**(code **)(puVar11 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);" (assignment_expression "sVar12 = (**(code **)(puVar11 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3])" identifier = (call_expression "(**(code **)(puVar11 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3])" (parenthesized_expression "(**(code **)(puVar11 + 0x112afc))" ( (pointer_expression "**(code **)(puVar11 + 0x112afc)" * (pointer_expression "*(code **)(puVar11 + 0x112afc)" * (cast_expression "(code **)(puVar11 + 0x112afc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x112afc)" ( (binary_expression "puVar11 + 0x112afc" identifier + number_literal) ))))) )) (argument_list "(puVar8,iVar4,puVar3[2],puVar3[3])" ( identifier , identifier , (subscript_expression "puVar3[2]" identifier [ number_literal ]) , (subscript_expression "puVar3[3]" identifier [ number_literal ]) )))) ;) (return_statement "return sVar12;" return identifier ;) })) comment comment (expression_statement "sVar12 = (**(code **)(puVar11 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);" (assignment_expression "sVar12 = (**(code **)(puVar11 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1])" identifier = (call_expression "(**(code **)(puVar11 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1])" (parenthesized_expression "(**(code **)(puVar11 + 0x112b74))" ( (pointer_expression "**(code **)(puVar11 + 0x112b74)" * (pointer_expression "*(code **)(puVar11 + 0x112b74)" * (cast_expression "(code **)(puVar11 + 0x112b74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x112b74)" ( (binary_expression "puVar11 + 0x112b74" identifier + number_literal) ))))) )) (argument_list "(puVar8,iVar4,*puVar3,puVar3[1])" ( identifier , identifier , (pointer_expression "*puVar3" * identifier) , (subscript_expression "puVar3[1]" identifier [ number_literal ]) )))) ;) (return_statement "return sVar12;" return identifier ;) })) (expression_statement "puVar8[5] = 1;" (assignment_expression "puVar8[5] = 1" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3 = (undefined4 *)\n           sqlite3VdbeMemSetStr\n                     ((Mem *)*puVar8,(char *)(iVar4 + -0x61b0),-1,'\x01',\n                      (_func_void_void_ptr *)0xffffffff);" (assignment_expression "puVar3 = (undefined4 *)\n           sqlite3VdbeMemSetStr\n                     ((Mem *)*puVar8,(char *)(iVar4 + -0x61b0),-1,'\x01',\n                      (_func_void_void_ptr *)0xffffffff)" identifier = (cast_expression "(undefined4 *)\n           sqlite3VdbeMemSetStr\n                     ((Mem *)*puVar8,(char *)(iVar4 + -0x61b0),-1,'\x01',\n                      (_func_void_void_ptr *)0xffffffff)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3VdbeMemSetStr\n                     ((Mem *)*puVar8,(char *)(iVar4 + -0x61b0),-1,'\x01',\n                      (_func_void_void_ptr *)0xffffffff)" identifier (argument_list "((Mem *)*puVar8,(char *)(iVar4 + -0x61b0),-1,'\x01',\n                      (_func_void_void_ptr *)0xffffffff)" ( (cast_expression "(Mem *)*puVar8" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier)) , (cast_expression "(char *)(iVar4 + -0x61b0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + -0x61b0)" ( (binary_expression "iVar4 + -0x61b0" identifier + number_literal) ))) , number_literal , (char_literal "'\x01'" ' escape_sequence ') , (cast_expression "(_func_void_void_ptr *)0xffffffff" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (labeled_statement "LAB_0007df78:\n  return CONCAT44(puVar3,uVar5);" statement_identifier : (return_statement "return CONCAT44(puVar3,uVar5);" return (call_expression "CONCAT44(puVar3,uVar5)" identifier (argument_list "(puVar3,uVar5)" ( identifier , identifier ))) ;)) })))
(translation_unit "ulonglong FUN_0007dc40(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int extraout_v1;\n  uint uVar5;\n  undefined4 extraout_v1_00;\n  int *piVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int iVar10;\n  code *pcVar11;\n  undefined *puVar12;\n  ulonglong uVar13;\n  int local_b8;\n  int local_b4;\n  undefined4 local_b0;\n  undefined4 local_ac;\n  undefined4 local_a8;\n  int local_a4;\n  int local_a0;\n  undefined4 local_9c;\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined4 local_8c;\n  int local_88 [8];\n  double local_68;\n  undefined1 local_60;\n  undefined4 local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  double local_38;\n  undefined4 local_30;\n  undefined1 local_2c;\n  undefined1 local_2a;\n  undefined4 *local_24;\n  \n  puVar12 = PTR___stack_chk_guard_00190e24;\n  local_b4 = 0;\n  local_b0 = 0;\n  local_ac = 0;\n  local_a8 = 0;\n  local_a4 = 0;\n  local_a0 = 0;\n  local_9c = 0;\n  local_98 = 0;\n  local_94 = 0;\n  local_90 = 0;\n  local_8c = 0;\n  local_24 = *(undefined4 **)PTR___stack_chk_guard_00190e24;\n  piVar2 = local_88;\n  piVar6 = param_1;\n  do {\n    piVar7 = piVar6 + 4;\n    iVar10 = piVar6[1];\n    iVar9 = piVar6[2];\n    iVar4 = piVar6[3];\n    *piVar2 = *piVar6;\n    piVar2[1] = iVar10;\n    piVar2[2] = iVar9;\n    piVar2[3] = iVar4;\n    piVar2 = piVar2 + 4;\n    piVar6 = piVar7;\n  } while (piVar7 != param_1 + 0xc);\n  (*(code *)(PTR_LAB_00190ba8 + -0x35ac))(local_88);\n  if (local_88[2] - 0x7b3U < 0x43) {\n    local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }\n  else {\n    local_88[5] = 0;\n    local_88[6] = 0;\n    local_88[3] = 1;\n    local_88[2] = 2000;\n    local_88[4] = 1;\n    local_68 = 0.0;\n  }\n  local_88[7] = 0;\n  pcVar11 = (code *)(PTR_LAB_00190ba8 + -0x3bac);\n  local_60 = 0;\n  (*pcVar11)(local_88);\n  (*(code *)PTR_FUN_00190aa0)(local_88[0],local_88[1],0,1000);\n  local_b8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)) {\n    local_2c = 0;\n    local_4c = local_a4 + 1;\n    local_2a = 0;\n    local_50 = local_a0 + 0x76c;\n    local_38 = (double)local_b4;\n    local_48 = local_a8;\n    local_44 = local_ac;\n    local_40 = local_b0;\n    local_30 = 0x101;\n    (*pcVar11)(&local_58);\n    uVar5 = local_54 - local_88[1];\n    *param_4 = 0;\n  }\n  else {\n    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n    *param_3 = 1;\n    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);\n    uVar5 = 0;\n    *param_4 = 1;\n  }\n  puVar8 = *(undefined4 **)puVar12;\n  if (local_24 == puVar8) {\n    return (ulonglong)uVar5;\n  }\n  puVar12 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  iVar4 = puVar8[2];\n  if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {\n    uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);\n  }\n  else {\n    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);\n  }\n  puVar3 = (undefined4 *)(uVar13 >> 0x20);\n  if (puVar3 == (undefined4 *)0x0) {\n    return uVar13;\n  }\n  iVar4 = puVar3[4];\n  if (iVar4 < 1) {\n    if (iVar4 != 0) {\n      return CONCAT44(puVar3,iVar4);\n    }\n    if (puVar3[5] == 0) {\n      return 0;\n    }\n  }\n  iVar4 = *(int *)(puVar12 + 0x112a94);\n  if (*(char *)(puVar3 + 6) != '\0') {\n    puVar8[5] = 1;\n    uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);\n    return uVar13;\n  }\n  if (*(char *)((int)puVar3 + 0x19) != '\0') {\n                    \n                    \n    uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return uVar13;\n  }\n                    \n                    \n  uVar13 = (**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);\n  return uVar13;\n}\n\n" (function_definition "ulonglong FUN_0007dc40(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int extraout_v1;\n  uint uVar5;\n  undefined4 extraout_v1_00;\n  int *piVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int iVar10;\n  code *pcVar11;\n  undefined *puVar12;\n  ulonglong uVar13;\n  int local_b8;\n  int local_b4;\n  undefined4 local_b0;\n  undefined4 local_ac;\n  undefined4 local_a8;\n  int local_a4;\n  int local_a0;\n  undefined4 local_9c;\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined4 local_8c;\n  int local_88 [8];\n  double local_68;\n  undefined1 local_60;\n  undefined4 local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  double local_38;\n  undefined4 local_30;\n  undefined1 local_2c;\n  undefined1 local_2a;\n  undefined4 *local_24;\n  \n  puVar12 = PTR___stack_chk_guard_00190e24;\n  local_b4 = 0;\n  local_b0 = 0;\n  local_ac = 0;\n  local_a8 = 0;\n  local_a4 = 0;\n  local_a0 = 0;\n  local_9c = 0;\n  local_98 = 0;\n  local_94 = 0;\n  local_90 = 0;\n  local_8c = 0;\n  local_24 = *(undefined4 **)PTR___stack_chk_guard_00190e24;\n  piVar2 = local_88;\n  piVar6 = param_1;\n  do {\n    piVar7 = piVar6 + 4;\n    iVar10 = piVar6[1];\n    iVar9 = piVar6[2];\n    iVar4 = piVar6[3];\n    *piVar2 = *piVar6;\n    piVar2[1] = iVar10;\n    piVar2[2] = iVar9;\n    piVar2[3] = iVar4;\n    piVar2 = piVar2 + 4;\n    piVar6 = piVar7;\n  } while (piVar7 != param_1 + 0xc);\n  (*(code *)(PTR_LAB_00190ba8 + -0x35ac))(local_88);\n  if (local_88[2] - 0x7b3U < 0x43) {\n    local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }\n  else {\n    local_88[5] = 0;\n    local_88[6] = 0;\n    local_88[3] = 1;\n    local_88[2] = 2000;\n    local_88[4] = 1;\n    local_68 = 0.0;\n  }\n  local_88[7] = 0;\n  pcVar11 = (code *)(PTR_LAB_00190ba8 + -0x3bac);\n  local_60 = 0;\n  (*pcVar11)(local_88);\n  (*(code *)PTR_FUN_00190aa0)(local_88[0],local_88[1],0,1000);\n  local_b8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)) {\n    local_2c = 0;\n    local_4c = local_a4 + 1;\n    local_2a = 0;\n    local_50 = local_a0 + 0x76c;\n    local_38 = (double)local_b4;\n    local_48 = local_a8;\n    local_44 = local_ac;\n    local_40 = local_b0;\n    local_30 = 0x101;\n    (*pcVar11)(&local_58);\n    uVar5 = local_54 - local_88[1];\n    *param_4 = 0;\n  }\n  else {\n    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n    *param_3 = 1;\n    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);\n    uVar5 = 0;\n    *param_4 = 1;\n  }\n  puVar8 = *(undefined4 **)puVar12;\n  if (local_24 == puVar8) {\n    return (ulonglong)uVar5;\n  }\n  puVar12 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  iVar4 = puVar8[2];\n  if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {\n    uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);\n  }\n  else {\n    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);\n  }\n  puVar3 = (undefined4 *)(uVar13 >> 0x20);\n  if (puVar3 == (undefined4 *)0x0) {\n    return uVar13;\n  }\n  iVar4 = puVar3[4];\n  if (iVar4 < 1) {\n    if (iVar4 != 0) {\n      return CONCAT44(puVar3,iVar4);\n    }\n    if (puVar3[5] == 0) {\n      return 0;\n    }\n  }\n  iVar4 = *(int *)(puVar12 + 0x112a94);\n  if (*(char *)(puVar3 + 6) != '\0') {\n    puVar8[5] = 1;\n    uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);\n    return uVar13;\n  }\n  if (*(char *)((int)puVar3 + 0x19) != '\0') {\n                    \n                    \n    uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return uVar13;\n  }\n                    \n                    \n  uVar13 = (**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);\n  return uVar13;\n}" type_identifier (function_declarator "FUN_0007dc40(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4)" identifier (parameter_list "(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int extraout_v1;\n  uint uVar5;\n  undefined4 extraout_v1_00;\n  int *piVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int iVar10;\n  code *pcVar11;\n  undefined *puVar12;\n  ulonglong uVar13;\n  int local_b8;\n  int local_b4;\n  undefined4 local_b0;\n  undefined4 local_ac;\n  undefined4 local_a8;\n  int local_a4;\n  int local_a0;\n  undefined4 local_9c;\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined4 local_8c;\n  int local_88 [8];\n  double local_68;\n  undefined1 local_60;\n  undefined4 local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  double local_38;\n  undefined4 local_30;\n  undefined1 local_2c;\n  undefined1 local_2a;\n  undefined4 *local_24;\n  \n  puVar12 = PTR___stack_chk_guard_00190e24;\n  local_b4 = 0;\n  local_b0 = 0;\n  local_ac = 0;\n  local_a8 = 0;\n  local_a4 = 0;\n  local_a0 = 0;\n  local_9c = 0;\n  local_98 = 0;\n  local_94 = 0;\n  local_90 = 0;\n  local_8c = 0;\n  local_24 = *(undefined4 **)PTR___stack_chk_guard_00190e24;\n  piVar2 = local_88;\n  piVar6 = param_1;\n  do {\n    piVar7 = piVar6 + 4;\n    iVar10 = piVar6[1];\n    iVar9 = piVar6[2];\n    iVar4 = piVar6[3];\n    *piVar2 = *piVar6;\n    piVar2[1] = iVar10;\n    piVar2[2] = iVar9;\n    piVar2[3] = iVar4;\n    piVar2 = piVar2 + 4;\n    piVar6 = piVar7;\n  } while (piVar7 != param_1 + 0xc);\n  (*(code *)(PTR_LAB_00190ba8 + -0x35ac))(local_88);\n  if (local_88[2] - 0x7b3U < 0x43) {\n    local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }\n  else {\n    local_88[5] = 0;\n    local_88[6] = 0;\n    local_88[3] = 1;\n    local_88[2] = 2000;\n    local_88[4] = 1;\n    local_68 = 0.0;\n  }\n  local_88[7] = 0;\n  pcVar11 = (code *)(PTR_LAB_00190ba8 + -0x3bac);\n  local_60 = 0;\n  (*pcVar11)(local_88);\n  (*(code *)PTR_FUN_00190aa0)(local_88[0],local_88[1],0,1000);\n  local_b8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)) {\n    local_2c = 0;\n    local_4c = local_a4 + 1;\n    local_2a = 0;\n    local_50 = local_a0 + 0x76c;\n    local_38 = (double)local_b4;\n    local_48 = local_a8;\n    local_44 = local_ac;\n    local_40 = local_b0;\n    local_30 = 0x101;\n    (*pcVar11)(&local_58);\n    uVar5 = local_54 - local_88[1];\n    *param_4 = 0;\n  }\n  else {\n    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n    *param_3 = 1;\n    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);\n    uVar5 = 0;\n    *param_4 = 1;\n  }\n  puVar8 = *(undefined4 **)puVar12;\n  if (local_24 == puVar8) {\n    return (ulonglong)uVar5;\n  }\n  puVar12 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  iVar4 = puVar8[2];\n  if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {\n    uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);\n  }\n  else {\n    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);\n  }\n  puVar3 = (undefined4 *)(uVar13 >> 0x20);\n  if (puVar3 == (undefined4 *)0x0) {\n    return uVar13;\n  }\n  iVar4 = puVar3[4];\n  if (iVar4 < 1) {\n    if (iVar4 != 0) {\n      return CONCAT44(puVar3,iVar4);\n    }\n    if (puVar3[5] == 0) {\n      return 0;\n    }\n  }\n  iVar4 = *(int *)(puVar12 + 0x112a94);\n  if (*(char *)(puVar3 + 6) != '\0') {\n    puVar8[5] = 1;\n    uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);\n    return uVar13;\n  }\n  if (*(char *)((int)puVar3 + 0x19) != '\0') {\n                    \n                    \n    uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return uVar13;\n  }\n                    \n                    \n  uVar13 = (**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);\n  return uVar13;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 extraout_v1_00;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "ulonglong uVar13;" type_identifier identifier ;) (declaration "int local_b8;" primitive_type identifier ;) (declaration "int local_b4;" primitive_type identifier ;) (declaration "undefined4 local_b0;" type_identifier identifier ;) (declaration "undefined4 local_ac;" type_identifier identifier ;) (declaration "undefined4 local_a8;" type_identifier identifier ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "undefined4 local_9c;" type_identifier identifier ;) (declaration "undefined4 local_98;" type_identifier identifier ;) (declaration "undefined4 local_94;" type_identifier identifier ;) (declaration "undefined4 local_90;" type_identifier identifier ;) (declaration "undefined4 local_8c;" type_identifier identifier ;) (declaration "int local_88 [8];" primitive_type (array_declarator "local_88 [8]" identifier [ number_literal ]) ;) (declaration "double local_68;" primitive_type identifier ;) (declaration "undefined1 local_60;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "double local_38;" primitive_type identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined1 local_2c;" type_identifier identifier ;) (declaration "undefined1 local_2a;" type_identifier identifier ;) (declaration "undefined4 *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (expression_statement "puVar12 = PTR___stack_chk_guard_00190e24;" (assignment_expression "puVar12 = PTR___stack_chk_guard_00190e24" identifier = identifier) ;) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "local_ac = 0;" (assignment_expression "local_ac = 0" identifier = number_literal) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" identifier = number_literal) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "local_24 = *(undefined4 **)PTR___stack_chk_guard_00190e24;" (assignment_expression "local_24 = *(undefined4 **)PTR___stack_chk_guard_00190e24" identifier = (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_00190e24" * (cast_expression "(undefined4 **)PTR___stack_chk_guard_00190e24" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "piVar2 = local_88;" (assignment_expression "piVar2 = local_88" identifier = identifier) ;) (expression_statement "piVar6 = param_1;" (assignment_expression "piVar6 = param_1" identifier = identifier) ;) (do_statement "do {\n    piVar7 = piVar6 + 4;\n    iVar10 = piVar6[1];\n    iVar9 = piVar6[2];\n    iVar4 = piVar6[3];\n    *piVar2 = *piVar6;\n    piVar2[1] = iVar10;\n    piVar2[2] = iVar9;\n    piVar2[3] = iVar4;\n    piVar2 = piVar2 + 4;\n    piVar6 = piVar7;\n  } while (piVar7 != param_1 + 0xc);" do (compound_statement "{\n    piVar7 = piVar6 + 4;\n    iVar10 = piVar6[1];\n    iVar9 = piVar6[2];\n    iVar4 = piVar6[3];\n    *piVar2 = *piVar6;\n    piVar2[1] = iVar10;\n    piVar2[2] = iVar9;\n    piVar2[3] = iVar4;\n    piVar2 = piVar2 + 4;\n    piVar6 = piVar7;\n  }" { (expression_statement "piVar7 = piVar6 + 4;" (assignment_expression "piVar7 = piVar6 + 4" identifier = (binary_expression "piVar6 + 4" identifier + number_literal)) ;) (expression_statement "iVar10 = piVar6[1];" (assignment_expression "iVar10 = piVar6[1]" identifier = (subscript_expression "piVar6[1]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = piVar6[2];" (assignment_expression "iVar9 = piVar6[2]" identifier = (subscript_expression "piVar6[2]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = piVar6[3];" (assignment_expression "iVar4 = piVar6[3]" identifier = (subscript_expression "piVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar2 = *piVar6;" (assignment_expression "*piVar2 = *piVar6" (pointer_expression "*piVar2" * identifier) = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar2[1] = iVar10;" (assignment_expression "piVar2[1] = iVar10" (subscript_expression "piVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[2] = iVar9;" (assignment_expression "piVar2[2] = iVar9" (subscript_expression "piVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2[3] = iVar4;" (assignment_expression "piVar2[3] = iVar4" (subscript_expression "piVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) (expression_statement "piVar6 = piVar7;" (assignment_expression "piVar6 = piVar7" identifier = identifier) ;) }) while (parenthesized_expression "(piVar7 != param_1 + 0xc)" ( (binary_expression "piVar7 != param_1 + 0xc" identifier != (binary_expression "param_1 + 0xc" identifier + number_literal)) )) ;) (expression_statement "(*(code *)(PTR_LAB_00190ba8 + -0x35ac))(local_88);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + -0x35ac))(local_88)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + -0x35ac))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + -0x35ac)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + -0x35ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + -0x35ac)" ( (binary_expression "PTR_LAB_00190ba8 + -0x35ac" identifier + number_literal) )))) )) (argument_list "(local_88)" ( identifier ))) ;) (if_statement "if (local_88[2] - 0x7b3U < 0x43) {\n    local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }\n  else {\n    local_88[5] = 0;\n    local_88[6] = 0;\n    local_88[3] = 1;\n    local_88[2] = 2000;\n    local_88[4] = 1;\n    local_68 = 0.0;\n  }" if (parenthesized_expression "(local_88[2] - 0x7b3U < 0x43)" ( (binary_expression "local_88[2] - 0x7b3U < 0x43" (binary_expression "local_88[2] - 0x7b3U" (subscript_expression "local_88[2]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n    local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }" { (expression_statement "local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));" (assignment_expression "local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8))" identifier = (cast_expression "(double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8))" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8))" ( (binary_expression "local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8)" identifier + (pointer_expression "*(double *)(PTR_DAT_00190b94 + -0x3ab8)" * (cast_expression "(double *)(PTR_DAT_00190b94 + -0x3ab8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00190b94 + -0x3ab8)" ( (binary_expression "PTR_DAT_00190b94 + -0x3ab8" identifier + number_literal) ))))) ))))) ;) }) (else_clause "else {\n    local_88[5] = 0;\n    local_88[6] = 0;\n    local_88[3] = 1;\n    local_88[2] = 2000;\n    local_88[4] = 1;\n    local_68 = 0.0;\n  }" else (compound_statement "{\n    local_88[5] = 0;\n    local_88[6] = 0;\n    local_88[3] = 1;\n    local_88[2] = 2000;\n    local_88[4] = 1;\n    local_68 = 0.0;\n  }" { (expression_statement "local_88[5] = 0;" (assignment_expression "local_88[5] = 0" (subscript_expression "local_88[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_88[6] = 0;" (assignment_expression "local_88[6] = 0" (subscript_expression "local_88[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_88[3] = 1;" (assignment_expression "local_88[3] = 1" (subscript_expression "local_88[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_88[2] = 2000;" (assignment_expression "local_88[2] = 2000" (subscript_expression "local_88[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_88[4] = 1;" (assignment_expression "local_88[4] = 1" (subscript_expression "local_88[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_68 = 0.0;" (assignment_expression "local_68 = 0.0" identifier = number_literal) ;) }))) (expression_statement "local_88[7] = 0;" (assignment_expression "local_88[7] = 0" (subscript_expression "local_88[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pcVar11 = (code *)(PTR_LAB_00190ba8 + -0x3bac);" (assignment_expression "pcVar11 = (code *)(PTR_LAB_00190ba8 + -0x3bac)" identifier = (cast_expression "(code *)(PTR_LAB_00190ba8 + -0x3bac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + -0x3bac)" ( (binary_expression "PTR_LAB_00190ba8 + -0x3bac" identifier + number_literal) )))) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "(*pcVar11)(local_88);" (call_expression "(*pcVar11)(local_88)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(local_88)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_FUN_00190aa0)(local_88[0],local_88[1],0,1000);" (call_expression "(*(code *)PTR_FUN_00190aa0)(local_88[0],local_88[1],0,1000)" (parenthesized_expression "(*(code *)PTR_FUN_00190aa0)" ( (pointer_expression "*(code *)PTR_FUN_00190aa0" * (cast_expression "(code *)PTR_FUN_00190aa0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_88[0],local_88[1],0,1000)" ( (subscript_expression "local_88[0]" identifier [ number_literal ]) , (subscript_expression "local_88[1]" identifier [ number_literal ]) , number_literal , number_literal ))) ;) (expression_statement "local_b8 = extraout_v1 + -0x18a36940;" (assignment_expression "local_b8 = extraout_v1 + -0x18a36940" identifier = (binary_expression "extraout_v1 + -0x18a36940" identifier + number_literal)) ;) (if_statement "if ((*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)) {\n    local_2c = 0;\n    local_4c = local_a4 + 1;\n    local_2a = 0;\n    local_50 = local_a0 + 0x76c;\n    local_38 = (double)local_b4;\n    local_48 = local_a8;\n    local_44 = local_ac;\n    local_40 = local_b0;\n    local_30 = 0x101;\n    (*pcVar11)(&local_58);\n    uVar5 = local_54 - local_88[1];\n    *param_4 = 0;\n  }\n  else {\n    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n    *param_3 = 1;\n    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);\n    uVar5 = 0;\n    *param_4 = 1;\n  }" if (parenthesized_expression "((*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0))" ( (binary_expression "(*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)" (parenthesized_expression "(*(int *)(PTR_DAT_00190948 + -0xa64) == 0)" ( (binary_expression "*(int *)(PTR_DAT_00190948 + -0xa64) == 0" (pointer_expression "*(int *)(PTR_DAT_00190948 + -0xa64)" * (cast_expression "(int *)(PTR_DAT_00190948 + -0xa64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00190948 + -0xa64)" ( (binary_expression "PTR_DAT_00190948 + -0xa64" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)" ( (comma_expression "iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0" (assignment_expression "iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4)" identifier = (call_expression "(*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4)" (parenthesized_expression "(*(code *)PTR_localtime_r_00190dd8)" ( (pointer_expression "*(code *)PTR_localtime_r_00190dd8" * (cast_expression "(code *)PTR_localtime_r_00190dd8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_b8,&local_b4)" ( (pointer_expression "&local_b8" & identifier) , (pointer_expression "&local_b4" & identifier) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    local_2c = 0;\n    local_4c = local_a4 + 1;\n    local_2a = 0;\n    local_50 = local_a0 + 0x76c;\n    local_38 = (double)local_b4;\n    local_48 = local_a8;\n    local_44 = local_ac;\n    local_40 = local_b0;\n    local_30 = 0x101;\n    (*pcVar11)(&local_58);\n    uVar5 = local_54 - local_88[1];\n    *param_4 = 0;\n  }" { (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_4c = local_a4 + 1;" (assignment_expression "local_4c = local_a4 + 1" identifier = (binary_expression "local_a4 + 1" identifier + number_literal)) ;) (expression_statement "local_2a = 0;" (assignment_expression "local_2a = 0" identifier = number_literal) ;) (expression_statement "local_50 = local_a0 + 0x76c;" (assignment_expression "local_50 = local_a0 + 0x76c" identifier = (binary_expression "local_a0 + 0x76c" identifier + number_literal)) ;) (expression_statement "local_38 = (double)local_b4;" (assignment_expression "local_38 = (double)local_b4" identifier = (cast_expression "(double)local_b4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_48 = local_a8;" (assignment_expression "local_48 = local_a8" identifier = identifier) ;) (expression_statement "local_44 = local_ac;" (assignment_expression "local_44 = local_ac" identifier = identifier) ;) (expression_statement "local_40 = local_b0;" (assignment_expression "local_40 = local_b0" identifier = identifier) ;) (expression_statement "local_30 = 0x101;" (assignment_expression "local_30 = 0x101" identifier = number_literal) ;) (expression_statement "(*pcVar11)(&local_58);" (call_expression "(*pcVar11)(&local_58)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(&local_58)" ( (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "uVar5 = local_54 - local_88[1];" (assignment_expression "uVar5 = local_54 - local_88[1]" identifier = (binary_expression "local_54 - local_88[1]" identifier - (subscript_expression "local_88[1]" identifier [ number_literal ]))) ;) (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" * identifier) = number_literal) ;) }) (else_clause "else {\n    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n    *param_3 = 1;\n    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);\n    uVar5 = 0;\n    *param_4 = 1;\n  }" else (compound_statement "{\n    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n    *param_3 = 1;\n    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);\n    uVar5 = 0;\n    *param_4 = 1;\n  }" { (expression_statement "puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;" (assignment_expression "puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c" identifier = identifier) ;) (expression_statement "*param_3 = 1;" (assignment_expression "*param_3 = 1" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);" (call_expression "FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff)" identifier (argument_list "(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff)" ( (pointer_expression "*param_2" * identifier) , (binary_expression "puVar1 + -0x61c8" identifier + number_literal) , number_literal , number_literal , number_literal ))) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "*param_4 = 1;" (assignment_expression "*param_4 = 1" (pointer_expression "*param_4" * identifier) = number_literal) ;) }))) (expression_statement "puVar8 = *(undefined4 **)puVar12;" (assignment_expression "puVar8 = *(undefined4 **)puVar12" identifier = (pointer_expression "*(undefined4 **)puVar12" * (cast_expression "(undefined4 **)puVar12" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (local_24 == puVar8) {\n    return (ulonglong)uVar5;\n  }" if (parenthesized_expression "(local_24 == puVar8)" ( (binary_expression "local_24 == puVar8" identifier == identifier) )) (compound_statement "{\n    return (ulonglong)uVar5;\n  }" { (return_statement "return (ulonglong)uVar5;" return (cast_expression "(ulonglong)uVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier) ;) })) (expression_statement "puVar12 = PTR___stack_chk_fail_00190df8;" (assignment_expression "puVar12 = PTR___stack_chk_fail_00190df8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00190df8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00190df8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00190df8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00190df8" * (cast_expression "(code *)PTR___stack_chk_fail_00190df8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = puVar8[2];" (assignment_expression "iVar4 = puVar8[2]" identifier = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (if_statement "if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {\n    uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);\n  }\n  else {\n    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);\n  }" if (parenthesized_expression "((*(ushort *)(iVar4 + 8) & 0x2000) == 0)" ( (binary_expression "(*(ushort *)(iVar4 + 8) & 0x2000) == 0" (parenthesized_expression "(*(ushort *)(iVar4 + 8) & 0x2000)" ( (binary_expression "*(ushort *)(iVar4 + 8) & 0x2000" (pointer_expression "*(ushort *)(iVar4 + 8)" * (cast_expression "(ushort *)(iVar4 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);\n  }" { (expression_statement "uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);" (assignment_expression "uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0)" identifier = (call_expression "FUN_0007be98(puVar8 + 1,iVar4,0)" identifier (argument_list "(puVar8 + 1,iVar4,0)" ( (binary_expression "puVar8 + 1" identifier + number_literal) , identifier , number_literal )))) ;) }) (else_clause "else {\n    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);\n  }" else (compound_statement "{\n    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);\n  }" { (expression_statement "uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);" (assignment_expression "uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00)" identifier = (call_expression "CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00)" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) , identifier )))) ;) }))) (expression_statement "puVar3 = (undefined4 *)(uVar13 >> 0x20);" (assignment_expression "puVar3 = (undefined4 *)(uVar13 >> 0x20)" identifier = (cast_expression "(undefined4 *)(uVar13 >> 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar13 >> 0x20)" ( (binary_expression "uVar13 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (puVar3 == (undefined4 *)0x0) {\n    return uVar13;\n  }" if (parenthesized_expression "(puVar3 == (undefined4 *)0x0)" ( (binary_expression "puVar3 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return uVar13;\n  }" { (return_statement "return uVar13;" return identifier ;) })) (expression_statement "iVar4 = puVar3[4];" (assignment_expression "iVar4 = puVar3[4]" identifier = (subscript_expression "puVar3[4]" identifier [ number_literal ])) ;) (if_statement "if (iVar4 < 1) {\n    if (iVar4 != 0) {\n      return CONCAT44(puVar3,iVar4);\n    }\n    if (puVar3[5] == 0) {\n      return 0;\n    }\n  }" if (parenthesized_expression "(iVar4 < 1)" ( (binary_expression "iVar4 < 1" identifier < number_literal) )) (compound_statement "{\n    if (iVar4 != 0) {\n      return CONCAT44(puVar3,iVar4);\n    }\n    if (puVar3[5] == 0) {\n      return 0;\n    }\n  }" { (if_statement "if (iVar4 != 0) {\n      return CONCAT44(puVar3,iVar4);\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      return CONCAT44(puVar3,iVar4);\n    }" { (return_statement "return CONCAT44(puVar3,iVar4);" return (call_expression "CONCAT44(puVar3,iVar4)" identifier (argument_list "(puVar3,iVar4)" ( identifier , identifier ))) ;) })) (if_statement "if (puVar3[5] == 0) {\n      return 0;\n    }" if (parenthesized_expression "(puVar3[5] == 0)" ( (binary_expression "puVar3[5] == 0" (subscript_expression "puVar3[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "iVar4 = *(int *)(puVar12 + 0x112a94);" (assignment_expression "iVar4 = *(int *)(puVar12 + 0x112a94)" identifier = (pointer_expression "*(int *)(puVar12 + 0x112a94)" * (cast_expression "(int *)(puVar12 + 0x112a94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x112a94)" ( (binary_expression "puVar12 + 0x112a94" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(puVar3 + 6) != '\0') {\n    puVar8[5] = 1;\n    uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);\n    return uVar13;\n  }" if (parenthesized_expression "(*(char *)(puVar3 + 6) != '\0')" ( (binary_expression "*(char *)(puVar3 + 6) != '\0'" (pointer_expression "*(char *)(puVar3 + 6)" * (cast_expression "(char *)(puVar3 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 6)" ( (binary_expression "puVar3 + 6" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar8[5] = 1;\n    uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);\n    return uVar13;\n  }" { (expression_statement "puVar8[5] = 1;" (assignment_expression "puVar8[5] = 1" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);" (assignment_expression "uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff)" identifier = (call_expression "FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff)" identifier (argument_list "(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff)" ( (pointer_expression "*puVar8" * identifier) , (binary_expression "iVar4 + -0x61b0" identifier + number_literal) , number_literal , number_literal , number_literal )))) ;) (return_statement "return uVar13;" return identifier ;) })) (if_statement "if (*(char *)((int)puVar3 + 0x19) != '\0') {\n                    \n                    \n    uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return uVar13;\n  }" if (parenthesized_expression "(*(char *)((int)puVar3 + 0x19) != '\0')" ( (binary_expression "*(char *)((int)puVar3 + 0x19) != '\0'" (pointer_expression "*(char *)((int)puVar3 + 0x19)" * (cast_expression "(char *)((int)puVar3 + 0x19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + 0x19)" ( (binary_expression "(int)puVar3 + 0x19" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n                    \n    uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return uVar13;\n  }" { (expression_statement "uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);" (assignment_expression "uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1])" identifier = (call_expression "(**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1])" (parenthesized_expression "(**(code **)(puVar12 + 0x112b74))" ( (pointer_expression "**(code **)(puVar12 + 0x112b74)" * (pointer_expression "*(code **)(puVar12 + 0x112b74)" * (cast_expression "(code **)(puVar12 + 0x112b74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x112b74)" ( (binary_expression "puVar12 + 0x112b74" identifier + number_literal) ))))) )) (argument_list "(puVar8,iVar4,*puVar3,puVar3[1])" ( identifier , identifier , (pointer_expression "*puVar3" * identifier) , (subscript_expression "puVar3[1]" identifier [ number_literal ]) )))) ;) (return_statement "return uVar13;" return identifier ;) })) (expression_statement "uVar13 = (**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);" (assignment_expression "uVar13 = (**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3])" identifier = (call_expression "(**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3])" (parenthesized_expression "(**(code **)(puVar12 + 0x112afc))" ( (pointer_expression "**(code **)(puVar12 + 0x112afc)" * (pointer_expression "*(code **)(puVar12 + 0x112afc)" * (cast_expression "(code **)(puVar12 + 0x112afc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0x112afc)" ( (binary_expression "puVar12 + 0x112afc" identifier + number_literal) ))))) )) (argument_list "(puVar8,iVar4,puVar3[2],puVar3[3])" ( identifier , identifier , (subscript_expression "puVar3[2]" identifier [ number_literal ]) , (subscript_expression "puVar3[3]" identifier [ number_literal ]) )))) ;) (return_statement "return uVar13;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (binary_expression IDENT + LIT) , LIT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE) ) IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (return_statement return LIT ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (binary_expression IDENT + LIT) , LIT , LIT , LIT )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) )))) ;) (return_statement return IDENT ;) })))
(function_definition "ulonglong FUN_0007dc40(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int extraout_v1;\n  uint uVar5;\n  undefined4 extraout_v1_00;\n  int *piVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int iVar10;\n  code *pcVar11;\n  undefined *puVar12;\n  ulonglong uVar13;\n  int local_b8;\n  int local_b4;\n  undefined4 local_b0;\n  undefined4 local_ac;\n  undefined4 local_a8;\n  int local_a4;\n  int local_a0;\n  undefined4 local_9c;\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined4 local_8c;\n  int local_88 [8];\n  double local_68;\n  undefined1 local_60;\n  undefined4 local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  double local_38;\n  undefined4 local_30;\n  undefined1 local_2c;\n  undefined1 local_2a;\n  undefined4 *local_24;\n  \n  puVar12 = PTR___stack_chk_guard_00190e24;\n  local_b4 = 0;\n  local_b0 = 0;\n  local_ac = 0;\n  local_a8 = 0;\n  local_a4 = 0;\n  local_a0 = 0;\n  local_9c = 0;\n  local_98 = 0;\n  local_94 = 0;\n  local_90 = 0;\n  local_8c = 0;\n  local_24 = *(undefined4 **)PTR___stack_chk_guard_00190e24;\n  piVar2 = local_88;\n  piVar6 = param_1;\n  do {\n    piVar7 = piVar6 + 4;\n    iVar10 = piVar6[1];\n    iVar9 = piVar6[2];\n    iVar4 = piVar6[3];\n    *piVar2 = *piVar6;\n    piVar2[1] = iVar10;\n    piVar2[2] = iVar9;\n    piVar2[3] = iVar4;\n    piVar2 = piVar2 + 4;\n    piVar6 = piVar7;\n  } while (piVar7 != param_1 + 0xc);\n  (*(code *)(PTR_LAB_00190ba8 + -0x35ac))(local_88);\n  if (local_88[2] - 0x7b3U < 0x43) {\n    local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }\n  else {\n    local_88[5] = 0;\n    local_88[6] = 0;\n    local_88[3] = 1;\n    local_88[2] = 2000;\n    local_88[4] = 1;\n    local_68 = 0.0;\n  }\n  local_88[7] = 0;\n  pcVar11 = (code *)(PTR_LAB_00190ba8 + -0x3bac);\n  local_60 = 0;\n  (*pcVar11)(local_88);\n  (*(code *)PTR_FUN_00190aa0)(local_88[0],local_88[1],0,1000);\n  local_b8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)) {\n    local_2c = 0;\n    local_4c = local_a4 + 1;\n    local_2a = 0;\n    local_50 = local_a0 + 0x76c;\n    local_38 = (double)local_b4;\n    local_48 = local_a8;\n    local_44 = local_ac;\n    local_40 = local_b0;\n    local_30 = 0x101;\n    (*pcVar11)(&local_58);\n    uVar5 = local_54 - local_88[1];\n    *param_4 = 0;\n  }\n  else {\n    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n    *param_3 = 1;\n    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);\n    uVar5 = 0;\n    *param_4 = 1;\n  }\n  puVar8 = *(undefined4 **)puVar12;\n  if (local_24 == puVar8) {\n    return (ulonglong)uVar5;\n  }\n  puVar12 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  iVar4 = puVar8[2];\n  if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {\n    uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);\n  }\n  else {\n    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);\n  }\n  puVar3 = (undefined4 *)(uVar13 >> 0x20);\n  if (puVar3 == (undefined4 *)0x0) {\n    return uVar13;\n  }\n  iVar4 = puVar3[4];\n  if (iVar4 < 1) {\n    if (iVar4 != 0) {\n      return CONCAT44(puVar3,iVar4);\n    }\n    if (puVar3[5] == 0) {\n      return 0;\n    }\n  }\n  iVar4 = *(int *)(puVar12 + 0x112a94);\n  if (*(char *)(puVar3 + 6) != '\0') {\n    puVar8[5] = 1;\n    uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);\n    return uVar13;\n  }\n  if (*(char *)((int)puVar3 + 0x19) != '\0') {\n                    \n                    \n    uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return uVar13;\n  }\n                    \n                    \n  uVar13 = (**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);\n  return uVar13;\n}" (type_identifier "ulonglong") (function_declarator "FUN_0007dc40(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4)" (identifier "FUN_0007dc40") (parameter_list "(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int extraout_v1;\n  uint uVar5;\n  undefined4 extraout_v1_00;\n  int *piVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int iVar10;\n  code *pcVar11;\n  undefined *puVar12;\n  ulonglong uVar13;\n  int local_b8;\n  int local_b4;\n  undefined4 local_b0;\n  undefined4 local_ac;\n  undefined4 local_a8;\n  int local_a4;\n  int local_a0;\n  undefined4 local_9c;\n  undefined4 local_98;\n  undefined4 local_94;\n  undefined4 local_90;\n  undefined4 local_8c;\n  int local_88 [8];\n  double local_68;\n  undefined1 local_60;\n  undefined4 local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  double local_38;\n  undefined4 local_30;\n  undefined1 local_2c;\n  undefined1 local_2a;\n  undefined4 *local_24;\n  \n  puVar12 = PTR___stack_chk_guard_00190e24;\n  local_b4 = 0;\n  local_b0 = 0;\n  local_ac = 0;\n  local_a8 = 0;\n  local_a4 = 0;\n  local_a0 = 0;\n  local_9c = 0;\n  local_98 = 0;\n  local_94 = 0;\n  local_90 = 0;\n  local_8c = 0;\n  local_24 = *(undefined4 **)PTR___stack_chk_guard_00190e24;\n  piVar2 = local_88;\n  piVar6 = param_1;\n  do {\n    piVar7 = piVar6 + 4;\n    iVar10 = piVar6[1];\n    iVar9 = piVar6[2];\n    iVar4 = piVar6[3];\n    *piVar2 = *piVar6;\n    piVar2[1] = iVar10;\n    piVar2[2] = iVar9;\n    piVar2[3] = iVar4;\n    piVar2 = piVar2 + 4;\n    piVar6 = piVar7;\n  } while (piVar7 != param_1 + 0xc);\n  (*(code *)(PTR_LAB_00190ba8 + -0x35ac))(local_88);\n  if (local_88[2] - 0x7b3U < 0x43) {\n    local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }\n  else {\n    local_88[5] = 0;\n    local_88[6] = 0;\n    local_88[3] = 1;\n    local_88[2] = 2000;\n    local_88[4] = 1;\n    local_68 = 0.0;\n  }\n  local_88[7] = 0;\n  pcVar11 = (code *)(PTR_LAB_00190ba8 + -0x3bac);\n  local_60 = 0;\n  (*pcVar11)(local_88);\n  (*(code *)PTR_FUN_00190aa0)(local_88[0],local_88[1],0,1000);\n  local_b8 = extraout_v1 + -0x18a36940;\n  if ((*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)) {\n    local_2c = 0;\n    local_4c = local_a4 + 1;\n    local_2a = 0;\n    local_50 = local_a0 + 0x76c;\n    local_38 = (double)local_b4;\n    local_48 = local_a8;\n    local_44 = local_ac;\n    local_40 = local_b0;\n    local_30 = 0x101;\n    (*pcVar11)(&local_58);\n    uVar5 = local_54 - local_88[1];\n    *param_4 = 0;\n  }\n  else {\n    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n    *param_3 = 1;\n    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);\n    uVar5 = 0;\n    *param_4 = 1;\n  }\n  puVar8 = *(undefined4 **)puVar12;\n  if (local_24 == puVar8) {\n    return (ulonglong)uVar5;\n  }\n  puVar12 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  iVar4 = puVar8[2];\n  if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {\n    uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);\n  }\n  else {\n    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);\n  }\n  puVar3 = (undefined4 *)(uVar13 >> 0x20);\n  if (puVar3 == (undefined4 *)0x0) {\n    return uVar13;\n  }\n  iVar4 = puVar3[4];\n  if (iVar4 < 1) {\n    if (iVar4 != 0) {\n      return CONCAT44(puVar3,iVar4);\n    }\n    if (puVar3[5] == 0) {\n      return 0;\n    }\n  }\n  iVar4 = *(int *)(puVar12 + 0x112a94);\n  if (*(char *)(puVar3 + 6) != '\0') {\n    puVar8[5] = 1;\n    uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);\n    return uVar13;\n  }\n  if (*(char *)((int)puVar3 + 0x19) != '\0') {\n                    \n                    \n    uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return uVar13;\n  }\n                    \n                    \n  uVar13 = (**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);\n  return uVar13;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int extraout_v1;" (primitive_type "int") (identifier "extraout_v1") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined4 extraout_v1_00;" (type_identifier "undefined4") (identifier "extraout_v1_00") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "code *pcVar11;" (type_identifier "code") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "undefined *puVar12;" (type_identifier "undefined") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "ulonglong uVar13;" (type_identifier "ulonglong") (identifier "uVar13") (; ";")) (declaration "int local_b8;" (primitive_type "int") (identifier "local_b8") (; ";")) (declaration "int local_b4;" (primitive_type "int") (identifier "local_b4") (; ";")) (declaration "undefined4 local_b0;" (type_identifier "undefined4") (identifier "local_b0") (; ";")) (declaration "undefined4 local_ac;" (type_identifier "undefined4") (identifier "local_ac") (; ";")) (declaration "undefined4 local_a8;" (type_identifier "undefined4") (identifier "local_a8") (; ";")) (declaration "int local_a4;" (primitive_type "int") (identifier "local_a4") (; ";")) (declaration "int local_a0;" (primitive_type "int") (identifier "local_a0") (; ";")) (declaration "undefined4 local_9c;" (type_identifier "undefined4") (identifier "local_9c") (; ";")) (declaration "undefined4 local_98;" (type_identifier "undefined4") (identifier "local_98") (; ";")) (declaration "undefined4 local_94;" (type_identifier "undefined4") (identifier "local_94") (; ";")) (declaration "undefined4 local_90;" (type_identifier "undefined4") (identifier "local_90") (; ";")) (declaration "undefined4 local_8c;" (type_identifier "undefined4") (identifier "local_8c") (; ";")) (declaration "int local_88 [8];" (primitive_type "int") (array_declarator "local_88 [8]" (identifier "local_88") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "double local_68;" (primitive_type "double") (identifier "local_68") (; ";")) (declaration "undefined1 local_60;" (type_identifier "undefined1") (identifier "local_60") (; ";")) (declaration "undefined4 local_58;" (type_identifier "undefined4") (identifier "local_58") (; ";")) (declaration "int local_54;" (primitive_type "int") (identifier "local_54") (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "double local_38;" (primitive_type "double") (identifier "local_38") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined1 local_2c;" (type_identifier "undefined1") (identifier "local_2c") (; ";")) (declaration "undefined1 local_2a;" (type_identifier "undefined1") (identifier "local_2a") (; ";")) (declaration "undefined4 *local_24;" (type_identifier "undefined4") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (expression_statement "puVar12 = PTR___stack_chk_guard_00190e24;" (assignment_expression "puVar12 = PTR___stack_chk_guard_00190e24" (identifier "puVar12") (= "=") (identifier "PTR___stack_chk_guard_00190e24")) (; ";")) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_ac = 0;" (assignment_expression "local_ac = 0" (identifier "local_ac") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" (identifier "local_a8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" (identifier "local_a4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" (identifier "local_a0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_9c = 0;" (assignment_expression "local_9c = 0" (identifier "local_9c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" (identifier "local_98") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" (identifier "local_90") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" (identifier "local_8c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24 = *(undefined4 **)PTR___stack_chk_guard_00190e24;" (assignment_expression "local_24 = *(undefined4 **)PTR___stack_chk_guard_00190e24" (identifier "local_24") (= "=") (pointer_expression "*(undefined4 **)PTR___stack_chk_guard_00190e24" (* "*") (cast_expression "(undefined4 **)PTR___stack_chk_guard_00190e24" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_00190e24")))) (; ";")) (expression_statement "piVar2 = local_88;" (assignment_expression "piVar2 = local_88" (identifier "piVar2") (= "=") (identifier "local_88")) (; ";")) (expression_statement "piVar6 = param_1;" (assignment_expression "piVar6 = param_1" (identifier "piVar6") (= "=") (identifier "param_1")) (; ";")) (do_statement "do {\n    piVar7 = piVar6 + 4;\n    iVar10 = piVar6[1];\n    iVar9 = piVar6[2];\n    iVar4 = piVar6[3];\n    *piVar2 = *piVar6;\n    piVar2[1] = iVar10;\n    piVar2[2] = iVar9;\n    piVar2[3] = iVar4;\n    piVar2 = piVar2 + 4;\n    piVar6 = piVar7;\n  } while (piVar7 != param_1 + 0xc);" (do "do") (compound_statement "{\n    piVar7 = piVar6 + 4;\n    iVar10 = piVar6[1];\n    iVar9 = piVar6[2];\n    iVar4 = piVar6[3];\n    *piVar2 = *piVar6;\n    piVar2[1] = iVar10;\n    piVar2[2] = iVar9;\n    piVar2[3] = iVar4;\n    piVar2 = piVar2 + 4;\n    piVar6 = piVar7;\n  }" ({ "{") (expression_statement "piVar7 = piVar6 + 4;" (assignment_expression "piVar7 = piVar6 + 4" (identifier "piVar7") (= "=") (binary_expression "piVar6 + 4" (identifier "piVar6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar10 = piVar6[1];" (assignment_expression "iVar10 = piVar6[1]" (identifier "iVar10") (= "=") (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar9 = piVar6[2];" (assignment_expression "iVar9 = piVar6[2]" (identifier "iVar9") (= "=") (subscript_expression "piVar6[2]" (identifier "piVar6") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar4 = piVar6[3];" (assignment_expression "iVar4 = piVar6[3]" (identifier "iVar4") (= "=") (subscript_expression "piVar6[3]" (identifier "piVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*piVar2 = *piVar6;" (assignment_expression "*piVar2 = *piVar6" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "piVar2[1] = iVar10;" (assignment_expression "piVar2[1] = iVar10" (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "piVar2[2] = iVar9;" (assignment_expression "piVar2[2] = iVar9" (subscript_expression "piVar2[2]" (identifier "piVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "piVar2[3] = iVar4;" (assignment_expression "piVar2[3] = iVar4" (subscript_expression "piVar2[3]" (identifier "piVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" (identifier "piVar2") (= "=") (binary_expression "piVar2 + 4" (identifier "piVar2") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "piVar6 = piVar7;" (assignment_expression "piVar6 = piVar7" (identifier "piVar6") (= "=") (identifier "piVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar7 != param_1 + 0xc)" (( "(") (binary_expression "piVar7 != param_1 + 0xc" (identifier "piVar7") (!= "!=") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc"))) () ")")) (; ";")) (expression_statement "(*(code *)(PTR_LAB_00190ba8 + -0x35ac))(local_88);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + -0x35ac))(local_88)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + -0x35ac))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190ba8 + -0x35ac)" (* "*") (cast_expression "(code *)(PTR_LAB_00190ba8 + -0x35ac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba8 + -0x35ac)" (( "(") (binary_expression "PTR_LAB_00190ba8 + -0x35ac" (identifier "PTR_LAB_00190ba8") (+ "+") (number_literal "-0x35ac")) () ")")))) () ")")) (argument_list "(local_88)" (( "(") (identifier "local_88") () ")"))) (; ";")) (if_statement "if (local_88[2] - 0x7b3U < 0x43) {\n    local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }\n  else {\n    local_88[5] = 0;\n    local_88[6] = 0;\n    local_88[3] = 1;\n    local_88[2] = 2000;\n    local_88[4] = 1;\n    local_68 = 0.0;\n  }" (if "if") (parenthesized_expression "(local_88[2] - 0x7b3U < 0x43)" (( "(") (binary_expression "local_88[2] - 0x7b3U < 0x43" (binary_expression "local_88[2] - 0x7b3U" (subscript_expression "local_88[2]" (identifier "local_88") ([ "[") (number_literal "2") (] "]")) (- "-") (number_literal "0x7b3U")) (< "<") (number_literal "0x43")) () ")")) (compound_statement "{\n    local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));\n  }" ({ "{") (expression_statement "local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));" (assignment_expression "local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8))" (identifier "local_68") (= "=") (cast_expression "(double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8))" (( "(") (binary_expression "local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8)" (identifier "local_68") (+ "+") (pointer_expression "*(double *)(PTR_DAT_00190b94 + -0x3ab8)" (* "*") (cast_expression "(double *)(PTR_DAT_00190b94 + -0x3ab8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_00190b94 + -0x3ab8)" (( "(") (binary_expression "PTR_DAT_00190b94 + -0x3ab8" (identifier "PTR_DAT_00190b94") (+ "+") (number_literal "-0x3ab8")) () ")"))))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    local_88[5] = 0;\n    local_88[6] = 0;\n    local_88[3] = 1;\n    local_88[2] = 2000;\n    local_88[4] = 1;\n    local_68 = 0.0;\n  }" (else "else") (compound_statement "{\n    local_88[5] = 0;\n    local_88[6] = 0;\n    local_88[3] = 1;\n    local_88[2] = 2000;\n    local_88[4] = 1;\n    local_68 = 0.0;\n  }" ({ "{") (expression_statement "local_88[5] = 0;" (assignment_expression "local_88[5] = 0" (subscript_expression "local_88[5]" (identifier "local_88") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_88[6] = 0;" (assignment_expression "local_88[6] = 0" (subscript_expression "local_88[6]" (identifier "local_88") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_88[3] = 1;" (assignment_expression "local_88[3] = 1" (subscript_expression "local_88[3]" (identifier "local_88") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_88[2] = 2000;" (assignment_expression "local_88[2] = 2000" (subscript_expression "local_88[2]" (identifier "local_88") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "2000")) (; ";")) (expression_statement "local_88[4] = 1;" (assignment_expression "local_88[4] = 1" (subscript_expression "local_88[4]" (identifier "local_88") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_68 = 0.0;" (assignment_expression "local_68 = 0.0" (identifier "local_68") (= "=") (number_literal "0.0")) (; ";")) (} "}")))) (expression_statement "local_88[7] = 0;" (assignment_expression "local_88[7] = 0" (subscript_expression "local_88[7]" (identifier "local_88") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar11 = (code *)(PTR_LAB_00190ba8 + -0x3bac);" (assignment_expression "pcVar11 = (code *)(PTR_LAB_00190ba8 + -0x3bac)" (identifier "pcVar11") (= "=") (cast_expression "(code *)(PTR_LAB_00190ba8 + -0x3bac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba8 + -0x3bac)" (( "(") (binary_expression "PTR_LAB_00190ba8 + -0x3bac" (identifier "PTR_LAB_00190ba8") (+ "+") (number_literal "-0x3bac")) () ")")))) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "(*pcVar11)(local_88);" (call_expression "(*pcVar11)(local_88)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(local_88)" (( "(") (identifier "local_88") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_FUN_00190aa0)(local_88[0],local_88[1],0,1000);" (call_expression "(*(code *)PTR_FUN_00190aa0)(local_88[0],local_88[1],0,1000)" (parenthesized_expression "(*(code *)PTR_FUN_00190aa0)" (( "(") (pointer_expression "*(code *)PTR_FUN_00190aa0" (* "*") (cast_expression "(code *)PTR_FUN_00190aa0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_00190aa0"))) () ")")) (argument_list "(local_88[0],local_88[1],0,1000)" (( "(") (subscript_expression "local_88[0]" (identifier "local_88") ([ "[") (number_literal "0") (] "]")) (, ",") (subscript_expression "local_88[1]" (identifier "local_88") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "1000") () ")"))) (; ";")) (expression_statement "local_b8 = extraout_v1 + -0x18a36940;" (assignment_expression "local_b8 = extraout_v1 + -0x18a36940" (identifier "local_b8") (= "=") (binary_expression "extraout_v1 + -0x18a36940" (identifier "extraout_v1") (+ "+") (number_literal "-0x18a36940"))) (; ";")) (if_statement "if ((*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)) {\n    local_2c = 0;\n    local_4c = local_a4 + 1;\n    local_2a = 0;\n    local_50 = local_a0 + 0x76c;\n    local_38 = (double)local_b4;\n    local_48 = local_a8;\n    local_44 = local_ac;\n    local_40 = local_b0;\n    local_30 = 0x101;\n    (*pcVar11)(&local_58);\n    uVar5 = local_54 - local_88[1];\n    *param_4 = 0;\n  }\n  else {\n    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n    *param_3 = 1;\n    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);\n    uVar5 = 0;\n    *param_4 = 1;\n  }" (if "if") (parenthesized_expression "((*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0))" (( "(") (binary_expression "(*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&\n     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)" (parenthesized_expression "(*(int *)(PTR_DAT_00190948 + -0xa64) == 0)" (( "(") (binary_expression "*(int *)(PTR_DAT_00190948 + -0xa64) == 0" (pointer_expression "*(int *)(PTR_DAT_00190948 + -0xa64)" (* "*") (cast_expression "(int *)(PTR_DAT_00190948 + -0xa64)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_00190948 + -0xa64)" (( "(") (binary_expression "PTR_DAT_00190948 + -0xa64" (identifier "PTR_DAT_00190948") (+ "+") (number_literal "-0xa64")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)" (( "(") (comma_expression "iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0" (assignment_expression "iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4)" (parenthesized_expression "(*(code *)PTR_localtime_r_00190dd8)" (( "(") (pointer_expression "*(code *)PTR_localtime_r_00190dd8" (* "*") (cast_expression "(code *)PTR_localtime_r_00190dd8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_localtime_r_00190dd8"))) () ")")) (argument_list "(&local_b8,&local_b4)" (( "(") (pointer_expression "&local_b8" (& "&") (identifier "local_b8")) (, ",") (pointer_expression "&local_b4" (& "&") (identifier "local_b4")) () ")")))) (, ",") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    local_2c = 0;\n    local_4c = local_a4 + 1;\n    local_2a = 0;\n    local_50 = local_a0 + 0x76c;\n    local_38 = (double)local_b4;\n    local_48 = local_a8;\n    local_44 = local_ac;\n    local_40 = local_b0;\n    local_30 = 0x101;\n    (*pcVar11)(&local_58);\n    uVar5 = local_54 - local_88[1];\n    *param_4 = 0;\n  }" ({ "{") (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c = local_a4 + 1;" (assignment_expression "local_4c = local_a4 + 1" (identifier "local_4c") (= "=") (binary_expression "local_a4 + 1" (identifier "local_a4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_2a = 0;" (assignment_expression "local_2a = 0" (identifier "local_2a") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = local_a0 + 0x76c;" (assignment_expression "local_50 = local_a0 + 0x76c" (identifier "local_50") (= "=") (binary_expression "local_a0 + 0x76c" (identifier "local_a0") (+ "+") (number_literal "0x76c"))) (; ";")) (expression_statement "local_38 = (double)local_b4;" (assignment_expression "local_38 = (double)local_b4" (identifier "local_38") (= "=") (cast_expression "(double)local_b4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_b4"))) (; ";")) (expression_statement "local_48 = local_a8;" (assignment_expression "local_48 = local_a8" (identifier "local_48") (= "=") (identifier "local_a8")) (; ";")) (expression_statement "local_44 = local_ac;" (assignment_expression "local_44 = local_ac" (identifier "local_44") (= "=") (identifier "local_ac")) (; ";")) (expression_statement "local_40 = local_b0;" (assignment_expression "local_40 = local_b0" (identifier "local_40") (= "=") (identifier "local_b0")) (; ";")) (expression_statement "local_30 = 0x101;" (assignment_expression "local_30 = 0x101" (identifier "local_30") (= "=") (number_literal "0x101")) (; ";")) (expression_statement "(*pcVar11)(&local_58);" (call_expression "(*pcVar11)(&local_58)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(&local_58)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "uVar5 = local_54 - local_88[1];" (assignment_expression "uVar5 = local_54 - local_88[1]" (identifier "uVar5") (= "=") (binary_expression "local_54 - local_88[1]" (identifier "local_54") (- "-") (subscript_expression "local_88[1]" (identifier "local_88") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n    *param_3 = 1;\n    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);\n    uVar5 = 0;\n    *param_4 = 1;\n  }" (else "else") (compound_statement "{\n    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;\n    *param_3 = 1;\n    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);\n    uVar5 = 0;\n    *param_4 = 1;\n  }" ({ "{") (expression_statement "puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;" (assignment_expression "puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c" (identifier "puVar1") (= "=") (identifier "PTR_s_o_page_from_root____pageno_INTEG_0019095c")) (; ";")) (expression_statement "*param_3 = 1;" (assignment_expression "*param_3 = 1" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);" (call_expression "FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff)" (identifier "FUN_0007d514") (argument_list "(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff)" (( "(") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (binary_expression "puVar1 + -0x61c8" (identifier "puVar1") (+ "+") (number_literal "-0x61c8")) (, ",") (number_literal "0xffffffff") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") () ")"))) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_4 = 1;" (assignment_expression "*param_4 = 1" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "puVar8 = *(undefined4 **)puVar12;" (assignment_expression "puVar8 = *(undefined4 **)puVar12" (identifier "puVar8") (= "=") (pointer_expression "*(undefined4 **)puVar12" (* "*") (cast_expression "(undefined4 **)puVar12" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar12")))) (; ";")) (if_statement "if (local_24 == puVar8) {\n    return (ulonglong)uVar5;\n  }" (if "if") (parenthesized_expression "(local_24 == puVar8)" (( "(") (binary_expression "local_24 == puVar8" (identifier "local_24") (== "==") (identifier "puVar8")) () ")")) (compound_statement "{\n    return (ulonglong)uVar5;\n  }" ({ "{") (return_statement "return (ulonglong)uVar5;" (return "return") (cast_expression "(ulonglong)uVar5" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar5")) (; ";")) (} "}"))) (expression_statement "puVar12 = PTR___stack_chk_fail_00190df8;" (assignment_expression "puVar12 = PTR___stack_chk_fail_00190df8" (identifier "puVar12") (= "=") (identifier "PTR___stack_chk_fail_00190df8")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00190df8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00190df8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00190df8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00190df8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00190df8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00190df8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar4 = puVar8[2];" (assignment_expression "iVar4 = puVar8[2]" (identifier "iVar4") (= "=") (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {\n    uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);\n  }\n  else {\n    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);\n  }" (if "if") (parenthesized_expression "((*(ushort *)(iVar4 + 8) & 0x2000) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar4 + 8) & 0x2000) == 0" (parenthesized_expression "(*(ushort *)(iVar4 + 8) & 0x2000)" (( "(") (binary_expression "*(ushort *)(iVar4 + 8) & 0x2000" (pointer_expression "*(ushort *)(iVar4 + 8)" (* "*") (cast_expression "(ushort *)(iVar4 + 8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x2000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);\n  }" ({ "{") (expression_statement "uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);" (assignment_expression "uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0)" (identifier "uVar13") (= "=") (call_expression "FUN_0007be98(puVar8 + 1,iVar4,0)" (identifier "FUN_0007be98") (argument_list "(puVar8 + 1,iVar4,0)" (( "(") (binary_expression "puVar8 + 1" (identifier "puVar8") (+ "+") (number_literal "1")) (, ",") (identifier "iVar4") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);\n  }" (else "else") (compound_statement "{\n    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);\n  }" ({ "{") (expression_statement "uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);" (assignment_expression "uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00)" (identifier "uVar13") (= "=") (call_expression "CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00)" (identifier "CONCAT44") (argument_list "(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00)" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "extraout_v1_00") () ")")))) (; ";")) (} "}")))) (expression_statement "puVar3 = (undefined4 *)(uVar13 >> 0x20);" (assignment_expression "puVar3 = (undefined4 *)(uVar13 >> 0x20)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)(uVar13 >> 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar13 >> 0x20)" (( "(") (binary_expression "uVar13 >> 0x20" (identifier "uVar13") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (puVar3 == (undefined4 *)0x0) {\n    return uVar13;\n  }" (if "if") (parenthesized_expression "(puVar3 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar3 == (undefined4 *)0x0" (identifier "puVar3") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return uVar13;\n  }" ({ "{") (return_statement "return uVar13;" (return "return") (identifier "uVar13") (; ";")) (} "}"))) (expression_statement "iVar4 = puVar3[4];" (assignment_expression "iVar4 = puVar3[4]" (identifier "iVar4") (= "=") (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (iVar4 < 1) {\n    if (iVar4 != 0) {\n      return CONCAT44(puVar3,iVar4);\n    }\n    if (puVar3[5] == 0) {\n      return 0;\n    }\n  }" (if "if") (parenthesized_expression "(iVar4 < 1)" (( "(") (binary_expression "iVar4 < 1" (identifier "iVar4") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    if (iVar4 != 0) {\n      return CONCAT44(puVar3,iVar4);\n    }\n    if (puVar3[5] == 0) {\n      return 0;\n    }\n  }" ({ "{") (if_statement "if (iVar4 != 0) {\n      return CONCAT44(puVar3,iVar4);\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return CONCAT44(puVar3,iVar4);\n    }" ({ "{") (return_statement "return CONCAT44(puVar3,iVar4);" (return "return") (call_expression "CONCAT44(puVar3,iVar4)" (identifier "CONCAT44") (argument_list "(puVar3,iVar4)" (( "(") (identifier "puVar3") (, ",") (identifier "iVar4") () ")"))) (; ";")) (} "}"))) (if_statement "if (puVar3[5] == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(puVar3[5] == 0)" (( "(") (binary_expression "puVar3[5] == 0" (subscript_expression "puVar3[5]" (identifier "puVar3") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar4 = *(int *)(puVar12 + 0x112a94);" (assignment_expression "iVar4 = *(int *)(puVar12 + 0x112a94)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar12 + 0x112a94)" (* "*") (cast_expression "(int *)(puVar12 + 0x112a94)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 0x112a94)" (( "(") (binary_expression "puVar12 + 0x112a94" (identifier "puVar12") (+ "+") (number_literal "0x112a94")) () ")"))))) (; ";")) (if_statement "if (*(char *)(puVar3 + 6) != '\0') {\n    puVar8[5] = 1;\n    uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);\n    return uVar13;\n  }" (if "if") (parenthesized_expression "(*(char *)(puVar3 + 6) != '\0')" (( "(") (binary_expression "*(char *)(puVar3 + 6) != '\0'" (pointer_expression "*(char *)(puVar3 + 6)" (* "*") (cast_expression "(char *)(puVar3 + 6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 6)" (( "(") (binary_expression "puVar3 + 6" (identifier "puVar3") (+ "+") (number_literal "6")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    puVar8[5] = 1;\n    uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);\n    return uVar13;\n  }" ({ "{") (expression_statement "puVar8[5] = 1;" (assignment_expression "puVar8[5] = 1" (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);" (assignment_expression "uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff)" (identifier "uVar13") (= "=") (call_expression "FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff)" (identifier "FUN_0007d514") (argument_list "(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff)" (( "(") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (, ",") (binary_expression "iVar4 + -0x61b0" (identifier "iVar4") (+ "+") (number_literal "-0x61b0")) (, ",") (number_literal "0xffffffff") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") () ")")))) (; ";")) (return_statement "return uVar13;" (return "return") (identifier "uVar13") (; ";")) (} "}"))) (if_statement "if (*(char *)((int)puVar3 + 0x19) != '\0') {\n                    \n                    \n    uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return uVar13;\n  }" (if "if") (parenthesized_expression "(*(char *)((int)puVar3 + 0x19) != '\0')" (( "(") (binary_expression "*(char *)((int)puVar3 + 0x19) != '\0'" (pointer_expression "*(char *)((int)puVar3 + 0x19)" (* "*") (cast_expression "(char *)((int)puVar3 + 0x19)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar3 + 0x19)" (( "(") (binary_expression "(int)puVar3 + 0x19" (cast_expression "(int)puVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar3")) (+ "+") (number_literal "0x19")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n                    \n    uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);\n    return uVar13;\n  }" ({ "{") (expression_statement "uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);" (assignment_expression "uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1])" (identifier "uVar13") (= "=") (call_expression "(**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1])" (parenthesized_expression "(**(code **)(puVar12 + 0x112b74))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x112b74)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x112b74)" (* "*") (cast_expression "(code **)(puVar12 + 0x112b74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x112b74)" (( "(") (binary_expression "puVar12 + 0x112b74" (identifier "puVar12") (+ "+") (number_literal "0x112b74")) () ")"))))) () ")")) (argument_list "(puVar8,iVar4,*puVar3,puVar3[1])" (( "(") (identifier "puVar8") (, ",") (identifier "iVar4") (, ",") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (, ",") (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (return_statement "return uVar13;" (return "return") (identifier "uVar13") (; ";")) (} "}"))) (expression_statement "uVar13 = (**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);" (assignment_expression "uVar13 = (**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3])" (identifier "uVar13") (= "=") (call_expression "(**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3])" (parenthesized_expression "(**(code **)(puVar12 + 0x112afc))" (( "(") (pointer_expression "**(code **)(puVar12 + 0x112afc)" (* "*") (pointer_expression "*(code **)(puVar12 + 0x112afc)" (* "*") (cast_expression "(code **)(puVar12 + 0x112afc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0x112afc)" (( "(") (binary_expression "puVar12 + 0x112afc" (identifier "puVar12") (+ "+") (number_literal "0x112afc")) () ")"))))) () ")")) (argument_list "(puVar8,iVar4,puVar3[2],puVar3[3])" (( "(") (identifier "puVar8") (, ",") (identifier "iVar4") (, ",") (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (, ",") (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) () ")")))) (; ";")) (return_statement "return uVar13;" (return "return") (identifier "uVar13") (; ";")) (} "}")))

/* DWARF original prototype: sqlite3_int64 localtimeOffset(DateTime * p, sqlite3_context * pCtx, int
   * pRc, sqlite3_context * pCtx) */

type_1 function_1(type_2 *var_1,type_3 *pCtx,int *pRc,type_3 *pCtx_1)

{
  type_4 *var_9;
  type_2 *pDVar2;
  type_5 *var_10;
  int var_6;
  int var_4;
  type_6 extraout_v1_00;
  type_6 var_13;
  type_2 *pDVar6;
  int *piVar7;
  type_5 *var_11;
  int iVar9;
  type_7 *pcVar10;
  type_4 *var_14;
  type_1 sVar12;
  type_8 t;
  type_9 sLocal;
  type_2 x;
  type_2 y;
  
  var_14 = PTR___stack_chk_guard_00190e24;
  sLocal.tm_sec = 0;
  sLocal.tm_min = 0;
  sLocal.tm_hour = 0;
  sLocal.tm_mday = 0;
  sLocal.tm_mon = 0;
  sLocal.tm_year = 0;
  sLocal.tm_wday = 0;
  sLocal.tm_yday = 0;
  sLocal.tm_isdst = 0;
  sLocal.tm_gmtoff = 0;
  sLocal.tm_zone = (char *)0x0;
  var_10 = *(type_5 **)PTR___stack_chk_guard_00190e24;
  pDVar2 = &x;
  pDVar6 = var_1;
  do {
    piVar7 = &pDVar6->D;
    sVar12 = pDVar6->iJD;
    iVar9 = pDVar6->Y;
    var_6 = pDVar6->M;
    *(type_5 *)&pDVar2->iJD = *(type_5 *)&pDVar6->iJD;
    *(int *)((int)&pDVar2->iJD + 4) = (int)sVar12;
    pDVar2->Y = iVar9;
    pDVar2->M = var_6;
    pDVar2 = (type_2 *)&pDVar2->D;
    pDVar6 = (type_2 *)piVar7;
  } while ((type_2 *)piVar7 != var_1 + 1);
  (*(type_7 *)(var_2 + -0x35ac))(&x);
  if (x.Y - 0x7b3U < 0x43) {
    x.s = (double)(int)(x.s + *(double *)(var_3 + -0x3ab8));
  }
  else {
    x.h = 0;
    x.m = 0;
    x.M = 1;
    x.Y = 2000;
    x.D = 1;
    x.s = 0.0;
  }
  x.tz = 0;
  pcVar10 = (type_7 *)(var_2 + -0x3bac);
  x.validJD = '\0';
  (*pcVar10)(&x);
  (*(type_7 *)PTR___divdi3_00190aa0)(x.iJD._0_4_,x.iJD._4_4_,0,1000);
  t = var_4 + -0x18a36940;
  if ((*(int *)(var_5 + -0xa64) == 0) &&
     (var_6 = (*(type_7 *)PTR_localtime_r_00190dd8)(&t,&sLocal), var_6 != 0)) {
    y.validTZ = '\0';
    y.M = sLocal.tm_mon + 1;
    y.isError = '\0';
    y.Y = sLocal.tm_year + 0x76c;
    y.s = (double)sLocal.tm_sec;
    y.D = sLocal.tm_mday;
    y.h = sLocal.tm_hour;
    y.m = sLocal.tm_min;
    y.validJD = '\0';
    y.rawS = '\0';
    y.validYMD = '\x01';
    y.validHMS = '\x01';
    (*pcVar10)(&y);
    pCtx_1->pOut = (type_10 *)0x0;
    sVar12 = var_7(y.iJD._4_4_ < y.iJD._4_4_ - x.iJD._4_4_,x.iJD._0_4_);
    return sVar12;
  }
  var_9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;
  *pRc = 1;
  var_8(pCtx->pOut,var_9 + -0x61c8,-1,'\x01',(type_11 *)0xffffffff);
  pCtx_1->pOut = (type_10 *)0x1;
  var_11 = *(type_5 **)var_14;
  if (var_10 == var_11) {
    return 0;
  }
  var_14 = PTR___stack_chk_fail_00190df8;
  (*(type_7 *)PTR___stack_chk_fail_00190df8)();
  var_6 = var_11[2];
  var_13 = extraout_v1_00;
  if ((*(type_12 *)(var_6 + 8) & 0x2000) == 0) {
    var_10 = (type_5 *)
             var_12((type_3 *)(var_11 + 1),var_6,(type_3 *)0x0);
  }
  else {
    var_10 = *(type_5 **)(var_6 + 0x10);
  }
  if (var_10 == (type_5 *)0x0) goto LAB_0007df78;
  var_13 = var_10[4];
  if ((int)var_13 < 1) {
    if (var_13 != 0) goto LAB_0007df78;
    if (var_10[5] == 0) {
      var_13 = 0;
      goto LAB_0007df78;
    }
  }
  var_13 = (type_6)*(type_13 *)(var_10 + 6);
  var_6 = *(int *)(var_14 + 0x112a94);
  if (var_13 == 0) {
    if (*(char *)((int)var_10 + 0x19) == '\0') {
                    /* WARNING: Could not recover jumptable at 0x0007dfcc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      sVar12 = (**(type_7 **)(var_14 + 0x112afc))(var_11,var_6,var_10[2],var_10[3]);
      return sVar12;
    }
                    /* WARNING: Could not recover jumptable at 0x0007df3c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    sVar12 = (**(type_7 **)(var_14 + 0x112b74))(var_11,var_6,*var_10,var_10[1]);
    return sVar12;
  }
  var_11[5] = 1;
  var_10 = (type_5 *)
           var_8
                     ((type_10 *)*var_11,(char *)(var_6 + -0x61b0),-1,'\x01',
                      (type_11 *)0xffffffff);
LAB_0007df78:
  return var_15(var_10,var_13);
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (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 (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_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))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))) (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (number_literal))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)) (subscript_expression argument: (identifier) index: (number_literal)))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)))))) (return_statement (identifier)))))

ulonglong MASKED(int *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 *param_4)

{
  undefined *puVar1;
  int *piVar2;
  undefined4 *puVar3;
  int iVar4;
  int extraout_v1;
  uint uVar5;
  undefined4 extraout_v1_00;
  int *piVar6;
  int *piVar7;
  undefined4 *puVar8;
  int iVar9;
  int iVar10;
  code *pcVar11;
  undefined *puVar12;
  ulonglong uVar13;
  int local_b8;
  int local_b4;
  undefined4 local_b0;
  undefined4 local_ac;
  undefined4 local_a8;
  int local_a4;
  int local_a0;
  undefined4 local_9c;
  undefined4 local_98;
  undefined4 local_94;
  undefined4 local_90;
  undefined4 local_8c;
  int local_88 [8];
  double local_68;
  undefined1 local_60;
  undefined4 local_58;
  int local_54;
  int local_50;
  int local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  double local_38;
  undefined4 local_30;
  undefined1 local_2c;
  undefined1 local_2a;
  undefined4 *local_24;
  
  puVar12 = PTR___stack_chk_guard_00190e24;
  local_b4 = 0;
  local_b0 = 0;
  local_ac = 0;
  local_a8 = 0;
  local_a4 = 0;
  local_a0 = 0;
  local_9c = 0;
  local_98 = 0;
  local_94 = 0;
  local_90 = 0;
  local_8c = 0;
  local_24 = *(undefined4 **)PTR___stack_chk_guard_00190e24;
  piVar2 = local_88;
  piVar6 = param_1;
  do {
    piVar7 = piVar6 + 4;
    iVar10 = piVar6[1];
    iVar9 = piVar6[2];
    iVar4 = piVar6[3];
    *piVar2 = *piVar6;
    piVar2[1] = iVar10;
    piVar2[2] = iVar9;
    piVar2[3] = iVar4;
    piVar2 = piVar2 + 4;
    piVar6 = piVar7;
  } while (piVar7 != param_1 + 0xc);
  (*(code *)(PTR_LAB_00190ba8 + -0x35ac))(local_88);
  if (local_88[2] - 0x7b3U < 0x43) {
    local_68 = (double)(int)(local_68 + *(double *)(PTR_DAT_00190b94 + -0x3ab8));
  }
  else {
    local_88[5] = 0;
    local_88[6] = 0;
    local_88[3] = 1;
    local_88[2] = 2000;
    local_88[4] = 1;
    local_68 = 0.0;
  }
  local_88[7] = 0;
  pcVar11 = (code *)(PTR_LAB_00190ba8 + -0x3bac);
  local_60 = 0;
  (*pcVar11)(local_88);
  (*(code *)PTR_FUN_00190aa0)(local_88[0],local_88[1],0,1000);
  local_b8 = extraout_v1 + -0x18a36940;
  if ((*(int *)(PTR_DAT_00190948 + -0xa64) == 0) &&
     (iVar4 = (*(code *)PTR_localtime_r_00190dd8)(&local_b8,&local_b4), iVar4 != 0)) {
    local_2c = 0;
    local_4c = local_a4 + 1;
    local_2a = 0;
    local_50 = local_a0 + 0x76c;
    local_38 = (double)local_b4;
    local_48 = local_a8;
    local_44 = local_ac;
    local_40 = local_b0;
    local_30 = 0x101;
    (*pcVar11)(&local_58);
    uVar5 = local_54 - local_88[1];
    *param_4 = 0;
  }
  else {
    puVar1 = PTR_s_o_page_from_root____pageno_INTEG_0019095c;
    *param_3 = 1;
    FUN_0007d514(*param_2,puVar1 + -0x61c8,0xffffffff,1,0xffffffff);
    uVar5 = 0;
    *param_4 = 1;
  }
  puVar8 = *(undefined4 **)puVar12;
  if (local_24 == puVar8) {
    return (ulonglong)uVar5;
  }
  puVar12 = PTR___stack_chk_fail_00190df8;
  (*(code *)PTR___stack_chk_fail_00190df8)();
  iVar4 = puVar8[2];
  if ((*(ushort *)(iVar4 + 8) & 0x2000) == 0) {
    uVar13 = FUN_0007be98(puVar8 + 1,iVar4,0);
  }
  else {
    uVar13 = CONCAT44(*(undefined4 *)(iVar4 + 0x10),extraout_v1_00);
  }
  puVar3 = (undefined4 *)(uVar13 >> 0x20);
  if (puVar3 == (undefined4 *)0x0) {
    return uVar13;
  }
  iVar4 = puVar3[4];
  if (iVar4 < 1) {
    if (iVar4 != 0) {
      return CONCAT44(puVar3,iVar4);
    }
    if (puVar3[5] == 0) {
      return 0;
    }
  }
  iVar4 = *(int *)(puVar12 + 0x112a94);
  if (*(char *)(puVar3 + 6) != '\0') {
    puVar8[5] = 1;
    uVar13 = FUN_0007d514(*puVar8,iVar4 + -0x61b0,0xffffffff,1,0xffffffff);
    return uVar13;
  }
  if (*(char *)((int)puVar3 + 0x19) != '\0') {
                    /* WARNING: Could not recover jumptable at 0x0007df3c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar13 = (**(code **)(puVar12 + 0x112b74))(puVar8,iVar4,*puVar3,puVar3[1]);
    return uVar13;
  }
                    /* WARNING: Could not recover jumptable at 0x0007dfcc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  uVar13 = (**(code **)(puVar12 + 0x112afc))(puVar8,iVar4,puVar3[2],puVar3[3]);
  return uVar13;
}

