
void ptrmapPutOvflPtr(MemPage *pPage,MemPage *pSrc,u8 *pCell,int *pRC)

{
  ushort uVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  BtShared *pBt;
  BtShared *pBt_00;
  u8 *puVar5;
  MemPage *pPage_00;
  CellInfo *pCVar6;
  u8 *unaff_s0;
  int iVar7;
  int *piVar8;
  MemPage *unaff_s2;
  int *unaff_s3;
  int *piVar9;
  int iVar10;
  u8 *puVar11;
  sqlite3 *parent;
  int in_t9;
  code *pcVar12;
  _func_void_void_ptr *pCell_00;
  int iStack_88;
  int iStack_84;
  u8 *puStack_80;
  int *piStack_7c;
  MemPage *pMStack_78;
  int *piStack_74;
  MemPage *pMStack_70;
  CellInfo info;
  
  piVar8 = *(int **)(in_t9 + 0x7760c);
  iVar4 = *piVar8;
  pBt_00 = (BtShared *)pPage;
  pPage_00 = pSrc;
  pCVar6 = (CellInfo *)pCell;
  puStack_80 = unaff_s0;
  pMStack_78 = unaff_s2;
  piStack_74 = unaff_s3;
  if (*pRC == 0) {
    pCVar6 = &info;
    pPage_00 = (MemPage *)pCell;
    (*pPage->xParseCell)(pPage,pCell,pCVar6);
    puStack_80 = pCell;
    pMStack_78 = pPage;
    piStack_74 = pRC;
    if (info.nLocal < info.nPayload) {
      if ((*(u8 **)pSrc < pCell) || (pCell + info.nLocal <= *(u8 **)pSrc)) {
        pCVar6 = (CellInfo *)0x3;
        pBt_00 = pPage->pBt;
        pPage_00 = *(MemPage **)(pCell + info.nSize + -4);
        ptrmapPut(pBt_00,(Pgno)pPage_00,'\x03',pPage->pgno,pRC);
        puStack_80 = pCell + info.nSize;
      }
      else {
        pBt_00 = (BtShared *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);
        iVar7 = (*(code *)(*(int *)(&LAB_0007738c + in_t9) + 0x4904))();
        *pRC = iVar7;
      }
    }
  }
  if (iVar4 == *piVar8) {
    return;
  }
  pcVar12 = *(code **)(in_t9 + 0x775e4);
  (*pcVar12)();
  pBt = (BtShared *)pBt_00->pSchema;
  piVar9 = *(int **)(pcVar12 + 0x774f8);
  parent = pBt_00->db;
  iStack_84 = *piVar9;
  piStack_7c = piVar8;
  pMStack_70 = pSrc;
  if (*(char *)&pBt_00->pPager == '\0') {
    iStack_88 = (*(code *)(*(int *)(pcVar12 + 0x77278) + 0x4d34))();
    if (iStack_88 != 0) goto LAB_0007e19c;
    uVar1 = pBt_00->btsFlags;
  }
  else {
    iStack_88 = 0;
    uVar1 = pBt_00->btsFlags;
  }
  iVar4 = *(int *)(pcVar12 + 0x77284);
  if (uVar1 != 0) {
    iVar7 = (uint)uVar1 << 1;
    iVar10 = 0;
    do {
      while( true ) {
        pCell_00 = pBt_00->xFreeSchema +
                   (*(ushort *)((int)&pBt_00->pHasContent->iSize + iVar10) & pBt_00->maxLocal);
        pPage_00 = (MemPage *)&pBt_00->mutex;
        ptrmapPutOvflPtr((MemPage *)pBt_00,(MemPage *)&pBt_00->mutex,(u8 *)pCell_00,&iStack_88);
        if (*(char *)&pBt_00->pCursor != '\0') break;
        uVar3 = (uint)pCell_00 & 3;
        iVar10 = iVar10 + 2;
        uVar2 = (uint)(pCell_00 + 3) & 3;
        pPage_00 = (MemPage *)
                   ((*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |
                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8) & -1 << (uVar2 + 1) * 8 |
                   *(uint *)(pCell_00 + 3 + -uVar2) >> (3 - uVar2) * 8);
        (*(code *)(iVar4 + -0x229c))(pBt,pPage_00,5,parent,&iStack_88);
        if (iVar10 == iVar7) goto LAB_0007e18c;
      }
      iVar10 = iVar10 + 2;
    } while (iVar10 != iVar7);
  }
LAB_0007e18c:
  pCVar6 = (CellInfo *)&DAT_00000005;
  if (*(char *)&pBt_00->pCursor == '\0') {
    pPage_00 = *(MemPage **)(pBt_00->xFreeSchema + *(byte *)((int)&pBt_00->pCursor + 1) + 8);
    ptrmapPut(pBt,(Pgno)pPage_00,'\x05',(Pgno)parent,&iStack_88);
  }
LAB_0007e19c:
  if (iStack_84 != *piVar9) {
    pcVar12 = *(code **)(pcVar12 + 0x774d0);
    iVar4 = iStack_84;
    (*pcVar12)();
    iVar7 = *(int *)(iVar4 + 0x34);
    puVar5 = pPage_00->aData;
    puVar11 = puVar5;
    if (pPage_00->pgno == 1) {
      puVar11 = puVar5 + 100;
    }
    iVar10 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);
    uVar3 = (uint)*(ushort *)(iVar10 + 5);
    (**(code **)(pcVar12 + 0x77330))
              (puVar5 + uVar3,*(int *)(iVar4 + 0x38) + uVar3,*(int *)(iVar7 + 0x28) - uVar3);
    (**(code **)(pcVar12 + 0x77330))
              (puVar11,iVar10,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12))
    ;
    iVar4 = *(int *)(pcVar12 + 0x770ac);
    pPage_00->isInit = '\0';
    iVar4 = (*(code *)(iVar4 + 0x4d34))(pPage_00);
    if ((iVar4 == 0) &&
       (iVar4 = (*(code *)(*(int *)(pcVar12 + 0x770ac) + 0x5cac))(pPage_00), iVar4 == 0)) {
      if (*(char *)(iVar7 + 0x11) != '\0') {
        iVar4 = setChildPtrmaps(pPage_00);
        *(int *)&pCVar6->nKey = iVar4;
      }
    }
    else {
      *(int *)&pCVar6->nKey = iVar4;
    }
    return;
  }
  return;
}



uint FUN_0007df5c(char *param_1,uint *param_2,uint *param_3,int *param_4)

{
  ushort uVar1;
  undefined *puVar2;
  uint uVar3;
  int iVar4;
  uint uVar5;
  undefined4 uVar6;
  char *pcVar7;
  uint uVar8;
  uint *puVar9;
  uint *puVar10;
  uint *unaff_s0;
  int iVar11;
  char *unaff_s2;
  int *unaff_s3;
  int *piVar12;
  int iVar13;
  undefined4 uVar14;
  undefined *puVar15;
  code *pcVar16;
  uint uStack_88;
  int iStack_84;
  uint *puStack_80;
  undefined *puStack_7c;
  char *pcStack_78;
  int *piStack_74;
  uint *puStack_70;
  uint auStack_38 [3];
  uint local_2c;
  ushort local_28;
  ushort local_26;
  uint local_1c;
  
  puVar2 = PTR___stack_chk_guard_000f5568;
  local_1c = *(uint *)PTR___stack_chk_guard_000f5568;
  pcVar7 = param_1;
  puVar9 = param_2;
  puVar10 = param_3;
  puStack_80 = unaff_s0;
  pcStack_78 = unaff_s2;
  piStack_74 = unaff_s3;
  if (*param_4 == 0) {
    puVar10 = auStack_38;
    puVar9 = param_3;
    (**(code **)(param_1 + 0x50))();
    puStack_80 = param_3;
    pcStack_78 = param_1;
    piStack_74 = param_4;
    if (local_28 < local_2c) {
      if (((uint *)*param_2 < param_3) ||
         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {
        puVar10 = (uint *)0x3;
        pcVar7 = *(char **)(param_1 + 0x34);
        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];
        FUN_0007dd64();
        puStack_80 = (uint *)((int)param_3 + (uint)local_26);
      }
      else {
        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);
        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();
        *param_4 = iVar4;
      }
    }
  }
  uVar3 = *(uint *)puVar2;
  if (local_1c == uVar3) {
    return uVar3;
  }
  puVar15 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  uVar6 = *(undefined4 *)(pcVar7 + 0x34);
  puStack_7c = puVar2;
  piVar12 = *(int **)(puVar15 + 0x774f8);
  uVar14 = *(undefined4 *)(pcVar7 + 4);
  iStack_84 = *piVar12;
  puStack_70 = param_2;
  if (*pcVar7 == '\0') {
    uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();
    if (uStack_88 != 0) goto LAB_0007e19c;
    uVar1 = *(ushort *)(pcVar7 + 0x18);
  }
  else {
    uStack_88 = 0;
    uVar1 = *(ushort *)(pcVar7 + 0x18);
  }
  iVar4 = *(int *)(puVar15 + 0x77284);
  if (uVar1 != 0) {
    iVar11 = (uint)uVar1 << 1;
    iVar13 = 0;
    do {
      while( true ) {
        uVar3 = *(int *)(pcVar7 + 0x38) +
                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));
        puVar9 = (uint *)(pcVar7 + 0x3c);
        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);
        if (pcVar7[8] != '\0') break;
        uVar8 = uVar3 & 3;
        iVar13 = iVar13 + 2;
        uVar5 = uVar3 + 3 & 3;
        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |
                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |
                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);
        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);
        if (iVar13 == iVar11) goto LAB_0007e18c;
      }
      iVar13 = iVar13 + 2;
    } while (iVar13 != iVar11);
  }
LAB_0007e18c:
  puVar10 = (uint *)&DAT_00000005;
  if (pcVar7[8] == '\0') {
    puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);
    FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);
  }
LAB_0007e19c:
  if (iStack_84 != *piVar12) {
    pcVar16 = *(code **)(puVar15 + 0x774d0);
    iVar4 = iStack_84;
    (*pcVar16)();
    iVar11 = *(int *)(iVar4 + 0x34);
    uVar8 = puVar9[0xe];
    uVar3 = uVar8;
    if (puVar9[1] == 1) {
      uVar3 = uVar8 + 100;
    }
    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);
    uVar5 = (uint)*(ushort *)(iVar13 + 5);
    (**(code **)(pcVar16 + 0x77330))
              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);
    (**(code **)(pcVar16 + 0x77330))
              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));
    iVar4 = *(int *)(pcVar16 + 0x770ac);
    *(char *)puVar9 = '\0';
    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);
    if ((uVar3 == 0) &&
       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {
      uVar3 = (uint)*(byte *)(iVar11 + 0x11);
      if (uVar3 != 0) {
        uVar3 = FUN_0007e070(puVar9);
        *puVar10 = uVar3;
      }
    }
    else {
      *puVar10 = uVar3;
    }
    return uVar3;
  }
  return uStack_88;
}


lui gp,0x8
addiu gp,gp,-0xcbc
addu gp,gp,t9
addiu sp,sp,-0x58
lw v0,0x0(a3)
sw s1,0x44(sp)
lw s1,-0x7d38(gp)
sw gp,0x18(sp)
sw ra,0x54(sp)
sw s4,0x50(sp)
sw s3,0x4c(sp)
sw s2,0x48(sp)
sw s0,0x40(sp)
lw v1,0x0(s1)
sw v1,0x3c(sp)
bne v0,zero,0x0007e01c
_or s4,a1,zero
lw t9,0x50(a0)
or s0,a2,zero
addiu a2,sp,0x20
or a1,s0,zero
or s3,a3,zero
jalr t9
_or s2,a0,zero
lhu v1,0x30(sp)
lw v0,0x2c(sp)
sltu v0,v1,v0
beq v0,zero,0x0007e01c
_lw gp,0x18(sp)
lw v0,0x0(s4)
sltu a0,v0,s0
bne a0,zero,0x0007dfec
_addu v1,s0,v1
sltu v1,v0,v1
bne v1,zero,0x0007e048
_lw t9,-0x7fb8(gp)
lhu v0,0x32(sp)
li a2,0x3
lw a3,0x4(s2)
lw a0,0x34(s2)
addu s0,s0,v0
lw t9,-0x7fac(gp)
sw s3,0x10(sp)
lwl a1,-0x4(s0)
addiu t9,t9,-0x229c
bal 0x0007dd64
_lwr a1,-0x1(s0)
lw gp,0x18(sp)
lw v1,0x3c(sp)
lw v0,0x0(s1)
bne v1,v0,0x0007e064
_lw ra,0x54(sp)
lw s4,0x50(sp)
lw s3,0x4c(sp)
lw s2,0x48(sp)
lw s1,0x44(sp)
lw s0,0x40(sp)
jr ra
_addiu sp,sp,0x58
lui a0,0x1
addiu t9,t9,0x4904
jalr t9
_addiu a0,a0,0x14d
lw gp,0x18(sp)
b 0x0007e01c
_sw v0,0x0(s3)
lw t9,-0x7d60(gp)
jalr t9
_nop
(translation_unit "uint FUN_0007df5c(char *param_1,uint *param_2,uint *param_3,int *param_4)\n\n{\n  ushort uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  uint *unaff_s0;\n  int iVar11;\n  char *unaff_s2;\n  int *unaff_s3;\n  int *piVar12;\n  int iVar13;\n  undefined4 uVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  uint uStack_88;\n  int iStack_84;\n  uint *puStack_80;\n  undefined *puStack_7c;\n  char *pcStack_78;\n  int *piStack_74;\n  uint *puStack_70;\n  uint auStack_38 [3];\n  uint local_2c;\n  ushort local_28;\n  ushort local_26;\n  uint local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_1c = *(uint *)PTR___stack_chk_guard_000f5568;\n  pcVar7 = param_1;\n  puVar9 = param_2;\n  puVar10 = param_3;\n  puStack_80 = unaff_s0;\n  pcStack_78 = unaff_s2;\n  piStack_74 = unaff_s3;\n  if (*param_4 == 0) {\n    puVar10 = auStack_38;\n    puVar9 = param_3;\n    (**(code **)(param_1 + 0x50))();\n    puStack_80 = param_3;\n    pcStack_78 = param_1;\n    piStack_74 = param_4;\n    if (local_28 < local_2c) {\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }\n  }\n  uVar3 = *(uint *)puVar2;\n  if (local_1c == uVar3) {\n    return uVar3;\n  }\n  puVar15 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  uVar6 = *(undefined4 *)(pcVar7 + 0x34);\n  puStack_7c = puVar2;\n  piVar12 = *(int **)(puVar15 + 0x774f8);\n  uVar14 = *(undefined4 *)(pcVar7 + 4);\n  iStack_84 = *piVar12;\n  puStack_70 = param_2;\n  if (*pcVar7 == '\0') {\n    uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();\n    if (uStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  else {\n    uStack_88 = 0;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  iVar4 = *(int *)(puVar15 + 0x77284);\n  if (uVar1 != 0) {\n    iVar11 = (uint)uVar1 << 1;\n    iVar13 = 0;\n    do {\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    } while (iVar13 != iVar11);\n  }\nLAB_0007e18c:\n  puVar10 = (uint *)&DAT_00000005;\n  if (pcVar7[8] == '\0') {\n    puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);\n    FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);\n  }\nLAB_0007e19c:\n  if (iStack_84 != *piVar12) {\n    pcVar16 = *(code **)(puVar15 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar16)();\n    iVar11 = *(int *)(iVar4 + 0x34);\n    uVar8 = puVar9[0xe];\n    uVar3 = uVar8;\n    if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }\n    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar5 = (uint)*(ushort *)(iVar13 + 5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));\n    iVar4 = *(int *)(pcVar16 + 0x770ac);\n    *(char *)puVar9 = '\0';\n    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);\n    if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }\n    return uVar3;\n  }\n  return uStack_88;\n}\n\n" (function_definition "uint FUN_0007df5c(char *param_1,uint *param_2,uint *param_3,int *param_4)\n\n{\n  ushort uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  uint *unaff_s0;\n  int iVar11;\n  char *unaff_s2;\n  int *unaff_s3;\n  int *piVar12;\n  int iVar13;\n  undefined4 uVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  uint uStack_88;\n  int iStack_84;\n  uint *puStack_80;\n  undefined *puStack_7c;\n  char *pcStack_78;\n  int *piStack_74;\n  uint *puStack_70;\n  uint auStack_38 [3];\n  uint local_2c;\n  ushort local_28;\n  ushort local_26;\n  uint local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_1c = *(uint *)PTR___stack_chk_guard_000f5568;\n  pcVar7 = param_1;\n  puVar9 = param_2;\n  puVar10 = param_3;\n  puStack_80 = unaff_s0;\n  pcStack_78 = unaff_s2;\n  piStack_74 = unaff_s3;\n  if (*param_4 == 0) {\n    puVar10 = auStack_38;\n    puVar9 = param_3;\n    (**(code **)(param_1 + 0x50))();\n    puStack_80 = param_3;\n    pcStack_78 = param_1;\n    piStack_74 = param_4;\n    if (local_28 < local_2c) {\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }\n  }\n  uVar3 = *(uint *)puVar2;\n  if (local_1c == uVar3) {\n    return uVar3;\n  }\n  puVar15 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  uVar6 = *(undefined4 *)(pcVar7 + 0x34);\n  puStack_7c = puVar2;\n  piVar12 = *(int **)(puVar15 + 0x774f8);\n  uVar14 = *(undefined4 *)(pcVar7 + 4);\n  iStack_84 = *piVar12;\n  puStack_70 = param_2;\n  if (*pcVar7 == '\0') {\n    uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();\n    if (uStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  else {\n    uStack_88 = 0;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  iVar4 = *(int *)(puVar15 + 0x77284);\n  if (uVar1 != 0) {\n    iVar11 = (uint)uVar1 << 1;\n    iVar13 = 0;\n    do {\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    } while (iVar13 != iVar11);\n  }\nLAB_0007e18c:\n  puVar10 = (uint *)&DAT_00000005;\n  if (pcVar7[8] == '\0') {\n    puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);\n    FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);\n  }\nLAB_0007e19c:\n  if (iStack_84 != *piVar12) {\n    pcVar16 = *(code **)(puVar15 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar16)();\n    iVar11 = *(int *)(iVar4 + 0x34);\n    uVar8 = puVar9[0xe];\n    uVar3 = uVar8;\n    if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }\n    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar5 = (uint)*(ushort *)(iVar13 + 5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));\n    iVar4 = *(int *)(pcVar16 + 0x770ac);\n    *(char *)puVar9 = '\0';\n    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);\n    if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }\n    return uVar3;\n  }\n  return uStack_88;\n}" type_identifier (function_declarator "FUN_0007df5c(char *param_1,uint *param_2,uint *param_3,int *param_4)" identifier (parameter_list "(char *param_1,uint *param_2,uint *param_3,int *param_4)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  uint *unaff_s0;\n  int iVar11;\n  char *unaff_s2;\n  int *unaff_s3;\n  int *piVar12;\n  int iVar13;\n  undefined4 uVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  uint uStack_88;\n  int iStack_84;\n  uint *puStack_80;\n  undefined *puStack_7c;\n  char *pcStack_78;\n  int *piStack_74;\n  uint *puStack_70;\n  uint auStack_38 [3];\n  uint local_2c;\n  ushort local_28;\n  ushort local_26;\n  uint local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_1c = *(uint *)PTR___stack_chk_guard_000f5568;\n  pcVar7 = param_1;\n  puVar9 = param_2;\n  puVar10 = param_3;\n  puStack_80 = unaff_s0;\n  pcStack_78 = unaff_s2;\n  piStack_74 = unaff_s3;\n  if (*param_4 == 0) {\n    puVar10 = auStack_38;\n    puVar9 = param_3;\n    (**(code **)(param_1 + 0x50))();\n    puStack_80 = param_3;\n    pcStack_78 = param_1;\n    piStack_74 = param_4;\n    if (local_28 < local_2c) {\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }\n  }\n  uVar3 = *(uint *)puVar2;\n  if (local_1c == uVar3) {\n    return uVar3;\n  }\n  puVar15 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  uVar6 = *(undefined4 *)(pcVar7 + 0x34);\n  puStack_7c = puVar2;\n  piVar12 = *(int **)(puVar15 + 0x774f8);\n  uVar14 = *(undefined4 *)(pcVar7 + 4);\n  iStack_84 = *piVar12;\n  puStack_70 = param_2;\n  if (*pcVar7 == '\0') {\n    uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();\n    if (uStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  else {\n    uStack_88 = 0;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  iVar4 = *(int *)(puVar15 + 0x77284);\n  if (uVar1 != 0) {\n    iVar11 = (uint)uVar1 << 1;\n    iVar13 = 0;\n    do {\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    } while (iVar13 != iVar11);\n  }\nLAB_0007e18c:\n  puVar10 = (uint *)&DAT_00000005;\n  if (pcVar7[8] == '\0') {\n    puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);\n    FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);\n  }\nLAB_0007e19c:\n  if (iStack_84 != *piVar12) {\n    pcVar16 = *(code **)(puVar15 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar16)();\n    iVar11 = *(int *)(iVar4 + 0x34);\n    uVar8 = puVar9[0xe];\n    uVar3 = uVar8;\n    if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }\n    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar5 = (uint)*(ushort *)(iVar13 + 5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));\n    iVar4 = *(int *)(pcVar16 + 0x770ac);\n    *(char *)puVar9 = '\0';\n    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);\n    if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }\n    return uVar3;\n  }\n  return uStack_88;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "char *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "int *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint uStack_88;" type_identifier identifier ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "uint *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "undefined *puStack_7c;" type_identifier (pointer_declarator "*puStack_7c" * identifier) ;) (declaration "char *pcStack_78;" primitive_type (pointer_declarator "*pcStack_78" * identifier) ;) (declaration "int *piStack_74;" primitive_type (pointer_declarator "*piStack_74" * identifier) ;) (declaration "uint *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "uint auStack_38 [3];" type_identifier (array_declarator "auStack_38 [3]" identifier [ number_literal ]) ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "ushort local_28;" type_identifier identifier ;) (declaration "ushort local_26;" type_identifier identifier ;) (declaration "uint local_1c;" type_identifier identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "local_1c = *(uint *)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_1c = *(uint *)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(uint *)PTR___stack_chk_guard_000f5568" * (cast_expression "(uint *)PTR___stack_chk_guard_000f5568" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar7 = param_1;" (assignment_expression "pcVar7 = param_1" identifier = identifier) ;) (expression_statement "puVar9 = param_2;" (assignment_expression "puVar9 = param_2" identifier = identifier) ;) (expression_statement "puVar10 = param_3;" (assignment_expression "puVar10 = param_3" identifier = identifier) ;) (expression_statement "puStack_80 = unaff_s0;" (assignment_expression "puStack_80 = unaff_s0" identifier = identifier) ;) (expression_statement "pcStack_78 = unaff_s2;" (assignment_expression "pcStack_78 = unaff_s2" identifier = identifier) ;) (expression_statement "piStack_74 = unaff_s3;" (assignment_expression "piStack_74 = unaff_s3" identifier = identifier) ;) (if_statement "if (*param_4 == 0) {\n    puVar10 = auStack_38;\n    puVar9 = param_3;\n    (**(code **)(param_1 + 0x50))();\n    puStack_80 = param_3;\n    pcStack_78 = param_1;\n    piStack_74 = param_4;\n    if (local_28 < local_2c) {\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }\n  }" if (parenthesized_expression "(*param_4 == 0)" ( (binary_expression "*param_4 == 0" (pointer_expression "*param_4" * identifier) == number_literal) )) (compound_statement "{\n    puVar10 = auStack_38;\n    puVar9 = param_3;\n    (**(code **)(param_1 + 0x50))();\n    puStack_80 = param_3;\n    pcStack_78 = param_1;\n    piStack_74 = param_4;\n    if (local_28 < local_2c) {\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }\n  }" { (expression_statement "puVar10 = auStack_38;" (assignment_expression "puVar10 = auStack_38" identifier = identifier) ;) (expression_statement "puVar9 = param_3;" (assignment_expression "puVar9 = param_3" identifier = identifier) ;) (expression_statement "(**(code **)(param_1 + 0x50))();" (call_expression "(**(code **)(param_1 + 0x50))()" (parenthesized_expression "(**(code **)(param_1 + 0x50))" ( (pointer_expression "**(code **)(param_1 + 0x50)" * (pointer_expression "*(code **)(param_1 + 0x50)" * (cast_expression "(code **)(param_1 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_80 = param_3;" (assignment_expression "puStack_80 = param_3" identifier = identifier) ;) (expression_statement "pcStack_78 = param_1;" (assignment_expression "pcStack_78 = param_1" identifier = identifier) ;) (expression_statement "piStack_74 = param_4;" (assignment_expression "piStack_74 = param_4" identifier = identifier) ;) (if_statement "if (local_28 < local_2c) {\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }" if (parenthesized_expression "(local_28 < local_2c)" ( (binary_expression "local_28 < local_2c" identifier < identifier) )) (compound_statement "{\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }" { (if_statement "if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }" if (parenthesized_expression "(((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2))" ( (binary_expression "((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)" (parenthesized_expression "((uint *)*param_2 < param_3)" ( (binary_expression "(uint *)*param_2 < param_3" (cast_expression "(uint *)*param_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) < identifier) )) || (parenthesized_expression "((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)" ( (binary_expression "(uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2" (cast_expression "(uint *)((int)param_3 + (uint)local_28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + (uint)local_28)" ( (binary_expression "(int)param_3 + (uint)local_28" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)local_28" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (cast_expression "(uint *)*param_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ))) )) (compound_statement "{\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }" { (expression_statement "puVar10 = (uint *)0x3;" (assignment_expression "puVar10 = (uint *)0x3" identifier = (cast_expression "(uint *)0x3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar7 = *(char **)(param_1 + 0x34);" (assignment_expression "pcVar7 = *(char **)(param_1 + 0x34)" identifier = (pointer_expression "*(char **)(param_1 + 0x34)" * (cast_expression "(char **)(param_1 + 0x34)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];" (assignment_expression "puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1]" identifier = (cast_expression "(uint *)((uint *)((int)param_3 + (uint)local_26))[-1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((uint *)((int)param_3 + (uint)local_26))[-1]" (parenthesized_expression "((uint *)((int)param_3 + (uint)local_26))" ( (cast_expression "(uint *)((int)param_3 + (uint)local_26)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + (uint)local_26)" ( (binary_expression "(int)param_3 + (uint)local_26" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)local_26" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) [ number_literal ]))) ;) (expression_statement "FUN_0007dd64();" (call_expression "FUN_0007dd64()" identifier (argument_list "()" ( ))) ;) (expression_statement "puStack_80 = (uint *)((int)param_3 + (uint)local_26);" (assignment_expression "puStack_80 = (uint *)((int)param_3 + (uint)local_26)" identifier = (cast_expression "(uint *)((int)param_3 + (uint)local_26)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + (uint)local_26)" ( (binary_expression "(int)param_3 + (uint)local_26" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)local_26" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) }) (else_clause "else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }" else (compound_statement "{\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }" { (expression_statement "pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);" (assignment_expression "pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1)" identifier = (cast_expression "(char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1)" ( (binary_expression "(int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1" (cast_expression "(int)&Elf32_Phdr_ARRAY_00010034[8].p_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&Elf32_Phdr_ARRAY_00010034[8].p_flags" & (field_expression "Elf32_Phdr_ARRAY_00010034[8].p_flags" (subscript_expression "Elf32_Phdr_ARRAY_00010034[8]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();" (assignment_expression "iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))()" identifier = (call_expression "(*(code *)(PTR_LAB_000f52e8 + 0x4904))()" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + 0x4904))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + 0x4904)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + 0x4904)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + 0x4904)" ( (binary_expression "PTR_LAB_000f52e8 + 0x4904" identifier + number_literal) )))) )) (argument_list "()" ( )))) ;) (expression_statement "*param_4 = iVar4;" (assignment_expression "*param_4 = iVar4" (pointer_expression "*param_4" * identifier) = identifier) ;) }))) })) })) (expression_statement "uVar3 = *(uint *)puVar2;" (assignment_expression "uVar3 = *(uint *)puVar2" identifier = (pointer_expression "*(uint *)puVar2" * (cast_expression "(uint *)puVar2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (local_1c == uVar3) {\n    return uVar3;\n  }" if (parenthesized_expression "(local_1c == uVar3)" ( (binary_expression "local_1c == uVar3" identifier == identifier) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (expression_statement "puVar15 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar15 = PTR___stack_chk_fail_000f5540" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar6 = *(undefined4 *)(pcVar7 + 0x34);" (assignment_expression "uVar6 = *(undefined4 *)(pcVar7 + 0x34)" identifier = (pointer_expression "*(undefined4 *)(pcVar7 + 0x34)" * (cast_expression "(undefined4 *)(pcVar7 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x34)" ( (binary_expression "pcVar7 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "puStack_7c = puVar2;" (assignment_expression "puStack_7c = puVar2" identifier = identifier) ;) (expression_statement "piVar12 = *(int **)(puVar15 + 0x774f8);" (assignment_expression "piVar12 = *(int **)(puVar15 + 0x774f8)" identifier = (pointer_expression "*(int **)(puVar15 + 0x774f8)" * (cast_expression "(int **)(puVar15 + 0x774f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x774f8)" ( (binary_expression "puVar15 + 0x774f8" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(undefined4 *)(pcVar7 + 4);" (assignment_expression "uVar14 = *(undefined4 *)(pcVar7 + 4)" identifier = (pointer_expression "*(undefined4 *)(pcVar7 + 4)" * (cast_expression "(undefined4 *)(pcVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 4)" ( (binary_expression "pcVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "iStack_84 = *piVar12;" (assignment_expression "iStack_84 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "puStack_70 = param_2;" (assignment_expression "puStack_70 = param_2" identifier = identifier) ;) (if_statement "if (*pcVar7 == '\0') {\n    uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();\n    if (uStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  else {\n    uStack_88 = 0;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }" if (parenthesized_expression "(*pcVar7 == '\0')" ( (binary_expression "*pcVar7 == '\0'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();\n    if (uStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }" { (expression_statement "uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();" (assignment_expression "uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))()" identifier = (call_expression "(*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))()" (parenthesized_expression "(*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))" ( (pointer_expression "*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34)" * (cast_expression "(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0x77278) + 0x4d34)" ( (binary_expression "*(int *)(puVar15 + 0x77278) + 0x4d34" (pointer_expression "*(int *)(puVar15 + 0x77278)" * (cast_expression "(int *)(puVar15 + 0x77278)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x77278)" ( (binary_expression "puVar15 + 0x77278" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (if_statement "if (uStack_88 != 0) goto LAB_0007e19c;" if (parenthesized_expression "(uStack_88 != 0)" ( (binary_expression "uStack_88 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0007e19c;" goto statement_identifier ;)) (expression_statement "uVar1 = *(ushort *)(pcVar7 + 0x18);" (assignment_expression "uVar1 = *(ushort *)(pcVar7 + 0x18)" identifier = (pointer_expression "*(ushort *)(pcVar7 + 0x18)" * (cast_expression "(ushort *)(pcVar7 + 0x18)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x18)" ( (binary_expression "pcVar7 + 0x18" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    uStack_88 = 0;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }" else (compound_statement "{\n    uStack_88 = 0;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }" { (expression_statement "uStack_88 = 0;" (assignment_expression "uStack_88 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = *(ushort *)(pcVar7 + 0x18);" (assignment_expression "uVar1 = *(ushort *)(pcVar7 + 0x18)" identifier = (pointer_expression "*(ushort *)(pcVar7 + 0x18)" * (cast_expression "(ushort *)(pcVar7 + 0x18)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x18)" ( (binary_expression "pcVar7 + 0x18" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar4 = *(int *)(puVar15 + 0x77284);" (assignment_expression "iVar4 = *(int *)(puVar15 + 0x77284)" identifier = (pointer_expression "*(int *)(puVar15 + 0x77284)" * (cast_expression "(int *)(puVar15 + 0x77284)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x77284)" ( (binary_expression "puVar15 + 0x77284" identifier + number_literal) ))))) ;) (if_statement "if (uVar1 != 0) {\n    iVar11 = (uint)uVar1 << 1;\n    iVar13 = 0;\n    do {\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    } while (iVar13 != iVar11);\n  }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar11 = (uint)uVar1 << 1;\n    iVar13 = 0;\n    do {\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    } while (iVar13 != iVar11);\n  }" { (expression_statement "iVar11 = (uint)uVar1 << 1;" (assignment_expression "iVar11 = (uint)uVar1 << 1" identifier = (binary_expression "(uint)uVar1 << 1" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal)) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    } while (iVar13 != iVar11);" do (compound_statement "{\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    }" { (while_statement "while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }" { (expression_statement "uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));" (assignment_expression "uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a))" identifier = (binary_expression "*(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a))" (pointer_expression "*(int *)(pcVar7 + 0x38)" * (cast_expression "(int *)(pcVar7 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x38)" ( (binary_expression "pcVar7 + 0x38" identifier + number_literal) )))) + (call_expression "(uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a))" ( (binary_expression "*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a)" (pointer_expression "*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13)" * (cast_expression "(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar7 + 0x40) + iVar13)" ( (binary_expression "*(int *)(pcVar7 + 0x40) + iVar13" (pointer_expression "*(int *)(pcVar7 + 0x40)" * (cast_expression "(int *)(pcVar7 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x40)" ( (binary_expression "pcVar7 + 0x40" identifier + number_literal) )))) + identifier) )))) & (pointer_expression "*(ushort *)(pcVar7 + 0x1a)" * (cast_expression "(ushort *)(pcVar7 + 0x1a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x1a)" ( (binary_expression "pcVar7 + 0x1a" identifier + number_literal) ))))) ))))) ;) (expression_statement "puVar9 = (uint *)(pcVar7 + 0x3c);" (assignment_expression "puVar9 = (uint *)(pcVar7 + 0x3c)" identifier = (cast_expression "(uint *)(pcVar7 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x3c)" ( (binary_expression "pcVar7 + 0x3c" identifier + number_literal) )))) ;) (expression_statement "FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);" (call_expression "FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88)" identifier (argument_list "(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88)" ( identifier , (binary_expression "pcVar7 + 0x3c" identifier + number_literal) , identifier , (pointer_expression "&uStack_88" & identifier) ))) ;) (if_statement "if (pcVar7[8] != '\0') break;" if (parenthesized_expression "(pcVar7[8] != '\0')" ( (binary_expression "pcVar7[8] != '\0'" (subscript_expression "pcVar7[8]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = uVar3 & 3;" (assignment_expression "uVar8 = uVar3 & 3" identifier = (binary_expression "uVar3 & 3" identifier & number_literal)) ;) (expression_statement "iVar13 = iVar13 + 2;" (assignment_expression "iVar13 = iVar13 + 2" identifier = (binary_expression "iVar13 + 2" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar3 + 3 & 3;" (assignment_expression "uVar5 = uVar3 + 3 & 3" identifier = (binary_expression "uVar3 + 3 & 3" (binary_expression "uVar3 + 3" identifier + number_literal) & number_literal)) ;) (expression_statement "puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);" (assignment_expression "puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8)" identifier = (cast_expression "(uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8)" ( (binary_expression "(*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8" (binary_expression "(*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8" (parenthesized_expression "(*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8)" ( (binary_expression "*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8" (binary_expression "*(int *)(uVar3 - uVar8) << uVar8 * 8" (pointer_expression "*(int *)(uVar3 - uVar8)" * (cast_expression "(int *)(uVar3 - uVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 - uVar8)" ( (binary_expression "uVar3 - uVar8" identifier - identifier) )))) << (binary_expression "uVar8 * 8" identifier * number_literal)) | (binary_expression "(uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "0xffffffffU >> (4 - uVar8) * 8" number_literal >> (binary_expression "(4 - uVar8) * 8" (parenthesized_expression "(4 - uVar8)" ( (binary_expression "4 - uVar8" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar5 + 1) * 8" number_literal << (binary_expression "(uVar5 + 1) * 8" (parenthesized_expression "(uVar5 + 1)" ( (binary_expression "uVar5 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8" (pointer_expression "*(uint *)((uVar3 + 3) - uVar5)" * (cast_expression "(uint *)((uVar3 + 3) - uVar5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar3 + 3) - uVar5)" ( (binary_expression "(uVar3 + 3) - uVar5" (parenthesized_expression "(uVar3 + 3)" ( (binary_expression "uVar3 + 3" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar5) * 8" (parenthesized_expression "(3 - uVar5)" ( (binary_expression "3 - uVar5" number_literal - identifier) )) * number_literal))) )))) ;) (expression_statement "(*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);" (call_expression "(*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88)" (parenthesized_expression "(*(code *)(iVar4 + -0x229c))" ( (pointer_expression "*(code *)(iVar4 + -0x229c)" * (cast_expression "(code *)(iVar4 + -0x229c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + -0x229c)" ( (binary_expression "iVar4 + -0x229c" identifier + number_literal) )))) )) (argument_list "(uVar6,puVar9,5,uVar14,&uStack_88)" ( identifier , identifier , number_literal , identifier , (pointer_expression "&uStack_88" & identifier) ))) ;) (if_statement "if (iVar13 == iVar11) goto LAB_0007e18c;" if (parenthesized_expression "(iVar13 == iVar11)" ( (binary_expression "iVar13 == iVar11" identifier == identifier) )) (goto_statement "goto LAB_0007e18c;" goto statement_identifier ;)) })) (expression_statement "iVar13 = iVar13 + 2;" (assignment_expression "iVar13 = iVar13 + 2" identifier = (binary_expression "iVar13 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != iVar11)" ( (binary_expression "iVar13 != iVar11" identifier != identifier) )) ;) })) (labeled_statement "LAB_0007e18c:\n  puVar10 = (uint *)&DAT_00000005;" statement_identifier : (expression_statement "puVar10 = (uint *)&DAT_00000005;" (assignment_expression "puVar10 = (uint *)&DAT_00000005" identifier = (cast_expression "(uint *)&DAT_00000005" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000005" & identifier))) ;)) (if_statement "if (pcVar7[8] == '\0') {\n    puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);\n    FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);\n  }" if (parenthesized_expression "(pcVar7[8] == '\0')" ( (binary_expression "pcVar7[8] == '\0'" (subscript_expression "pcVar7[8]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);\n    FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);\n  }" { (expression_statement "puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);" (assignment_expression "puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8)" identifier = (pointer_expression "*(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8)" * (cast_expression "(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8)" ( (binary_expression "*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8" (binary_expression "*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9]" (pointer_expression "*(int *)(pcVar7 + 0x38)" * (cast_expression "(int *)(pcVar7 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x38)" ( (binary_expression "pcVar7 + 0x38" identifier + number_literal) )))) + (cast_expression "(uint)(byte)pcVar7[9]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar7[9]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar7[9]" identifier [ number_literal ])))) + number_literal) ))))) ;) (expression_statement "FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);" (call_expression "FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88)" identifier (argument_list "(uVar6,puVar9,5,uVar14,&uStack_88)" ( identifier , identifier , number_literal , identifier , (pointer_expression "&uStack_88" & identifier) ))) ;) })) (labeled_statement "LAB_0007e19c:\n  if (iStack_84 != *piVar12) {\n    pcVar16 = *(code **)(puVar15 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar16)();\n    iVar11 = *(int *)(iVar4 + 0x34);\n    uVar8 = puVar9[0xe];\n    uVar3 = uVar8;\n    if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }\n    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar5 = (uint)*(ushort *)(iVar13 + 5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));\n    iVar4 = *(int *)(pcVar16 + 0x770ac);\n    *(char *)puVar9 = '\0';\n    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);\n    if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }\n    return uVar3;\n  }" statement_identifier : (if_statement "if (iStack_84 != *piVar12) {\n    pcVar16 = *(code **)(puVar15 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar16)();\n    iVar11 = *(int *)(iVar4 + 0x34);\n    uVar8 = puVar9[0xe];\n    uVar3 = uVar8;\n    if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }\n    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar5 = (uint)*(ushort *)(iVar13 + 5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));\n    iVar4 = *(int *)(pcVar16 + 0x770ac);\n    *(char *)puVar9 = '\0';\n    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);\n    if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }\n    return uVar3;\n  }" if (parenthesized_expression "(iStack_84 != *piVar12)" ( (binary_expression "iStack_84 != *piVar12" identifier != (pointer_expression "*piVar12" * identifier)) )) (compound_statement "{\n    pcVar16 = *(code **)(puVar15 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar16)();\n    iVar11 = *(int *)(iVar4 + 0x34);\n    uVar8 = puVar9[0xe];\n    uVar3 = uVar8;\n    if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }\n    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar5 = (uint)*(ushort *)(iVar13 + 5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));\n    iVar4 = *(int *)(pcVar16 + 0x770ac);\n    *(char *)puVar9 = '\0';\n    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);\n    if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }\n    return uVar3;\n  }" { (expression_statement "pcVar16 = *(code **)(puVar15 + 0x774d0);" (assignment_expression "pcVar16 = *(code **)(puVar15 + 0x774d0)" identifier = (pointer_expression "*(code **)(puVar15 + 0x774d0)" * (cast_expression "(code **)(puVar15 + 0x774d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x774d0)" ( (binary_expression "puVar15 + 0x774d0" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = iStack_84;" (assignment_expression "iVar4 = iStack_84" identifier = identifier) ;) (expression_statement "(*pcVar16)();" (call_expression "(*pcVar16)()" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar11 = *(int *)(iVar4 + 0x34);" (assignment_expression "iVar11 = *(int *)(iVar4 + 0x34)" identifier = (pointer_expression "*(int *)(iVar4 + 0x34)" * (cast_expression "(int *)(iVar4 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = puVar9[0xe];" (assignment_expression "uVar8 = puVar9[0xe]" identifier = (subscript_expression "puVar9[0xe]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = uVar8;" (assignment_expression "uVar3 = uVar8" identifier = identifier) ;) (if_statement "if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }" if (parenthesized_expression "(puVar9[1] == 1)" ( (binary_expression "puVar9[1] == 1" (subscript_expression "puVar9[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      uVar3 = uVar8 + 100;\n    }" { (expression_statement "uVar3 = uVar8 + 100;" (assignment_expression "uVar3 = uVar8 + 100" identifier = (binary_expression "uVar8 + 100" identifier + number_literal)) ;) })) (expression_statement "iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);" (assignment_expression "iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9)" identifier = (binary_expression "*(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9)" (pointer_expression "*(int *)(iVar4 + 0x38)" * (cast_expression "(int *)(iVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) + (binary_expression "(uint)*(byte *)(iVar4 + 9)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar4 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 9)" ( (binary_expression "iVar4 + 9" identifier + number_literal) )))))) ;) (expression_statement "uVar5 = (uint)*(ushort *)(iVar13 + 5);" (assignment_expression "uVar5 = (uint)*(ushort *)(iVar13 + 5)" identifier = (binary_expression "(uint)*(ushort *)(iVar13 + 5)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar13 + 5)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 5)" ( (binary_expression "iVar13 + 5" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);" (call_expression "(**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5)" (parenthesized_expression "(**(code **)(pcVar16 + 0x77330))" ( (pointer_expression "**(code **)(pcVar16 + 0x77330)" * (pointer_expression "*(code **)(pcVar16 + 0x77330)" * (cast_expression "(code **)(pcVar16 + 0x77330)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x77330)" ( (binary_expression "pcVar16 + 0x77330" identifier + number_literal) ))))) )) (argument_list "(uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5)" ( (binary_expression "uVar8 + uVar5" identifier + identifier) , (binary_expression "*(int *)(iVar4 + 0x38) + uVar5" (pointer_expression "*(int *)(iVar4 + 0x38)" * (cast_expression "(int *)(iVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) + identifier) , (binary_expression "*(int *)(iVar11 + 0x28) - uVar5" (pointer_expression "*(int *)(iVar11 + 0x28)" * (cast_expression "(int *)(iVar11 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) )))) - identifier) ))) ;) (expression_statement "(**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));" (call_expression "(**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12))" (parenthesized_expression "(**(code **)(pcVar16 + 0x77330))" ( (pointer_expression "**(code **)(pcVar16 + 0x77330)" * (pointer_expression "*(code **)(pcVar16 + 0x77330)" * (cast_expression "(code **)(pcVar16 + 0x77330)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x77330)" ( (binary_expression "pcVar16 + 0x77330" identifier + number_literal) ))))) )) (argument_list "(uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12))" ( identifier , identifier , (binary_expression "(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12)" (binary_expression "(uint)*(ushort *)(iVar4 + 0x18) * 2" (binary_expression "(uint)*(ushort *)(iVar4 + 0x18)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar4 + 0x18)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) * number_literal) + (binary_expression "(uint)*(ushort *)(iVar4 + 0x12)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar4 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x12)" ( (binary_expression "iVar4 + 0x12" identifier + number_literal) ))))) ))) ;) (expression_statement "iVar4 = *(int *)(pcVar16 + 0x770ac);" (assignment_expression "iVar4 = *(int *)(pcVar16 + 0x770ac)" identifier = (pointer_expression "*(int *)(pcVar16 + 0x770ac)" * (cast_expression "(int *)(pcVar16 + 0x770ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x770ac)" ( (binary_expression "pcVar16 + 0x770ac" identifier + number_literal) ))))) ;) (expression_statement "*(char *)puVar9 = '\0';" (assignment_expression "*(char *)puVar9 = '\0'" (pointer_expression "*(char *)puVar9" * (cast_expression "(char *)puVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);" (assignment_expression "uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9)" identifier = (call_expression "(*(code *)(iVar4 + 0x4d34))(puVar9)" (parenthesized_expression "(*(code *)(iVar4 + 0x4d34))" ( (pointer_expression "*(code *)(iVar4 + 0x4d34)" * (cast_expression "(code *)(iVar4 + 0x4d34)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4d34)" ( (binary_expression "iVar4 + 0x4d34" identifier + number_literal) )))) )) (argument_list "(puVar9)" ( identifier )))) ;) (if_statement "if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }" if (parenthesized_expression "((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0))" ( (binary_expression "(uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)" (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)" ( (comma_expression "uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0" (assignment_expression "uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9)" identifier = (call_expression "(*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9)" (parenthesized_expression "(*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))" ( (pointer_expression "*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac)" * (cast_expression "(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar16 + 0x770ac) + 0x5cac)" ( (binary_expression "*(int *)(pcVar16 + 0x770ac) + 0x5cac" (pointer_expression "*(int *)(pcVar16 + 0x770ac)" * (cast_expression "(int *)(pcVar16 + 0x770ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x770ac)" ( (binary_expression "pcVar16 + 0x770ac" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(puVar9)" ( identifier )))) , (binary_expression "uVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }" { (expression_statement "uVar3 = (uint)*(byte *)(iVar11 + 0x11);" (assignment_expression "uVar3 = (uint)*(byte *)(iVar11 + 0x11)" identifier = (binary_expression "(uint)*(byte *)(iVar11 + 0x11)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar11 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x11)" ( (binary_expression "iVar11 + 0x11" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }" { (expression_statement "uVar3 = FUN_0007e070(puVar9);" (assignment_expression "uVar3 = FUN_0007e070(puVar9)" identifier = (call_expression "FUN_0007e070(puVar9)" identifier (argument_list "(puVar9)" ( identifier )))) ;) (expression_statement "*puVar10 = uVar3;" (assignment_expression "*puVar10 = uVar3" (pointer_expression "*puVar10" * identifier) = identifier) ;) })) }) (else_clause "else {\n      *puVar10 = uVar3;\n    }" else (compound_statement "{\n      *puVar10 = uVar3;\n    }" { (expression_statement "*puVar10 = uVar3;" (assignment_expression "*puVar10 = uVar3" (pointer_expression "*puVar10" * identifier) = identifier) ;) }))) (return_statement "return uVar3;" return identifier ;) }))) (return_statement "return uStack_88;" return identifier ;) })))
(translation_unit "void ptrmapPutOvflPtr(MemPage *pPage,MemPage *pSrc,u8 *pCell,int *pRC)\n\n{\n  ushort uVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  BtShared *pBt;\n  BtShared *pBt_00;\n  u8 *puVar5;\n  MemPage *pPage_00;\n  CellInfo *pCVar6;\n  u8 *unaff_s0;\n  int iVar7;\n  int *piVar8;\n  MemPage *unaff_s2;\n  int *unaff_s3;\n  int *piVar9;\n  int iVar10;\n  u8 *puVar11;\n  sqlite3 *parent;\n  int in_t9;\n  code *pcVar12;\n  _func_void_void_ptr *pCell_00;\n  int iStack_88;\n  int iStack_84;\n  u8 *puStack_80;\n  int *piStack_7c;\n  MemPage *pMStack_78;\n  int *piStack_74;\n  MemPage *pMStack_70;\n  CellInfo info;\n  \n  piVar8 = *(int **)(in_t9 + 0x7760c);\n  iVar4 = *piVar8;\n  pBt_00 = (BtShared *)pPage;\n  pPage_00 = pSrc;\n  pCVar6 = (CellInfo *)pCell;\n  puStack_80 = unaff_s0;\n  pMStack_78 = unaff_s2;\n  piStack_74 = unaff_s3;\n  if (*pRC == 0) {\n    pCVar6 = &info;\n    pPage_00 = (MemPage *)pCell;\n    (*pPage->xParseCell)(pPage,pCell,pCVar6);\n    puStack_80 = pCell;\n    pMStack_78 = pPage;\n    piStack_74 = pRC;\n    if (info.nLocal < info.nPayload) {\n      if ((*(u8 **)pSrc < pCell) || (pCell + info.nLocal <= *(u8 **)pSrc)) {\n        pCVar6 = (CellInfo *)0x3;\n        pBt_00 = pPage->pBt;\n        pPage_00 = *(MemPage **)(pCell + info.nSize + -4);\n        ptrmapPut(pBt_00,(Pgno)pPage_00,'\x03',pPage->pgno,pRC);\n        puStack_80 = pCell + info.nSize;\n      }\n      else {\n        pBt_00 = (BtShared *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar7 = (*(code *)(*(int *)(&LAB_0007738c + in_t9) + 0x4904))();\n        *pRC = iVar7;\n      }\n    }\n  }\n  if (iVar4 == *piVar8) {\n    return;\n  }\n  pcVar12 = *(code **)(in_t9 + 0x775e4);\n  (*pcVar12)();\n  pBt = (BtShared *)pBt_00->pSchema;\n  piVar9 = *(int **)(pcVar12 + 0x774f8);\n  parent = pBt_00->db;\n  iStack_84 = *piVar9;\n  piStack_7c = piVar8;\n  pMStack_70 = pSrc;\n  if (*(char *)&pBt_00->pPager == '\0') {\n    iStack_88 = (*(code *)(*(int *)(pcVar12 + 0x77278) + 0x4d34))();\n    if (iStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = pBt_00->btsFlags;\n  }\n  else {\n    iStack_88 = 0;\n    uVar1 = pBt_00->btsFlags;\n  }\n  iVar4 = *(int *)(pcVar12 + 0x77284);\n  if (uVar1 != 0) {\n    iVar7 = (uint)uVar1 << 1;\n    iVar10 = 0;\n    do {\n      while( true ) {\n        pCell_00 = pBt_00->xFreeSchema +\n                   (*(ushort *)((int)&pBt_00->pHasContent->iSize + iVar10) & pBt_00->maxLocal);\n        pPage_00 = (MemPage *)&pBt_00->mutex;\n        ptrmapPutOvflPtr((MemPage *)pBt_00,(MemPage *)&pBt_00->mutex,(u8 *)pCell_00,&iStack_88);\n        if (*(char *)&pBt_00->pCursor != '\0') break;\n        uVar3 = (uint)pCell_00 & 3;\n        iVar10 = iVar10 + 2;\n        uVar2 = (uint)(pCell_00 + 3) & 3;\n        pPage_00 = (MemPage *)\n                   ((*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |\n                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8) & -1 << (uVar2 + 1) * 8 |\n                   *(uint *)(pCell_00 + 3 + -uVar2) >> (3 - uVar2) * 8);\n        (*(code *)(iVar4 + -0x229c))(pBt,pPage_00,5,parent,&iStack_88);\n        if (iVar10 == iVar7) goto LAB_0007e18c;\n      }\n      iVar10 = iVar10 + 2;\n    } while (iVar10 != iVar7);\n  }\nLAB_0007e18c:\n  pCVar6 = (CellInfo *)&DAT_00000005;\n  if (*(char *)&pBt_00->pCursor == '\0') {\n    pPage_00 = *(MemPage **)(pBt_00->xFreeSchema + *(byte *)((int)&pBt_00->pCursor + 1) + 8);\n    ptrmapPut(pBt,(Pgno)pPage_00,'\x05',(Pgno)parent,&iStack_88);\n  }\nLAB_0007e19c:\n  if (iStack_84 != *piVar9) {\n    pcVar12 = *(code **)(pcVar12 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar12)();\n    iVar7 = *(int *)(iVar4 + 0x34);\n    puVar5 = pPage_00->aData;\n    puVar11 = puVar5;\n    if (pPage_00->pgno == 1) {\n      puVar11 = puVar5 + 100;\n    }\n    iVar10 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar3 = (uint)*(ushort *)(iVar10 + 5);\n    (**(code **)(pcVar12 + 0x77330))\n              (puVar5 + uVar3,*(int *)(iVar4 + 0x38) + uVar3,*(int *)(iVar7 + 0x28) - uVar3);\n    (**(code **)(pcVar12 + 0x77330))\n              (puVar11,iVar10,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12))\n    ;\n    iVar4 = *(int *)(pcVar12 + 0x770ac);\n    pPage_00->isInit = '\0';\n    iVar4 = (*(code *)(iVar4 + 0x4d34))(pPage_00);\n    if ((iVar4 == 0) &&\n       (iVar4 = (*(code *)(*(int *)(pcVar12 + 0x770ac) + 0x5cac))(pPage_00), iVar4 == 0)) {\n      if (*(char *)(iVar7 + 0x11) != '\0') {\n        iVar4 = setChildPtrmaps(pPage_00);\n        *(int *)&pCVar6->nKey = iVar4;\n      }\n    }\n    else {\n      *(int *)&pCVar6->nKey = iVar4;\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void ptrmapPutOvflPtr(MemPage *pPage,MemPage *pSrc,u8 *pCell,int *pRC)\n\n{\n  ushort uVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  BtShared *pBt;\n  BtShared *pBt_00;\n  u8 *puVar5;\n  MemPage *pPage_00;\n  CellInfo *pCVar6;\n  u8 *unaff_s0;\n  int iVar7;\n  int *piVar8;\n  MemPage *unaff_s2;\n  int *unaff_s3;\n  int *piVar9;\n  int iVar10;\n  u8 *puVar11;\n  sqlite3 *parent;\n  int in_t9;\n  code *pcVar12;\n  _func_void_void_ptr *pCell_00;\n  int iStack_88;\n  int iStack_84;\n  u8 *puStack_80;\n  int *piStack_7c;\n  MemPage *pMStack_78;\n  int *piStack_74;\n  MemPage *pMStack_70;\n  CellInfo info;\n  \n  piVar8 = *(int **)(in_t9 + 0x7760c);\n  iVar4 = *piVar8;\n  pBt_00 = (BtShared *)pPage;\n  pPage_00 = pSrc;\n  pCVar6 = (CellInfo *)pCell;\n  puStack_80 = unaff_s0;\n  pMStack_78 = unaff_s2;\n  piStack_74 = unaff_s3;\n  if (*pRC == 0) {\n    pCVar6 = &info;\n    pPage_00 = (MemPage *)pCell;\n    (*pPage->xParseCell)(pPage,pCell,pCVar6);\n    puStack_80 = pCell;\n    pMStack_78 = pPage;\n    piStack_74 = pRC;\n    if (info.nLocal < info.nPayload) {\n      if ((*(u8 **)pSrc < pCell) || (pCell + info.nLocal <= *(u8 **)pSrc)) {\n        pCVar6 = (CellInfo *)0x3;\n        pBt_00 = pPage->pBt;\n        pPage_00 = *(MemPage **)(pCell + info.nSize + -4);\n        ptrmapPut(pBt_00,(Pgno)pPage_00,'\x03',pPage->pgno,pRC);\n        puStack_80 = pCell + info.nSize;\n      }\n      else {\n        pBt_00 = (BtShared *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar7 = (*(code *)(*(int *)(&LAB_0007738c + in_t9) + 0x4904))();\n        *pRC = iVar7;\n      }\n    }\n  }\n  if (iVar4 == *piVar8) {\n    return;\n  }\n  pcVar12 = *(code **)(in_t9 + 0x775e4);\n  (*pcVar12)();\n  pBt = (BtShared *)pBt_00->pSchema;\n  piVar9 = *(int **)(pcVar12 + 0x774f8);\n  parent = pBt_00->db;\n  iStack_84 = *piVar9;\n  piStack_7c = piVar8;\n  pMStack_70 = pSrc;\n  if (*(char *)&pBt_00->pPager == '\0') {\n    iStack_88 = (*(code *)(*(int *)(pcVar12 + 0x77278) + 0x4d34))();\n    if (iStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = pBt_00->btsFlags;\n  }\n  else {\n    iStack_88 = 0;\n    uVar1 = pBt_00->btsFlags;\n  }\n  iVar4 = *(int *)(pcVar12 + 0x77284);\n  if (uVar1 != 0) {\n    iVar7 = (uint)uVar1 << 1;\n    iVar10 = 0;\n    do {\n      while( true ) {\n        pCell_00 = pBt_00->xFreeSchema +\n                   (*(ushort *)((int)&pBt_00->pHasContent->iSize + iVar10) & pBt_00->maxLocal);\n        pPage_00 = (MemPage *)&pBt_00->mutex;\n        ptrmapPutOvflPtr((MemPage *)pBt_00,(MemPage *)&pBt_00->mutex,(u8 *)pCell_00,&iStack_88);\n        if (*(char *)&pBt_00->pCursor != '\0') break;\n        uVar3 = (uint)pCell_00 & 3;\n        iVar10 = iVar10 + 2;\n        uVar2 = (uint)(pCell_00 + 3) & 3;\n        pPage_00 = (MemPage *)\n                   ((*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |\n                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8) & -1 << (uVar2 + 1) * 8 |\n                   *(uint *)(pCell_00 + 3 + -uVar2) >> (3 - uVar2) * 8);\n        (*(code *)(iVar4 + -0x229c))(pBt,pPage_00,5,parent,&iStack_88);\n        if (iVar10 == iVar7) goto LAB_0007e18c;\n      }\n      iVar10 = iVar10 + 2;\n    } while (iVar10 != iVar7);\n  }\nLAB_0007e18c:\n  pCVar6 = (CellInfo *)&DAT_00000005;\n  if (*(char *)&pBt_00->pCursor == '\0') {\n    pPage_00 = *(MemPage **)(pBt_00->xFreeSchema + *(byte *)((int)&pBt_00->pCursor + 1) + 8);\n    ptrmapPut(pBt,(Pgno)pPage_00,'\x05',(Pgno)parent,&iStack_88);\n  }\nLAB_0007e19c:\n  if (iStack_84 != *piVar9) {\n    pcVar12 = *(code **)(pcVar12 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar12)();\n    iVar7 = *(int *)(iVar4 + 0x34);\n    puVar5 = pPage_00->aData;\n    puVar11 = puVar5;\n    if (pPage_00->pgno == 1) {\n      puVar11 = puVar5 + 100;\n    }\n    iVar10 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar3 = (uint)*(ushort *)(iVar10 + 5);\n    (**(code **)(pcVar12 + 0x77330))\n              (puVar5 + uVar3,*(int *)(iVar4 + 0x38) + uVar3,*(int *)(iVar7 + 0x28) - uVar3);\n    (**(code **)(pcVar12 + 0x77330))\n              (puVar11,iVar10,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12))\n    ;\n    iVar4 = *(int *)(pcVar12 + 0x770ac);\n    pPage_00->isInit = '\0';\n    iVar4 = (*(code *)(iVar4 + 0x4d34))(pPage_00);\n    if ((iVar4 == 0) &&\n       (iVar4 = (*(code *)(*(int *)(pcVar12 + 0x770ac) + 0x5cac))(pPage_00), iVar4 == 0)) {\n      if (*(char *)(iVar7 + 0x11) != '\0') {\n        iVar4 = setChildPtrmaps(pPage_00);\n        *(int *)&pCVar6->nKey = iVar4;\n      }\n    }\n    else {\n      *(int *)&pCVar6->nKey = iVar4;\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "ptrmapPutOvflPtr(MemPage *pPage,MemPage *pSrc,u8 *pCell,int *pRC)" identifier (parameter_list "(MemPage *pPage,MemPage *pSrc,u8 *pCell,int *pRC)" ( (parameter_declaration "MemPage *pPage" type_identifier (pointer_declarator "*pPage" * identifier)) , (parameter_declaration "MemPage *pSrc" type_identifier (pointer_declarator "*pSrc" * identifier)) , (parameter_declaration "u8 *pCell" type_identifier (pointer_declarator "*pCell" * identifier)) , (parameter_declaration "int *pRC" primitive_type (pointer_declarator "*pRC" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  BtShared *pBt;\n  BtShared *pBt_00;\n  u8 *puVar5;\n  MemPage *pPage_00;\n  CellInfo *pCVar6;\n  u8 *unaff_s0;\n  int iVar7;\n  int *piVar8;\n  MemPage *unaff_s2;\n  int *unaff_s3;\n  int *piVar9;\n  int iVar10;\n  u8 *puVar11;\n  sqlite3 *parent;\n  int in_t9;\n  code *pcVar12;\n  _func_void_void_ptr *pCell_00;\n  int iStack_88;\n  int iStack_84;\n  u8 *puStack_80;\n  int *piStack_7c;\n  MemPage *pMStack_78;\n  int *piStack_74;\n  MemPage *pMStack_70;\n  CellInfo info;\n  \n  piVar8 = *(int **)(in_t9 + 0x7760c);\n  iVar4 = *piVar8;\n  pBt_00 = (BtShared *)pPage;\n  pPage_00 = pSrc;\n  pCVar6 = (CellInfo *)pCell;\n  puStack_80 = unaff_s0;\n  pMStack_78 = unaff_s2;\n  piStack_74 = unaff_s3;\n  if (*pRC == 0) {\n    pCVar6 = &info;\n    pPage_00 = (MemPage *)pCell;\n    (*pPage->xParseCell)(pPage,pCell,pCVar6);\n    puStack_80 = pCell;\n    pMStack_78 = pPage;\n    piStack_74 = pRC;\n    if (info.nLocal < info.nPayload) {\n      if ((*(u8 **)pSrc < pCell) || (pCell + info.nLocal <= *(u8 **)pSrc)) {\n        pCVar6 = (CellInfo *)0x3;\n        pBt_00 = pPage->pBt;\n        pPage_00 = *(MemPage **)(pCell + info.nSize + -4);\n        ptrmapPut(pBt_00,(Pgno)pPage_00,'\x03',pPage->pgno,pRC);\n        puStack_80 = pCell + info.nSize;\n      }\n      else {\n        pBt_00 = (BtShared *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar7 = (*(code *)(*(int *)(&LAB_0007738c + in_t9) + 0x4904))();\n        *pRC = iVar7;\n      }\n    }\n  }\n  if (iVar4 == *piVar8) {\n    return;\n  }\n  pcVar12 = *(code **)(in_t9 + 0x775e4);\n  (*pcVar12)();\n  pBt = (BtShared *)pBt_00->pSchema;\n  piVar9 = *(int **)(pcVar12 + 0x774f8);\n  parent = pBt_00->db;\n  iStack_84 = *piVar9;\n  piStack_7c = piVar8;\n  pMStack_70 = pSrc;\n  if (*(char *)&pBt_00->pPager == '\0') {\n    iStack_88 = (*(code *)(*(int *)(pcVar12 + 0x77278) + 0x4d34))();\n    if (iStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = pBt_00->btsFlags;\n  }\n  else {\n    iStack_88 = 0;\n    uVar1 = pBt_00->btsFlags;\n  }\n  iVar4 = *(int *)(pcVar12 + 0x77284);\n  if (uVar1 != 0) {\n    iVar7 = (uint)uVar1 << 1;\n    iVar10 = 0;\n    do {\n      while( true ) {\n        pCell_00 = pBt_00->xFreeSchema +\n                   (*(ushort *)((int)&pBt_00->pHasContent->iSize + iVar10) & pBt_00->maxLocal);\n        pPage_00 = (MemPage *)&pBt_00->mutex;\n        ptrmapPutOvflPtr((MemPage *)pBt_00,(MemPage *)&pBt_00->mutex,(u8 *)pCell_00,&iStack_88);\n        if (*(char *)&pBt_00->pCursor != '\0') break;\n        uVar3 = (uint)pCell_00 & 3;\n        iVar10 = iVar10 + 2;\n        uVar2 = (uint)(pCell_00 + 3) & 3;\n        pPage_00 = (MemPage *)\n                   ((*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |\n                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8) & -1 << (uVar2 + 1) * 8 |\n                   *(uint *)(pCell_00 + 3 + -uVar2) >> (3 - uVar2) * 8);\n        (*(code *)(iVar4 + -0x229c))(pBt,pPage_00,5,parent,&iStack_88);\n        if (iVar10 == iVar7) goto LAB_0007e18c;\n      }\n      iVar10 = iVar10 + 2;\n    } while (iVar10 != iVar7);\n  }\nLAB_0007e18c:\n  pCVar6 = (CellInfo *)&DAT_00000005;\n  if (*(char *)&pBt_00->pCursor == '\0') {\n    pPage_00 = *(MemPage **)(pBt_00->xFreeSchema + *(byte *)((int)&pBt_00->pCursor + 1) + 8);\n    ptrmapPut(pBt,(Pgno)pPage_00,'\x05',(Pgno)parent,&iStack_88);\n  }\nLAB_0007e19c:\n  if (iStack_84 != *piVar9) {\n    pcVar12 = *(code **)(pcVar12 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar12)();\n    iVar7 = *(int *)(iVar4 + 0x34);\n    puVar5 = pPage_00->aData;\n    puVar11 = puVar5;\n    if (pPage_00->pgno == 1) {\n      puVar11 = puVar5 + 100;\n    }\n    iVar10 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar3 = (uint)*(ushort *)(iVar10 + 5);\n    (**(code **)(pcVar12 + 0x77330))\n              (puVar5 + uVar3,*(int *)(iVar4 + 0x38) + uVar3,*(int *)(iVar7 + 0x28) - uVar3);\n    (**(code **)(pcVar12 + 0x77330))\n              (puVar11,iVar10,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12))\n    ;\n    iVar4 = *(int *)(pcVar12 + 0x770ac);\n    pPage_00->isInit = '\0';\n    iVar4 = (*(code *)(iVar4 + 0x4d34))(pPage_00);\n    if ((iVar4 == 0) &&\n       (iVar4 = (*(code *)(*(int *)(pcVar12 + 0x770ac) + 0x5cac))(pPage_00), iVar4 == 0)) {\n      if (*(char *)(iVar7 + 0x11) != '\0') {\n        iVar4 = setChildPtrmaps(pPage_00);\n        *(int *)&pCVar6->nKey = iVar4;\n      }\n    }\n    else {\n      *(int *)&pCVar6->nKey = iVar4;\n    }\n    return;\n  }\n  return;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "BtShared *pBt;" type_identifier (pointer_declarator "*pBt" * identifier) ;) (declaration "BtShared *pBt_00;" type_identifier (pointer_declarator "*pBt_00" * identifier) ;) (declaration "u8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "MemPage *pPage_00;" type_identifier (pointer_declarator "*pPage_00" * identifier) ;) (declaration "CellInfo *pCVar6;" type_identifier (pointer_declarator "*pCVar6" * identifier) ;) (declaration "u8 *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "MemPage *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "int *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "u8 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "sqlite3 *parent;" type_identifier (pointer_declarator "*parent" * identifier) ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "_func_void_void_ptr *pCell_00;" type_identifier (pointer_declarator "*pCell_00" * identifier) ;) (declaration "int iStack_88;" primitive_type identifier ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "u8 *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "int *piStack_7c;" primitive_type (pointer_declarator "*piStack_7c" * identifier) ;) (declaration "MemPage *pMStack_78;" type_identifier (pointer_declarator "*pMStack_78" * identifier) ;) (declaration "int *piStack_74;" primitive_type (pointer_declarator "*piStack_74" * identifier) ;) (declaration "MemPage *pMStack_70;" type_identifier (pointer_declarator "*pMStack_70" * identifier) ;) (declaration "CellInfo info;" type_identifier identifier ;) (expression_statement "piVar8 = *(int **)(in_t9 + 0x7760c);" (assignment_expression "piVar8 = *(int **)(in_t9 + 0x7760c)" identifier = (pointer_expression "*(int **)(in_t9 + 0x7760c)" * (cast_expression "(int **)(in_t9 + 0x7760c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7760c)" ( (binary_expression "in_t9 + 0x7760c" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *piVar8;" (assignment_expression "iVar4 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "pBt_00 = (BtShared *)pPage;" (assignment_expression "pBt_00 = (BtShared *)pPage" identifier = (cast_expression "(BtShared *)pPage" ( (type_descriptor "BtShared *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pPage_00 = pSrc;" (assignment_expression "pPage_00 = pSrc" identifier = identifier) ;) (expression_statement "pCVar6 = (CellInfo *)pCell;" (assignment_expression "pCVar6 = (CellInfo *)pCell" identifier = (cast_expression "(CellInfo *)pCell" ( (type_descriptor "CellInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puStack_80 = unaff_s0;" (assignment_expression "puStack_80 = unaff_s0" identifier = identifier) ;) (expression_statement "pMStack_78 = unaff_s2;" (assignment_expression "pMStack_78 = unaff_s2" identifier = identifier) ;) (expression_statement "piStack_74 = unaff_s3;" (assignment_expression "piStack_74 = unaff_s3" identifier = identifier) ;) (if_statement "if (*pRC == 0) {\n    pCVar6 = &info;\n    pPage_00 = (MemPage *)pCell;\n    (*pPage->xParseCell)(pPage,pCell,pCVar6);\n    puStack_80 = pCell;\n    pMStack_78 = pPage;\n    piStack_74 = pRC;\n    if (info.nLocal < info.nPayload) {\n      if ((*(u8 **)pSrc < pCell) || (pCell + info.nLocal <= *(u8 **)pSrc)) {\n        pCVar6 = (CellInfo *)0x3;\n        pBt_00 = pPage->pBt;\n        pPage_00 = *(MemPage **)(pCell + info.nSize + -4);\n        ptrmapPut(pBt_00,(Pgno)pPage_00,'\x03',pPage->pgno,pRC);\n        puStack_80 = pCell + info.nSize;\n      }\n      else {\n        pBt_00 = (BtShared *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar7 = (*(code *)(*(int *)(&LAB_0007738c + in_t9) + 0x4904))();\n        *pRC = iVar7;\n      }\n    }\n  }" if (parenthesized_expression "(*pRC == 0)" ( (binary_expression "*pRC == 0" (pointer_expression "*pRC" * identifier) == number_literal) )) (compound_statement "{\n    pCVar6 = &info;\n    pPage_00 = (MemPage *)pCell;\n    (*pPage->xParseCell)(pPage,pCell,pCVar6);\n    puStack_80 = pCell;\n    pMStack_78 = pPage;\n    piStack_74 = pRC;\n    if (info.nLocal < info.nPayload) {\n      if ((*(u8 **)pSrc < pCell) || (pCell + info.nLocal <= *(u8 **)pSrc)) {\n        pCVar6 = (CellInfo *)0x3;\n        pBt_00 = pPage->pBt;\n        pPage_00 = *(MemPage **)(pCell + info.nSize + -4);\n        ptrmapPut(pBt_00,(Pgno)pPage_00,'\x03',pPage->pgno,pRC);\n        puStack_80 = pCell + info.nSize;\n      }\n      else {\n        pBt_00 = (BtShared *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar7 = (*(code *)(*(int *)(&LAB_0007738c + in_t9) + 0x4904))();\n        *pRC = iVar7;\n      }\n    }\n  }" { (expression_statement "pCVar6 = &info;" (assignment_expression "pCVar6 = &info" identifier = (pointer_expression "&info" & identifier)) ;) (expression_statement "pPage_00 = (MemPage *)pCell;" (assignment_expression "pPage_00 = (MemPage *)pCell" identifier = (cast_expression "(MemPage *)pCell" ( (type_descriptor "MemPage *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*pPage->xParseCell)(pPage,pCell,pCVar6);" (call_expression "(*pPage->xParseCell)(pPage,pCell,pCVar6)" (parenthesized_expression "(*pPage->xParseCell)" ( (pointer_expression "*pPage->xParseCell" * (field_expression "pPage->xParseCell" identifier -> field_identifier)) )) (argument_list "(pPage,pCell,pCVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "puStack_80 = pCell;" (assignment_expression "puStack_80 = pCell" identifier = identifier) ;) (expression_statement "pMStack_78 = pPage;" (assignment_expression "pMStack_78 = pPage" identifier = identifier) ;) (expression_statement "piStack_74 = pRC;" (assignment_expression "piStack_74 = pRC" identifier = identifier) ;) (if_statement "if (info.nLocal < info.nPayload) {\n      if ((*(u8 **)pSrc < pCell) || (pCell + info.nLocal <= *(u8 **)pSrc)) {\n        pCVar6 = (CellInfo *)0x3;\n        pBt_00 = pPage->pBt;\n        pPage_00 = *(MemPage **)(pCell + info.nSize + -4);\n        ptrmapPut(pBt_00,(Pgno)pPage_00,'\x03',pPage->pgno,pRC);\n        puStack_80 = pCell + info.nSize;\n      }\n      else {\n        pBt_00 = (BtShared *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar7 = (*(code *)(*(int *)(&LAB_0007738c + in_t9) + 0x4904))();\n        *pRC = iVar7;\n      }\n    }" if (parenthesized_expression "(info.nLocal < info.nPayload)" ( (binary_expression "info.nLocal < info.nPayload" (field_expression "info.nLocal" identifier . field_identifier) < (field_expression "info.nPayload" identifier . field_identifier)) )) (compound_statement "{\n      if ((*(u8 **)pSrc < pCell) || (pCell + info.nLocal <= *(u8 **)pSrc)) {\n        pCVar6 = (CellInfo *)0x3;\n        pBt_00 = pPage->pBt;\n        pPage_00 = *(MemPage **)(pCell + info.nSize + -4);\n        ptrmapPut(pBt_00,(Pgno)pPage_00,'\x03',pPage->pgno,pRC);\n        puStack_80 = pCell + info.nSize;\n      }\n      else {\n        pBt_00 = (BtShared *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar7 = (*(code *)(*(int *)(&LAB_0007738c + in_t9) + 0x4904))();\n        *pRC = iVar7;\n      }\n    }" { (if_statement "if ((*(u8 **)pSrc < pCell) || (pCell + info.nLocal <= *(u8 **)pSrc)) {\n        pCVar6 = (CellInfo *)0x3;\n        pBt_00 = pPage->pBt;\n        pPage_00 = *(MemPage **)(pCell + info.nSize + -4);\n        ptrmapPut(pBt_00,(Pgno)pPage_00,'\x03',pPage->pgno,pRC);\n        puStack_80 = pCell + info.nSize;\n      }\n      else {\n        pBt_00 = (BtShared *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar7 = (*(code *)(*(int *)(&LAB_0007738c + in_t9) + 0x4904))();\n        *pRC = iVar7;\n      }" if (parenthesized_expression "((*(u8 **)pSrc < pCell) || (pCell + info.nLocal <= *(u8 **)pSrc))" ( (binary_expression "(*(u8 **)pSrc < pCell) || (pCell + info.nLocal <= *(u8 **)pSrc)" (parenthesized_expression "(*(u8 **)pSrc < pCell)" ( (binary_expression "*(u8 **)pSrc < pCell" (pointer_expression "*(u8 **)pSrc" * (cast_expression "(u8 **)pSrc" ( (type_descriptor "u8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) < identifier) )) || (parenthesized_expression "(pCell + info.nLocal <= *(u8 **)pSrc)" ( (binary_expression "pCell + info.nLocal <= *(u8 **)pSrc" (binary_expression "pCell + info.nLocal" identifier + (field_expression "info.nLocal" identifier . field_identifier)) <= (pointer_expression "*(u8 **)pSrc" * (cast_expression "(u8 **)pSrc" ( (type_descriptor "u8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ))) )) (compound_statement "{\n        pCVar6 = (CellInfo *)0x3;\n        pBt_00 = pPage->pBt;\n        pPage_00 = *(MemPage **)(pCell + info.nSize + -4);\n        ptrmapPut(pBt_00,(Pgno)pPage_00,'\x03',pPage->pgno,pRC);\n        puStack_80 = pCell + info.nSize;\n      }" { (expression_statement "pCVar6 = (CellInfo *)0x3;" (assignment_expression "pCVar6 = (CellInfo *)0x3" identifier = (cast_expression "(CellInfo *)0x3" ( (type_descriptor "CellInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pBt_00 = pPage->pBt;" (assignment_expression "pBt_00 = pPage->pBt" identifier = (field_expression "pPage->pBt" identifier -> field_identifier)) ;) (expression_statement "pPage_00 = *(MemPage **)(pCell + info.nSize + -4);" (assignment_expression "pPage_00 = *(MemPage **)(pCell + info.nSize + -4)" identifier = (pointer_expression "*(MemPage **)(pCell + info.nSize + -4)" * (cast_expression "(MemPage **)(pCell + info.nSize + -4)" ( (type_descriptor "MemPage **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pCell + info.nSize + -4)" ( (binary_expression "pCell + info.nSize + -4" (binary_expression "pCell + info.nSize" identifier + (field_expression "info.nSize" identifier . field_identifier)) + number_literal) ))))) ;) (expression_statement "ptrmapPut(pBt_00,(Pgno)pPage_00,'\x03',pPage->pgno,pRC);" (call_expression "ptrmapPut(pBt_00,(Pgno)pPage_00,'\x03',pPage->pgno,pRC)" identifier (argument_list "(pBt_00,(Pgno)pPage_00,'\x03',pPage->pgno,pRC)" ( identifier , (cast_expression "(Pgno)pPage_00" ( (type_descriptor "Pgno" type_identifier) ) identifier) , (char_literal "'\x03'" ' escape_sequence ') , (field_expression "pPage->pgno" identifier -> field_identifier) , identifier ))) ;) (expression_statement "puStack_80 = pCell + info.nSize;" (assignment_expression "puStack_80 = pCell + info.nSize" identifier = (binary_expression "pCell + info.nSize" identifier + (field_expression "info.nSize" identifier . field_identifier))) ;) }) (else_clause "else {\n        pBt_00 = (BtShared *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar7 = (*(code *)(*(int *)(&LAB_0007738c + in_t9) + 0x4904))();\n        *pRC = iVar7;\n      }" else (compound_statement "{\n        pBt_00 = (BtShared *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar7 = (*(code *)(*(int *)(&LAB_0007738c + in_t9) + 0x4904))();\n        *pRC = iVar7;\n      }" { (expression_statement "pBt_00 = (BtShared *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);" (assignment_expression "pBt_00 = (BtShared *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1)" identifier = (cast_expression "(BtShared *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1)" ( (type_descriptor "BtShared *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1)" ( (binary_expression "(int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1" (cast_expression "(int)&Elf32_Phdr_ARRAY_00010034[8].p_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&Elf32_Phdr_ARRAY_00010034[8].p_flags" & (field_expression "Elf32_Phdr_ARRAY_00010034[8].p_flags" (subscript_expression "Elf32_Phdr_ARRAY_00010034[8]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "iVar7 = (*(code *)(*(int *)(&LAB_0007738c + in_t9) + 0x4904))();" (assignment_expression "iVar7 = (*(code *)(*(int *)(&LAB_0007738c + in_t9) + 0x4904))()" identifier = (call_expression "(*(code *)(*(int *)(&LAB_0007738c + in_t9) + 0x4904))()" (parenthesized_expression "(*(code *)(*(int *)(&LAB_0007738c + in_t9) + 0x4904))" ( (pointer_expression "*(code *)(*(int *)(&LAB_0007738c + in_t9) + 0x4904)" * (cast_expression "(code *)(*(int *)(&LAB_0007738c + in_t9) + 0x4904)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(&LAB_0007738c + in_t9) + 0x4904)" ( (binary_expression "*(int *)(&LAB_0007738c + in_t9) + 0x4904" (pointer_expression "*(int *)(&LAB_0007738c + in_t9)" * (cast_expression "(int *)(&LAB_0007738c + in_t9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&LAB_0007738c + in_t9)" ( (binary_expression "&LAB_0007738c + in_t9" (pointer_expression "&LAB_0007738c" & identifier) + identifier) )))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (expression_statement "*pRC = iVar7;" (assignment_expression "*pRC = iVar7" (pointer_expression "*pRC" * identifier) = identifier) ;) }))) })) })) (if_statement "if (iVar4 == *piVar8) {\n    return;\n  }" if (parenthesized_expression "(iVar4 == *piVar8)" ( (binary_expression "iVar4 == *piVar8" identifier == (pointer_expression "*piVar8" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar12 = *(code **)(in_t9 + 0x775e4);" (assignment_expression "pcVar12 = *(code **)(in_t9 + 0x775e4)" identifier = (pointer_expression "*(code **)(in_t9 + 0x775e4)" * (cast_expression "(code **)(in_t9 + 0x775e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x775e4)" ( (binary_expression "in_t9 + 0x775e4" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pBt = (BtShared *)pBt_00->pSchema;" (assignment_expression "pBt = (BtShared *)pBt_00->pSchema" identifier = (cast_expression "(BtShared *)pBt_00->pSchema" ( (type_descriptor "BtShared *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pBt_00->pSchema" identifier -> field_identifier))) ;) (expression_statement "piVar9 = *(int **)(pcVar12 + 0x774f8);" (assignment_expression "piVar9 = *(int **)(pcVar12 + 0x774f8)" identifier = (pointer_expression "*(int **)(pcVar12 + 0x774f8)" * (cast_expression "(int **)(pcVar12 + 0x774f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x774f8)" ( (binary_expression "pcVar12 + 0x774f8" identifier + number_literal) ))))) ;) (expression_statement "parent = pBt_00->db;" (assignment_expression "parent = pBt_00->db" identifier = (field_expression "pBt_00->db" identifier -> field_identifier)) ;) (expression_statement "iStack_84 = *piVar9;" (assignment_expression "iStack_84 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "piStack_7c = piVar8;" (assignment_expression "piStack_7c = piVar8" identifier = identifier) ;) (expression_statement "pMStack_70 = pSrc;" (assignment_expression "pMStack_70 = pSrc" identifier = identifier) ;) (if_statement "if (*(char *)&pBt_00->pPager == '\0') {\n    iStack_88 = (*(code *)(*(int *)(pcVar12 + 0x77278) + 0x4d34))();\n    if (iStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = pBt_00->btsFlags;\n  }\n  else {\n    iStack_88 = 0;\n    uVar1 = pBt_00->btsFlags;\n  }" if (parenthesized_expression "(*(char *)&pBt_00->pPager == '\0')" ( (binary_expression "*(char *)&pBt_00->pPager == '\0'" (pointer_expression "*(char *)&pBt_00->pPager" * (cast_expression "(char *)&pBt_00->pPager" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBt_00->pPager" & (field_expression "pBt_00->pPager" identifier -> field_identifier)))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iStack_88 = (*(code *)(*(int *)(pcVar12 + 0x77278) + 0x4d34))();\n    if (iStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = pBt_00->btsFlags;\n  }" { (expression_statement "iStack_88 = (*(code *)(*(int *)(pcVar12 + 0x77278) + 0x4d34))();" (assignment_expression "iStack_88 = (*(code *)(*(int *)(pcVar12 + 0x77278) + 0x4d34))()" identifier = (call_expression "(*(code *)(*(int *)(pcVar12 + 0x77278) + 0x4d34))()" (parenthesized_expression "(*(code *)(*(int *)(pcVar12 + 0x77278) + 0x4d34))" ( (pointer_expression "*(code *)(*(int *)(pcVar12 + 0x77278) + 0x4d34)" * (cast_expression "(code *)(*(int *)(pcVar12 + 0x77278) + 0x4d34)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar12 + 0x77278) + 0x4d34)" ( (binary_expression "*(int *)(pcVar12 + 0x77278) + 0x4d34" (pointer_expression "*(int *)(pcVar12 + 0x77278)" * (cast_expression "(int *)(pcVar12 + 0x77278)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x77278)" ( (binary_expression "pcVar12 + 0x77278" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (if_statement "if (iStack_88 != 0) goto LAB_0007e19c;" if (parenthesized_expression "(iStack_88 != 0)" ( (binary_expression "iStack_88 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0007e19c;" goto statement_identifier ;)) (expression_statement "uVar1 = pBt_00->btsFlags;" (assignment_expression "uVar1 = pBt_00->btsFlags" identifier = (field_expression "pBt_00->btsFlags" identifier -> field_identifier)) ;) }) (else_clause "else {\n    iStack_88 = 0;\n    uVar1 = pBt_00->btsFlags;\n  }" else (compound_statement "{\n    iStack_88 = 0;\n    uVar1 = pBt_00->btsFlags;\n  }" { (expression_statement "iStack_88 = 0;" (assignment_expression "iStack_88 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = pBt_00->btsFlags;" (assignment_expression "uVar1 = pBt_00->btsFlags" identifier = (field_expression "pBt_00->btsFlags" identifier -> field_identifier)) ;) }))) (expression_statement "iVar4 = *(int *)(pcVar12 + 0x77284);" (assignment_expression "iVar4 = *(int *)(pcVar12 + 0x77284)" identifier = (pointer_expression "*(int *)(pcVar12 + 0x77284)" * (cast_expression "(int *)(pcVar12 + 0x77284)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x77284)" ( (binary_expression "pcVar12 + 0x77284" identifier + number_literal) ))))) ;) (if_statement "if (uVar1 != 0) {\n    iVar7 = (uint)uVar1 << 1;\n    iVar10 = 0;\n    do {\n      while( true ) {\n        pCell_00 = pBt_00->xFreeSchema +\n                   (*(ushort *)((int)&pBt_00->pHasContent->iSize + iVar10) & pBt_00->maxLocal);\n        pPage_00 = (MemPage *)&pBt_00->mutex;\n        ptrmapPutOvflPtr((MemPage *)pBt_00,(MemPage *)&pBt_00->mutex,(u8 *)pCell_00,&iStack_88);\n        if (*(char *)&pBt_00->pCursor != '\0') break;\n        uVar3 = (uint)pCell_00 & 3;\n        iVar10 = iVar10 + 2;\n        uVar2 = (uint)(pCell_00 + 3) & 3;\n        pPage_00 = (MemPage *)\n                   ((*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |\n                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8) & -1 << (uVar2 + 1) * 8 |\n                   *(uint *)(pCell_00 + 3 + -uVar2) >> (3 - uVar2) * 8);\n        (*(code *)(iVar4 + -0x229c))(pBt,pPage_00,5,parent,&iStack_88);\n        if (iVar10 == iVar7) goto LAB_0007e18c;\n      }\n      iVar10 = iVar10 + 2;\n    } while (iVar10 != iVar7);\n  }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar7 = (uint)uVar1 << 1;\n    iVar10 = 0;\n    do {\n      while( true ) {\n        pCell_00 = pBt_00->xFreeSchema +\n                   (*(ushort *)((int)&pBt_00->pHasContent->iSize + iVar10) & pBt_00->maxLocal);\n        pPage_00 = (MemPage *)&pBt_00->mutex;\n        ptrmapPutOvflPtr((MemPage *)pBt_00,(MemPage *)&pBt_00->mutex,(u8 *)pCell_00,&iStack_88);\n        if (*(char *)&pBt_00->pCursor != '\0') break;\n        uVar3 = (uint)pCell_00 & 3;\n        iVar10 = iVar10 + 2;\n        uVar2 = (uint)(pCell_00 + 3) & 3;\n        pPage_00 = (MemPage *)\n                   ((*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |\n                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8) & -1 << (uVar2 + 1) * 8 |\n                   *(uint *)(pCell_00 + 3 + -uVar2) >> (3 - uVar2) * 8);\n        (*(code *)(iVar4 + -0x229c))(pBt,pPage_00,5,parent,&iStack_88);\n        if (iVar10 == iVar7) goto LAB_0007e18c;\n      }\n      iVar10 = iVar10 + 2;\n    } while (iVar10 != iVar7);\n  }" { (expression_statement "iVar7 = (uint)uVar1 << 1;" (assignment_expression "iVar7 = (uint)uVar1 << 1" identifier = (binary_expression "(uint)uVar1 << 1" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal)) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n      while( true ) {\n        pCell_00 = pBt_00->xFreeSchema +\n                   (*(ushort *)((int)&pBt_00->pHasContent->iSize + iVar10) & pBt_00->maxLocal);\n        pPage_00 = (MemPage *)&pBt_00->mutex;\n        ptrmapPutOvflPtr((MemPage *)pBt_00,(MemPage *)&pBt_00->mutex,(u8 *)pCell_00,&iStack_88);\n        if (*(char *)&pBt_00->pCursor != '\0') break;\n        uVar3 = (uint)pCell_00 & 3;\n        iVar10 = iVar10 + 2;\n        uVar2 = (uint)(pCell_00 + 3) & 3;\n        pPage_00 = (MemPage *)\n                   ((*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |\n                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8) & -1 << (uVar2 + 1) * 8 |\n                   *(uint *)(pCell_00 + 3 + -uVar2) >> (3 - uVar2) * 8);\n        (*(code *)(iVar4 + -0x229c))(pBt,pPage_00,5,parent,&iStack_88);\n        if (iVar10 == iVar7) goto LAB_0007e18c;\n      }\n      iVar10 = iVar10 + 2;\n    } while (iVar10 != iVar7);" do (compound_statement "{\n      while( true ) {\n        pCell_00 = pBt_00->xFreeSchema +\n                   (*(ushort *)((int)&pBt_00->pHasContent->iSize + iVar10) & pBt_00->maxLocal);\n        pPage_00 = (MemPage *)&pBt_00->mutex;\n        ptrmapPutOvflPtr((MemPage *)pBt_00,(MemPage *)&pBt_00->mutex,(u8 *)pCell_00,&iStack_88);\n        if (*(char *)&pBt_00->pCursor != '\0') break;\n        uVar3 = (uint)pCell_00 & 3;\n        iVar10 = iVar10 + 2;\n        uVar2 = (uint)(pCell_00 + 3) & 3;\n        pPage_00 = (MemPage *)\n                   ((*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |\n                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8) & -1 << (uVar2 + 1) * 8 |\n                   *(uint *)(pCell_00 + 3 + -uVar2) >> (3 - uVar2) * 8);\n        (*(code *)(iVar4 + -0x229c))(pBt,pPage_00,5,parent,&iStack_88);\n        if (iVar10 == iVar7) goto LAB_0007e18c;\n      }\n      iVar10 = iVar10 + 2;\n    }" { (while_statement "while( true ) {\n        pCell_00 = pBt_00->xFreeSchema +\n                   (*(ushort *)((int)&pBt_00->pHasContent->iSize + iVar10) & pBt_00->maxLocal);\n        pPage_00 = (MemPage *)&pBt_00->mutex;\n        ptrmapPutOvflPtr((MemPage *)pBt_00,(MemPage *)&pBt_00->mutex,(u8 *)pCell_00,&iStack_88);\n        if (*(char *)&pBt_00->pCursor != '\0') break;\n        uVar3 = (uint)pCell_00 & 3;\n        iVar10 = iVar10 + 2;\n        uVar2 = (uint)(pCell_00 + 3) & 3;\n        pPage_00 = (MemPage *)\n                   ((*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |\n                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8) & -1 << (uVar2 + 1) * 8 |\n                   *(uint *)(pCell_00 + 3 + -uVar2) >> (3 - uVar2) * 8);\n        (*(code *)(iVar4 + -0x229c))(pBt,pPage_00,5,parent,&iStack_88);\n        if (iVar10 == iVar7) goto LAB_0007e18c;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        pCell_00 = pBt_00->xFreeSchema +\n                   (*(ushort *)((int)&pBt_00->pHasContent->iSize + iVar10) & pBt_00->maxLocal);\n        pPage_00 = (MemPage *)&pBt_00->mutex;\n        ptrmapPutOvflPtr((MemPage *)pBt_00,(MemPage *)&pBt_00->mutex,(u8 *)pCell_00,&iStack_88);\n        if (*(char *)&pBt_00->pCursor != '\0') break;\n        uVar3 = (uint)pCell_00 & 3;\n        iVar10 = iVar10 + 2;\n        uVar2 = (uint)(pCell_00 + 3) & 3;\n        pPage_00 = (MemPage *)\n                   ((*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |\n                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8) & -1 << (uVar2 + 1) * 8 |\n                   *(uint *)(pCell_00 + 3 + -uVar2) >> (3 - uVar2) * 8);\n        (*(code *)(iVar4 + -0x229c))(pBt,pPage_00,5,parent,&iStack_88);\n        if (iVar10 == iVar7) goto LAB_0007e18c;\n      }" { (expression_statement "pCell_00 = pBt_00->xFreeSchema +\n                   (*(ushort *)((int)&pBt_00->pHasContent->iSize + iVar10) & pBt_00->maxLocal);" (assignment_expression "pCell_00 = pBt_00->xFreeSchema +\n                   (*(ushort *)((int)&pBt_00->pHasContent->iSize + iVar10) & pBt_00->maxLocal)" identifier = (binary_expression "pBt_00->xFreeSchema +\n                   (*(ushort *)((int)&pBt_00->pHasContent->iSize + iVar10) & pBt_00->maxLocal)" (field_expression "pBt_00->xFreeSchema" identifier -> field_identifier) + (parenthesized_expression "(*(ushort *)((int)&pBt_00->pHasContent->iSize + iVar10) & pBt_00->maxLocal)" ( (binary_expression "*(ushort *)((int)&pBt_00->pHasContent->iSize + iVar10) & pBt_00->maxLocal" (pointer_expression "*(ushort *)((int)&pBt_00->pHasContent->iSize + iVar10)" * (cast_expression "(ushort *)((int)&pBt_00->pHasContent->iSize + iVar10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pBt_00->pHasContent->iSize + iVar10)" ( (binary_expression "(int)&pBt_00->pHasContent->iSize + iVar10" (cast_expression "(int)&pBt_00->pHasContent->iSize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pBt_00->pHasContent->iSize" & (field_expression "pBt_00->pHasContent->iSize" (field_expression "pBt_00->pHasContent" identifier -> field_identifier) -> field_identifier))) + identifier) )))) & (field_expression "pBt_00->maxLocal" identifier -> field_identifier)) )))) ;) (expression_statement "pPage_00 = (MemPage *)&pBt_00->mutex;" (assignment_expression "pPage_00 = (MemPage *)&pBt_00->mutex" identifier = (cast_expression "(MemPage *)&pBt_00->mutex" ( (type_descriptor "MemPage *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBt_00->mutex" & (field_expression "pBt_00->mutex" identifier -> field_identifier)))) ;) (expression_statement "ptrmapPutOvflPtr((MemPage *)pBt_00,(MemPage *)&pBt_00->mutex,(u8 *)pCell_00,&iStack_88);" (call_expression "ptrmapPutOvflPtr((MemPage *)pBt_00,(MemPage *)&pBt_00->mutex,(u8 *)pCell_00,&iStack_88)" identifier (argument_list "((MemPage *)pBt_00,(MemPage *)&pBt_00->mutex,(u8 *)pCell_00,&iStack_88)" ( (cast_expression "(MemPage *)pBt_00" ( (type_descriptor "MemPage *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(MemPage *)&pBt_00->mutex" ( (type_descriptor "MemPage *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBt_00->mutex" & (field_expression "pBt_00->mutex" identifier -> field_identifier))) , (cast_expression "(u8 *)pCell_00" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&iStack_88" & identifier) ))) ;) (if_statement "if (*(char *)&pBt_00->pCursor != '\0') break;" if (parenthesized_expression "(*(char *)&pBt_00->pCursor != '\0')" ( (binary_expression "*(char *)&pBt_00->pCursor != '\0'" (pointer_expression "*(char *)&pBt_00->pCursor" * (cast_expression "(char *)&pBt_00->pCursor" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBt_00->pCursor" & (field_expression "pBt_00->pCursor" identifier -> field_identifier)))) != (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "uVar3 = (uint)pCell_00 & 3;" (assignment_expression "uVar3 = (uint)pCell_00 & 3" identifier = (binary_expression "(uint)pCell_00 & 3" (cast_expression "(uint)pCell_00" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "iVar10 = iVar10 + 2;" (assignment_expression "iVar10 = iVar10 + 2" identifier = (binary_expression "iVar10 + 2" identifier + number_literal)) ;) (expression_statement "uVar2 = (uint)(pCell_00 + 3) & 3;" (assignment_expression "uVar2 = (uint)(pCell_00 + 3) & 3" identifier = (binary_expression "(uint)(pCell_00 + 3) & 3" (call_expression "(uint)(pCell_00 + 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pCell_00 + 3)" ( (binary_expression "pCell_00 + 3" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "pPage_00 = (MemPage *)\n                   ((*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |\n                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8) & -1 << (uVar2 + 1) * 8 |\n                   *(uint *)(pCell_00 + 3 + -uVar2) >> (3 - uVar2) * 8);" (assignment_expression "pPage_00 = (MemPage *)\n                   ((*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |\n                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8) & -1 << (uVar2 + 1) * 8 |\n                   *(uint *)(pCell_00 + 3 + -uVar2) >> (3 - uVar2) * 8)" identifier = (cast_expression "(MemPage *)\n                   ((*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |\n                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8) & -1 << (uVar2 + 1) * 8 |\n                   *(uint *)(pCell_00 + 3 + -uVar2) >> (3 - uVar2) * 8)" ( (type_descriptor "MemPage *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |\n                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8) & -1 << (uVar2 + 1) * 8 |\n                   *(uint *)(pCell_00 + 3 + -uVar2) >> (3 - uVar2) * 8)" ( (binary_expression "(*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |\n                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8) & -1 << (uVar2 + 1) * 8 |\n                   *(uint *)(pCell_00 + 3 + -uVar2) >> (3 - uVar2) * 8" (binary_expression "(*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |\n                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8) & -1 << (uVar2 + 1) * 8" (parenthesized_expression "(*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |\n                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8)" ( (binary_expression "*(int *)(pCell_00 + -uVar3) << uVar3 * 8 |\n                    (uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8" (binary_expression "*(int *)(pCell_00 + -uVar3) << uVar3 * 8" (pointer_expression "*(int *)(pCell_00 + -uVar3)" * (cast_expression "(int *)(pCell_00 + -uVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pCell_00 + -uVar3)" ( (binary_expression "pCell_00 + -uVar3" identifier + (unary_expression "-uVar3" - identifier)) )))) << (binary_expression "uVar3 * 8" identifier * number_literal)) | (binary_expression "(uint)pPage_00 & 0xffffffffU >> (4 - uVar3) * 8" (cast_expression "(uint)pPage_00" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "0xffffffffU >> (4 - uVar3) * 8" number_literal >> (binary_expression "(4 - uVar3) * 8" (parenthesized_expression "(4 - uVar3)" ( (binary_expression "4 - uVar3" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar2 + 1) * 8" number_literal << (binary_expression "(uVar2 + 1) * 8" (parenthesized_expression "(uVar2 + 1)" ( (binary_expression "uVar2 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)(pCell_00 + 3 + -uVar2) >> (3 - uVar2) * 8" (pointer_expression "*(uint *)(pCell_00 + 3 + -uVar2)" * (cast_expression "(uint *)(pCell_00 + 3 + -uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pCell_00 + 3 + -uVar2)" ( (binary_expression "pCell_00 + 3 + -uVar2" (binary_expression "pCell_00 + 3" identifier + number_literal) + (unary_expression "-uVar2" - identifier)) )))) >> (binary_expression "(3 - uVar2) * 8" (parenthesized_expression "(3 - uVar2)" ( (binary_expression "3 - uVar2" number_literal - identifier) )) * number_literal))) )))) ;) (expression_statement "(*(code *)(iVar4 + -0x229c))(pBt,pPage_00,5,parent,&iStack_88);" (call_expression "(*(code *)(iVar4 + -0x229c))(pBt,pPage_00,5,parent,&iStack_88)" (parenthesized_expression "(*(code *)(iVar4 + -0x229c))" ( (pointer_expression "*(code *)(iVar4 + -0x229c)" * (cast_expression "(code *)(iVar4 + -0x229c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + -0x229c)" ( (binary_expression "iVar4 + -0x229c" identifier + number_literal) )))) )) (argument_list "(pBt,pPage_00,5,parent,&iStack_88)" ( identifier , identifier , number_literal , identifier , (pointer_expression "&iStack_88" & identifier) ))) ;) (if_statement "if (iVar10 == iVar7) goto LAB_0007e18c;" if (parenthesized_expression "(iVar10 == iVar7)" ( (binary_expression "iVar10 == iVar7" identifier == identifier) )) (goto_statement "goto LAB_0007e18c;" goto statement_identifier ;)) })) (expression_statement "iVar10 = iVar10 + 2;" (assignment_expression "iVar10 = iVar10 + 2" identifier = (binary_expression "iVar10 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar10 != iVar7)" ( (binary_expression "iVar10 != iVar7" identifier != identifier) )) ;) })) (labeled_statement "LAB_0007e18c:\n  pCVar6 = (CellInfo *)&DAT_00000005;" statement_identifier : (expression_statement "pCVar6 = (CellInfo *)&DAT_00000005;" (assignment_expression "pCVar6 = (CellInfo *)&DAT_00000005" identifier = (cast_expression "(CellInfo *)&DAT_00000005" ( (type_descriptor "CellInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000005" & identifier))) ;)) (if_statement "if (*(char *)&pBt_00->pCursor == '\0') {\n    pPage_00 = *(MemPage **)(pBt_00->xFreeSchema + *(byte *)((int)&pBt_00->pCursor + 1) + 8);\n    ptrmapPut(pBt,(Pgno)pPage_00,'\x05',(Pgno)parent,&iStack_88);\n  }" if (parenthesized_expression "(*(char *)&pBt_00->pCursor == '\0')" ( (binary_expression "*(char *)&pBt_00->pCursor == '\0'" (pointer_expression "*(char *)&pBt_00->pCursor" * (cast_expression "(char *)&pBt_00->pCursor" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pBt_00->pCursor" & (field_expression "pBt_00->pCursor" identifier -> field_identifier)))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pPage_00 = *(MemPage **)(pBt_00->xFreeSchema + *(byte *)((int)&pBt_00->pCursor + 1) + 8);\n    ptrmapPut(pBt,(Pgno)pPage_00,'\x05',(Pgno)parent,&iStack_88);\n  }" { (expression_statement "pPage_00 = *(MemPage **)(pBt_00->xFreeSchema + *(byte *)((int)&pBt_00->pCursor + 1) + 8);" (assignment_expression "pPage_00 = *(MemPage **)(pBt_00->xFreeSchema + *(byte *)((int)&pBt_00->pCursor + 1) + 8)" identifier = (pointer_expression "*(MemPage **)(pBt_00->xFreeSchema + *(byte *)((int)&pBt_00->pCursor + 1) + 8)" * (cast_expression "(MemPage **)(pBt_00->xFreeSchema + *(byte *)((int)&pBt_00->pCursor + 1) + 8)" ( (type_descriptor "MemPage **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pBt_00->xFreeSchema + *(byte *)((int)&pBt_00->pCursor + 1) + 8)" ( (binary_expression "pBt_00->xFreeSchema + *(byte *)((int)&pBt_00->pCursor + 1) + 8" (binary_expression "pBt_00->xFreeSchema + *(byte *)((int)&pBt_00->pCursor + 1)" (field_expression "pBt_00->xFreeSchema" identifier -> field_identifier) + (pointer_expression "*(byte *)((int)&pBt_00->pCursor + 1)" * (cast_expression "(byte *)((int)&pBt_00->pCursor + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pBt_00->pCursor + 1)" ( (binary_expression "(int)&pBt_00->pCursor + 1" (cast_expression "(int)&pBt_00->pCursor" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pBt_00->pCursor" & (field_expression "pBt_00->pCursor" identifier -> field_identifier))) + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "ptrmapPut(pBt,(Pgno)pPage_00,'\x05',(Pgno)parent,&iStack_88);" (call_expression "ptrmapPut(pBt,(Pgno)pPage_00,'\x05',(Pgno)parent,&iStack_88)" identifier (argument_list "(pBt,(Pgno)pPage_00,'\x05',(Pgno)parent,&iStack_88)" ( identifier , (cast_expression "(Pgno)pPage_00" ( (type_descriptor "Pgno" type_identifier) ) identifier) , (char_literal "'\x05'" ' escape_sequence ') , (cast_expression "(Pgno)parent" ( (type_descriptor "Pgno" type_identifier) ) identifier) , (pointer_expression "&iStack_88" & identifier) ))) ;) })) (labeled_statement "LAB_0007e19c:\n  if (iStack_84 != *piVar9) {\n    pcVar12 = *(code **)(pcVar12 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar12)();\n    iVar7 = *(int *)(iVar4 + 0x34);\n    puVar5 = pPage_00->aData;\n    puVar11 = puVar5;\n    if (pPage_00->pgno == 1) {\n      puVar11 = puVar5 + 100;\n    }\n    iVar10 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar3 = (uint)*(ushort *)(iVar10 + 5);\n    (**(code **)(pcVar12 + 0x77330))\n              (puVar5 + uVar3,*(int *)(iVar4 + 0x38) + uVar3,*(int *)(iVar7 + 0x28) - uVar3);\n    (**(code **)(pcVar12 + 0x77330))\n              (puVar11,iVar10,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12))\n    ;\n    iVar4 = *(int *)(pcVar12 + 0x770ac);\n    pPage_00->isInit = '\0';\n    iVar4 = (*(code *)(iVar4 + 0x4d34))(pPage_00);\n    if ((iVar4 == 0) &&\n       (iVar4 = (*(code *)(*(int *)(pcVar12 + 0x770ac) + 0x5cac))(pPage_00), iVar4 == 0)) {\n      if (*(char *)(iVar7 + 0x11) != '\0') {\n        iVar4 = setChildPtrmaps(pPage_00);\n        *(int *)&pCVar6->nKey = iVar4;\n      }\n    }\n    else {\n      *(int *)&pCVar6->nKey = iVar4;\n    }\n    return;\n  }" statement_identifier : (if_statement "if (iStack_84 != *piVar9) {\n    pcVar12 = *(code **)(pcVar12 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar12)();\n    iVar7 = *(int *)(iVar4 + 0x34);\n    puVar5 = pPage_00->aData;\n    puVar11 = puVar5;\n    if (pPage_00->pgno == 1) {\n      puVar11 = puVar5 + 100;\n    }\n    iVar10 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar3 = (uint)*(ushort *)(iVar10 + 5);\n    (**(code **)(pcVar12 + 0x77330))\n              (puVar5 + uVar3,*(int *)(iVar4 + 0x38) + uVar3,*(int *)(iVar7 + 0x28) - uVar3);\n    (**(code **)(pcVar12 + 0x77330))\n              (puVar11,iVar10,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12))\n    ;\n    iVar4 = *(int *)(pcVar12 + 0x770ac);\n    pPage_00->isInit = '\0';\n    iVar4 = (*(code *)(iVar4 + 0x4d34))(pPage_00);\n    if ((iVar4 == 0) &&\n       (iVar4 = (*(code *)(*(int *)(pcVar12 + 0x770ac) + 0x5cac))(pPage_00), iVar4 == 0)) {\n      if (*(char *)(iVar7 + 0x11) != '\0') {\n        iVar4 = setChildPtrmaps(pPage_00);\n        *(int *)&pCVar6->nKey = iVar4;\n      }\n    }\n    else {\n      *(int *)&pCVar6->nKey = iVar4;\n    }\n    return;\n  }" if (parenthesized_expression "(iStack_84 != *piVar9)" ( (binary_expression "iStack_84 != *piVar9" identifier != (pointer_expression "*piVar9" * identifier)) )) (compound_statement "{\n    pcVar12 = *(code **)(pcVar12 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar12)();\n    iVar7 = *(int *)(iVar4 + 0x34);\n    puVar5 = pPage_00->aData;\n    puVar11 = puVar5;\n    if (pPage_00->pgno == 1) {\n      puVar11 = puVar5 + 100;\n    }\n    iVar10 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar3 = (uint)*(ushort *)(iVar10 + 5);\n    (**(code **)(pcVar12 + 0x77330))\n              (puVar5 + uVar3,*(int *)(iVar4 + 0x38) + uVar3,*(int *)(iVar7 + 0x28) - uVar3);\n    (**(code **)(pcVar12 + 0x77330))\n              (puVar11,iVar10,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12))\n    ;\n    iVar4 = *(int *)(pcVar12 + 0x770ac);\n    pPage_00->isInit = '\0';\n    iVar4 = (*(code *)(iVar4 + 0x4d34))(pPage_00);\n    if ((iVar4 == 0) &&\n       (iVar4 = (*(code *)(*(int *)(pcVar12 + 0x770ac) + 0x5cac))(pPage_00), iVar4 == 0)) {\n      if (*(char *)(iVar7 + 0x11) != '\0') {\n        iVar4 = setChildPtrmaps(pPage_00);\n        *(int *)&pCVar6->nKey = iVar4;\n      }\n    }\n    else {\n      *(int *)&pCVar6->nKey = iVar4;\n    }\n    return;\n  }" { (expression_statement "pcVar12 = *(code **)(pcVar12 + 0x774d0);" (assignment_expression "pcVar12 = *(code **)(pcVar12 + 0x774d0)" identifier = (pointer_expression "*(code **)(pcVar12 + 0x774d0)" * (cast_expression "(code **)(pcVar12 + 0x774d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x774d0)" ( (binary_expression "pcVar12 + 0x774d0" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = iStack_84;" (assignment_expression "iVar4 = iStack_84" identifier = identifier) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *(int *)(iVar4 + 0x34);" (assignment_expression "iVar7 = *(int *)(iVar4 + 0x34)" identifier = (pointer_expression "*(int *)(iVar4 + 0x34)" * (cast_expression "(int *)(iVar4 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "puVar5 = pPage_00->aData;" (assignment_expression "puVar5 = pPage_00->aData" identifier = (field_expression "pPage_00->aData" identifier -> field_identifier)) ;) (expression_statement "puVar11 = puVar5;" (assignment_expression "puVar11 = puVar5" identifier = identifier) ;) (if_statement "if (pPage_00->pgno == 1) {\n      puVar11 = puVar5 + 100;\n    }" if (parenthesized_expression "(pPage_00->pgno == 1)" ( (binary_expression "pPage_00->pgno == 1" (field_expression "pPage_00->pgno" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      puVar11 = puVar5 + 100;\n    }" { (expression_statement "puVar11 = puVar5 + 100;" (assignment_expression "puVar11 = puVar5 + 100" identifier = (binary_expression "puVar5 + 100" identifier + number_literal)) ;) })) (expression_statement "iVar10 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);" (assignment_expression "iVar10 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9)" identifier = (binary_expression "*(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9)" (pointer_expression "*(int *)(iVar4 + 0x38)" * (cast_expression "(int *)(iVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) + (binary_expression "(uint)*(byte *)(iVar4 + 9)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar4 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 9)" ( (binary_expression "iVar4 + 9" identifier + number_literal) )))))) ;) (expression_statement "uVar3 = (uint)*(ushort *)(iVar10 + 5);" (assignment_expression "uVar3 = (uint)*(ushort *)(iVar10 + 5)" identifier = (binary_expression "(uint)*(ushort *)(iVar10 + 5)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar10 + 5)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 5)" ( (binary_expression "iVar10 + 5" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar12 + 0x77330))\n              (puVar5 + uVar3,*(int *)(iVar4 + 0x38) + uVar3,*(int *)(iVar7 + 0x28) - uVar3);" (call_expression "(**(code **)(pcVar12 + 0x77330))\n              (puVar5 + uVar3,*(int *)(iVar4 + 0x38) + uVar3,*(int *)(iVar7 + 0x28) - uVar3)" (parenthesized_expression "(**(code **)(pcVar12 + 0x77330))" ( (pointer_expression "**(code **)(pcVar12 + 0x77330)" * (pointer_expression "*(code **)(pcVar12 + 0x77330)" * (cast_expression "(code **)(pcVar12 + 0x77330)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x77330)" ( (binary_expression "pcVar12 + 0x77330" identifier + number_literal) ))))) )) (argument_list "(puVar5 + uVar3,*(int *)(iVar4 + 0x38) + uVar3,*(int *)(iVar7 + 0x28) - uVar3)" ( (binary_expression "puVar5 + uVar3" identifier + identifier) , (binary_expression "*(int *)(iVar4 + 0x38) + uVar3" (pointer_expression "*(int *)(iVar4 + 0x38)" * (cast_expression "(int *)(iVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) + identifier) , (binary_expression "*(int *)(iVar7 + 0x28) - uVar3" (pointer_expression "*(int *)(iVar7 + 0x28)" * (cast_expression "(int *)(iVar7 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x28)" ( (binary_expression "iVar7 + 0x28" identifier + number_literal) )))) - identifier) ))) ;) (expression_statement "(**(code **)(pcVar12 + 0x77330))\n              (puVar11,iVar10,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12))\n    ;" (call_expression "(**(code **)(pcVar12 + 0x77330))\n              (puVar11,iVar10,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12))" (parenthesized_expression "(**(code **)(pcVar12 + 0x77330))" ( (pointer_expression "**(code **)(pcVar12 + 0x77330)" * (pointer_expression "*(code **)(pcVar12 + 0x77330)" * (cast_expression "(code **)(pcVar12 + 0x77330)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x77330)" ( (binary_expression "pcVar12 + 0x77330" identifier + number_literal) ))))) )) (argument_list "(puVar11,iVar10,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12))" ( identifier , identifier , (binary_expression "(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12)" (binary_expression "(uint)*(ushort *)(iVar4 + 0x18) * 2" (binary_expression "(uint)*(ushort *)(iVar4 + 0x18)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar4 + 0x18)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) * number_literal) + (binary_expression "(uint)*(ushort *)(iVar4 + 0x12)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar4 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x12)" ( (binary_expression "iVar4 + 0x12" identifier + number_literal) ))))) ))) ;) (expression_statement "iVar4 = *(int *)(pcVar12 + 0x770ac);" (assignment_expression "iVar4 = *(int *)(pcVar12 + 0x770ac)" identifier = (pointer_expression "*(int *)(pcVar12 + 0x770ac)" * (cast_expression "(int *)(pcVar12 + 0x770ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x770ac)" ( (binary_expression "pcVar12 + 0x770ac" identifier + number_literal) ))))) ;) (expression_statement "pPage_00->isInit = '\0';" (assignment_expression "pPage_00->isInit = '\0'" (field_expression "pPage_00->isInit" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar4 = (*(code *)(iVar4 + 0x4d34))(pPage_00);" (assignment_expression "iVar4 = (*(code *)(iVar4 + 0x4d34))(pPage_00)" identifier = (call_expression "(*(code *)(iVar4 + 0x4d34))(pPage_00)" (parenthesized_expression "(*(code *)(iVar4 + 0x4d34))" ( (pointer_expression "*(code *)(iVar4 + 0x4d34)" * (cast_expression "(code *)(iVar4 + 0x4d34)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4d34)" ( (binary_expression "iVar4 + 0x4d34" identifier + number_literal) )))) )) (argument_list "(pPage_00)" ( identifier )))) ;) (if_statement "if ((iVar4 == 0) &&\n       (iVar4 = (*(code *)(*(int *)(pcVar12 + 0x770ac) + 0x5cac))(pPage_00), iVar4 == 0)) {\n      if (*(char *)(iVar7 + 0x11) != '\0') {\n        iVar4 = setChildPtrmaps(pPage_00);\n        *(int *)&pCVar6->nKey = iVar4;\n      }\n    }\n    else {\n      *(int *)&pCVar6->nKey = iVar4;\n    }" if (parenthesized_expression "((iVar4 == 0) &&\n       (iVar4 = (*(code *)(*(int *)(pcVar12 + 0x770ac) + 0x5cac))(pPage_00), iVar4 == 0))" ( (binary_expression "(iVar4 == 0) &&\n       (iVar4 = (*(code *)(*(int *)(pcVar12 + 0x770ac) + 0x5cac))(pPage_00), iVar4 == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar4 = (*(code *)(*(int *)(pcVar12 + 0x770ac) + 0x5cac))(pPage_00), iVar4 == 0)" ( (comma_expression "iVar4 = (*(code *)(*(int *)(pcVar12 + 0x770ac) + 0x5cac))(pPage_00), iVar4 == 0" (assignment_expression "iVar4 = (*(code *)(*(int *)(pcVar12 + 0x770ac) + 0x5cac))(pPage_00)" identifier = (call_expression "(*(code *)(*(int *)(pcVar12 + 0x770ac) + 0x5cac))(pPage_00)" (parenthesized_expression "(*(code *)(*(int *)(pcVar12 + 0x770ac) + 0x5cac))" ( (pointer_expression "*(code *)(*(int *)(pcVar12 + 0x770ac) + 0x5cac)" * (cast_expression "(code *)(*(int *)(pcVar12 + 0x770ac) + 0x5cac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar12 + 0x770ac) + 0x5cac)" ( (binary_expression "*(int *)(pcVar12 + 0x770ac) + 0x5cac" (pointer_expression "*(int *)(pcVar12 + 0x770ac)" * (cast_expression "(int *)(pcVar12 + 0x770ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x770ac)" ( (binary_expression "pcVar12 + 0x770ac" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pPage_00)" ( identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      if (*(char *)(iVar7 + 0x11) != '\0') {\n        iVar4 = setChildPtrmaps(pPage_00);\n        *(int *)&pCVar6->nKey = iVar4;\n      }\n    }" { (if_statement "if (*(char *)(iVar7 + 0x11) != '\0') {\n        iVar4 = setChildPtrmaps(pPage_00);\n        *(int *)&pCVar6->nKey = iVar4;\n      }" if (parenthesized_expression "(*(char *)(iVar7 + 0x11) != '\0')" ( (binary_expression "*(char *)(iVar7 + 0x11) != '\0'" (pointer_expression "*(char *)(iVar7 + 0x11)" * (cast_expression "(char *)(iVar7 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x11)" ( (binary_expression "iVar7 + 0x11" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar4 = setChildPtrmaps(pPage_00);\n        *(int *)&pCVar6->nKey = iVar4;\n      }" { (expression_statement "iVar4 = setChildPtrmaps(pPage_00);" (assignment_expression "iVar4 = setChildPtrmaps(pPage_00)" identifier = (call_expression "setChildPtrmaps(pPage_00)" identifier (argument_list "(pPage_00)" ( identifier )))) ;) (expression_statement "*(int *)&pCVar6->nKey = iVar4;" (assignment_expression "*(int *)&pCVar6->nKey = iVar4" (pointer_expression "*(int *)&pCVar6->nKey" * (cast_expression "(int *)&pCVar6->nKey" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pCVar6->nKey" & (field_expression "pCVar6->nKey" identifier -> field_identifier)))) = identifier) ;) })) }) (else_clause "else {\n      *(int *)&pCVar6->nKey = iVar4;\n    }" else (compound_statement "{\n      *(int *)&pCVar6->nKey = iVar4;\n    }" { (expression_statement "*(int *)&pCVar6->nKey = iVar4;" (assignment_expression "*(int *)&pCVar6->nKey = iVar4" (pointer_expression "*(int *)&pCVar6->nKey" * (cast_expression "(int *)&pCVar6->nKey" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pCVar6->nKey" & (field_expression "pCVar6->nKey" identifier -> field_identifier)))) = identifier) ;) }))) (return_statement "return;" return ;) }))) (return_statement "return;" return ;) })))
(translation_unit "uint FUN_0007df5c(char *param_1,uint *param_2,uint *param_3,int *param_4)\n\n{\n  ushort uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  uint *unaff_s0;\n  int iVar11;\n  char *unaff_s2;\n  int *unaff_s3;\n  int *piVar12;\n  int iVar13;\n  undefined4 uVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  uint uStack_88;\n  int iStack_84;\n  uint *puStack_80;\n  undefined *puStack_7c;\n  char *pcStack_78;\n  int *piStack_74;\n  uint *puStack_70;\n  uint auStack_38 [3];\n  uint local_2c;\n  ushort local_28;\n  ushort local_26;\n  uint local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_1c = *(uint *)PTR___stack_chk_guard_000f5568;\n  pcVar7 = param_1;\n  puVar9 = param_2;\n  puVar10 = param_3;\n  puStack_80 = unaff_s0;\n  pcStack_78 = unaff_s2;\n  piStack_74 = unaff_s3;\n  if (*param_4 == 0) {\n    puVar10 = auStack_38;\n    puVar9 = param_3;\n    (**(code **)(param_1 + 0x50))();\n    puStack_80 = param_3;\n    pcStack_78 = param_1;\n    piStack_74 = param_4;\n    if (local_28 < local_2c) {\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }\n  }\n  uVar3 = *(uint *)puVar2;\n  if (local_1c == uVar3) {\n    return uVar3;\n  }\n  puVar15 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  uVar6 = *(undefined4 *)(pcVar7 + 0x34);\n  puStack_7c = puVar2;\n  piVar12 = *(int **)(puVar15 + 0x774f8);\n  uVar14 = *(undefined4 *)(pcVar7 + 4);\n  iStack_84 = *piVar12;\n  puStack_70 = param_2;\n  if (*pcVar7 == '\0') {\n    uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();\n    if (uStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  else {\n    uStack_88 = 0;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  iVar4 = *(int *)(puVar15 + 0x77284);\n  if (uVar1 != 0) {\n    iVar11 = (uint)uVar1 << 1;\n    iVar13 = 0;\n    do {\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    } while (iVar13 != iVar11);\n  }\nLAB_0007e18c:\n  puVar10 = (uint *)&DAT_00000005;\n  if (pcVar7[8] == '\0') {\n    puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);\n    FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);\n  }\nLAB_0007e19c:\n  if (iStack_84 != *piVar12) {\n    pcVar16 = *(code **)(puVar15 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar16)();\n    iVar11 = *(int *)(iVar4 + 0x34);\n    uVar8 = puVar9[0xe];\n    uVar3 = uVar8;\n    if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }\n    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar5 = (uint)*(ushort *)(iVar13 + 5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));\n    iVar4 = *(int *)(pcVar16 + 0x770ac);\n    *(char *)puVar9 = '\0';\n    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);\n    if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }\n    return uVar3;\n  }\n  return uStack_88;\n}\n\n" (function_definition "uint FUN_0007df5c(char *param_1,uint *param_2,uint *param_3,int *param_4)\n\n{\n  ushort uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  uint *unaff_s0;\n  int iVar11;\n  char *unaff_s2;\n  int *unaff_s3;\n  int *piVar12;\n  int iVar13;\n  undefined4 uVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  uint uStack_88;\n  int iStack_84;\n  uint *puStack_80;\n  undefined *puStack_7c;\n  char *pcStack_78;\n  int *piStack_74;\n  uint *puStack_70;\n  uint auStack_38 [3];\n  uint local_2c;\n  ushort local_28;\n  ushort local_26;\n  uint local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_1c = *(uint *)PTR___stack_chk_guard_000f5568;\n  pcVar7 = param_1;\n  puVar9 = param_2;\n  puVar10 = param_3;\n  puStack_80 = unaff_s0;\n  pcStack_78 = unaff_s2;\n  piStack_74 = unaff_s3;\n  if (*param_4 == 0) {\n    puVar10 = auStack_38;\n    puVar9 = param_3;\n    (**(code **)(param_1 + 0x50))();\n    puStack_80 = param_3;\n    pcStack_78 = param_1;\n    piStack_74 = param_4;\n    if (local_28 < local_2c) {\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }\n  }\n  uVar3 = *(uint *)puVar2;\n  if (local_1c == uVar3) {\n    return uVar3;\n  }\n  puVar15 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  uVar6 = *(undefined4 *)(pcVar7 + 0x34);\n  puStack_7c = puVar2;\n  piVar12 = *(int **)(puVar15 + 0x774f8);\n  uVar14 = *(undefined4 *)(pcVar7 + 4);\n  iStack_84 = *piVar12;\n  puStack_70 = param_2;\n  if (*pcVar7 == '\0') {\n    uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();\n    if (uStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  else {\n    uStack_88 = 0;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  iVar4 = *(int *)(puVar15 + 0x77284);\n  if (uVar1 != 0) {\n    iVar11 = (uint)uVar1 << 1;\n    iVar13 = 0;\n    do {\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    } while (iVar13 != iVar11);\n  }\nLAB_0007e18c:\n  puVar10 = (uint *)&DAT_00000005;\n  if (pcVar7[8] == '\0') {\n    puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);\n    FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);\n  }\nLAB_0007e19c:\n  if (iStack_84 != *piVar12) {\n    pcVar16 = *(code **)(puVar15 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar16)();\n    iVar11 = *(int *)(iVar4 + 0x34);\n    uVar8 = puVar9[0xe];\n    uVar3 = uVar8;\n    if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }\n    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar5 = (uint)*(ushort *)(iVar13 + 5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));\n    iVar4 = *(int *)(pcVar16 + 0x770ac);\n    *(char *)puVar9 = '\0';\n    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);\n    if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }\n    return uVar3;\n  }\n  return uStack_88;\n}" type_identifier (function_declarator "FUN_0007df5c(char *param_1,uint *param_2,uint *param_3,int *param_4)" identifier (parameter_list "(char *param_1,uint *param_2,uint *param_3,int *param_4)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  uint *unaff_s0;\n  int iVar11;\n  char *unaff_s2;\n  int *unaff_s3;\n  int *piVar12;\n  int iVar13;\n  undefined4 uVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  uint uStack_88;\n  int iStack_84;\n  uint *puStack_80;\n  undefined *puStack_7c;\n  char *pcStack_78;\n  int *piStack_74;\n  uint *puStack_70;\n  uint auStack_38 [3];\n  uint local_2c;\n  ushort local_28;\n  ushort local_26;\n  uint local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_1c = *(uint *)PTR___stack_chk_guard_000f5568;\n  pcVar7 = param_1;\n  puVar9 = param_2;\n  puVar10 = param_3;\n  puStack_80 = unaff_s0;\n  pcStack_78 = unaff_s2;\n  piStack_74 = unaff_s3;\n  if (*param_4 == 0) {\n    puVar10 = auStack_38;\n    puVar9 = param_3;\n    (**(code **)(param_1 + 0x50))();\n    puStack_80 = param_3;\n    pcStack_78 = param_1;\n    piStack_74 = param_4;\n    if (local_28 < local_2c) {\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }\n  }\n  uVar3 = *(uint *)puVar2;\n  if (local_1c == uVar3) {\n    return uVar3;\n  }\n  puVar15 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  uVar6 = *(undefined4 *)(pcVar7 + 0x34);\n  puStack_7c = puVar2;\n  piVar12 = *(int **)(puVar15 + 0x774f8);\n  uVar14 = *(undefined4 *)(pcVar7 + 4);\n  iStack_84 = *piVar12;\n  puStack_70 = param_2;\n  if (*pcVar7 == '\0') {\n    uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();\n    if (uStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  else {\n    uStack_88 = 0;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  iVar4 = *(int *)(puVar15 + 0x77284);\n  if (uVar1 != 0) {\n    iVar11 = (uint)uVar1 << 1;\n    iVar13 = 0;\n    do {\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    } while (iVar13 != iVar11);\n  }\nLAB_0007e18c:\n  puVar10 = (uint *)&DAT_00000005;\n  if (pcVar7[8] == '\0') {\n    puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);\n    FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);\n  }\nLAB_0007e19c:\n  if (iStack_84 != *piVar12) {\n    pcVar16 = *(code **)(puVar15 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar16)();\n    iVar11 = *(int *)(iVar4 + 0x34);\n    uVar8 = puVar9[0xe];\n    uVar3 = uVar8;\n    if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }\n    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar5 = (uint)*(ushort *)(iVar13 + 5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));\n    iVar4 = *(int *)(pcVar16 + 0x770ac);\n    *(char *)puVar9 = '\0';\n    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);\n    if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }\n    return uVar3;\n  }\n  return uStack_88;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "char *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "int *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint uStack_88;" type_identifier identifier ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "uint *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "undefined *puStack_7c;" type_identifier (pointer_declarator "*puStack_7c" * identifier) ;) (declaration "char *pcStack_78;" primitive_type (pointer_declarator "*pcStack_78" * identifier) ;) (declaration "int *piStack_74;" primitive_type (pointer_declarator "*piStack_74" * identifier) ;) (declaration "uint *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "uint auStack_38 [3];" type_identifier (array_declarator "auStack_38 [3]" identifier [ number_literal ]) ;) (declaration "uint local_2c;" type_identifier identifier ;) (declaration "ushort local_28;" type_identifier identifier ;) (declaration "ushort local_26;" type_identifier identifier ;) (declaration "uint local_1c;" type_identifier identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "local_1c = *(uint *)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_1c = *(uint *)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(uint *)PTR___stack_chk_guard_000f5568" * (cast_expression "(uint *)PTR___stack_chk_guard_000f5568" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar7 = param_1;" (assignment_expression "pcVar7 = param_1" identifier = identifier) ;) (expression_statement "puVar9 = param_2;" (assignment_expression "puVar9 = param_2" identifier = identifier) ;) (expression_statement "puVar10 = param_3;" (assignment_expression "puVar10 = param_3" identifier = identifier) ;) (expression_statement "puStack_80 = unaff_s0;" (assignment_expression "puStack_80 = unaff_s0" identifier = identifier) ;) (expression_statement "pcStack_78 = unaff_s2;" (assignment_expression "pcStack_78 = unaff_s2" identifier = identifier) ;) (expression_statement "piStack_74 = unaff_s3;" (assignment_expression "piStack_74 = unaff_s3" identifier = identifier) ;) (if_statement "if (*param_4 == 0) {\n    puVar10 = auStack_38;\n    puVar9 = param_3;\n    (**(code **)(param_1 + 0x50))();\n    puStack_80 = param_3;\n    pcStack_78 = param_1;\n    piStack_74 = param_4;\n    if (local_28 < local_2c) {\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }\n  }" if (parenthesized_expression "(*param_4 == 0)" ( (binary_expression "*param_4 == 0" (pointer_expression "*param_4" * identifier) == number_literal) )) (compound_statement "{\n    puVar10 = auStack_38;\n    puVar9 = param_3;\n    (**(code **)(param_1 + 0x50))();\n    puStack_80 = param_3;\n    pcStack_78 = param_1;\n    piStack_74 = param_4;\n    if (local_28 < local_2c) {\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }\n  }" { (expression_statement "puVar10 = auStack_38;" (assignment_expression "puVar10 = auStack_38" identifier = identifier) ;) (expression_statement "puVar9 = param_3;" (assignment_expression "puVar9 = param_3" identifier = identifier) ;) (expression_statement "(**(code **)(param_1 + 0x50))();" (call_expression "(**(code **)(param_1 + 0x50))()" (parenthesized_expression "(**(code **)(param_1 + 0x50))" ( (pointer_expression "**(code **)(param_1 + 0x50)" * (pointer_expression "*(code **)(param_1 + 0x50)" * (cast_expression "(code **)(param_1 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_80 = param_3;" (assignment_expression "puStack_80 = param_3" identifier = identifier) ;) (expression_statement "pcStack_78 = param_1;" (assignment_expression "pcStack_78 = param_1" identifier = identifier) ;) (expression_statement "piStack_74 = param_4;" (assignment_expression "piStack_74 = param_4" identifier = identifier) ;) (if_statement "if (local_28 < local_2c) {\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }" if (parenthesized_expression "(local_28 < local_2c)" ( (binary_expression "local_28 < local_2c" identifier < identifier) )) (compound_statement "{\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }" { (if_statement "if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }" if (parenthesized_expression "(((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2))" ( (binary_expression "((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)" (parenthesized_expression "((uint *)*param_2 < param_3)" ( (binary_expression "(uint *)*param_2 < param_3" (cast_expression "(uint *)*param_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) < identifier) )) || (parenthesized_expression "((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)" ( (binary_expression "(uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2" (cast_expression "(uint *)((int)param_3 + (uint)local_28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + (uint)local_28)" ( (binary_expression "(int)param_3 + (uint)local_28" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)local_28" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (cast_expression "(uint *)*param_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ))) )) (compound_statement "{\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }" { (expression_statement "puVar10 = (uint *)0x3;" (assignment_expression "puVar10 = (uint *)0x3" identifier = (cast_expression "(uint *)0x3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar7 = *(char **)(param_1 + 0x34);" (assignment_expression "pcVar7 = *(char **)(param_1 + 0x34)" identifier = (pointer_expression "*(char **)(param_1 + 0x34)" * (cast_expression "(char **)(param_1 + 0x34)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];" (assignment_expression "puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1]" identifier = (cast_expression "(uint *)((uint *)((int)param_3 + (uint)local_26))[-1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((uint *)((int)param_3 + (uint)local_26))[-1]" (parenthesized_expression "((uint *)((int)param_3 + (uint)local_26))" ( (cast_expression "(uint *)((int)param_3 + (uint)local_26)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + (uint)local_26)" ( (binary_expression "(int)param_3 + (uint)local_26" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)local_26" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) [ number_literal ]))) ;) (expression_statement "FUN_0007dd64();" (call_expression "FUN_0007dd64()" identifier (argument_list "()" ( ))) ;) (expression_statement "puStack_80 = (uint *)((int)param_3 + (uint)local_26);" (assignment_expression "puStack_80 = (uint *)((int)param_3 + (uint)local_26)" identifier = (cast_expression "(uint *)((int)param_3 + (uint)local_26)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + (uint)local_26)" ( (binary_expression "(int)param_3 + (uint)local_26" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)local_26" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) }) (else_clause "else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }" else (compound_statement "{\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }" { (expression_statement "pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);" (assignment_expression "pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1)" identifier = (cast_expression "(char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1)" ( (binary_expression "(int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1" (cast_expression "(int)&Elf32_Phdr_ARRAY_00010034[8].p_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&Elf32_Phdr_ARRAY_00010034[8].p_flags" & (field_expression "Elf32_Phdr_ARRAY_00010034[8].p_flags" (subscript_expression "Elf32_Phdr_ARRAY_00010034[8]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();" (assignment_expression "iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))()" identifier = (call_expression "(*(code *)(PTR_LAB_000f52e8 + 0x4904))()" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + 0x4904))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + 0x4904)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + 0x4904)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + 0x4904)" ( (binary_expression "PTR_LAB_000f52e8 + 0x4904" identifier + number_literal) )))) )) (argument_list "()" ( )))) ;) (expression_statement "*param_4 = iVar4;" (assignment_expression "*param_4 = iVar4" (pointer_expression "*param_4" * identifier) = identifier) ;) }))) })) })) (expression_statement "uVar3 = *(uint *)puVar2;" (assignment_expression "uVar3 = *(uint *)puVar2" identifier = (pointer_expression "*(uint *)puVar2" * (cast_expression "(uint *)puVar2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (local_1c == uVar3) {\n    return uVar3;\n  }" if (parenthesized_expression "(local_1c == uVar3)" ( (binary_expression "local_1c == uVar3" identifier == identifier) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (expression_statement "puVar15 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar15 = PTR___stack_chk_fail_000f5540" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar6 = *(undefined4 *)(pcVar7 + 0x34);" (assignment_expression "uVar6 = *(undefined4 *)(pcVar7 + 0x34)" identifier = (pointer_expression "*(undefined4 *)(pcVar7 + 0x34)" * (cast_expression "(undefined4 *)(pcVar7 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x34)" ( (binary_expression "pcVar7 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "puStack_7c = puVar2;" (assignment_expression "puStack_7c = puVar2" identifier = identifier) ;) (expression_statement "piVar12 = *(int **)(puVar15 + 0x774f8);" (assignment_expression "piVar12 = *(int **)(puVar15 + 0x774f8)" identifier = (pointer_expression "*(int **)(puVar15 + 0x774f8)" * (cast_expression "(int **)(puVar15 + 0x774f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x774f8)" ( (binary_expression "puVar15 + 0x774f8" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(undefined4 *)(pcVar7 + 4);" (assignment_expression "uVar14 = *(undefined4 *)(pcVar7 + 4)" identifier = (pointer_expression "*(undefined4 *)(pcVar7 + 4)" * (cast_expression "(undefined4 *)(pcVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 4)" ( (binary_expression "pcVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "iStack_84 = *piVar12;" (assignment_expression "iStack_84 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "puStack_70 = param_2;" (assignment_expression "puStack_70 = param_2" identifier = identifier) ;) (if_statement "if (*pcVar7 == '\0') {\n    uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();\n    if (uStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  else {\n    uStack_88 = 0;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }" if (parenthesized_expression "(*pcVar7 == '\0')" ( (binary_expression "*pcVar7 == '\0'" (pointer_expression "*pcVar7" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();\n    if (uStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }" { (expression_statement "uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();" (assignment_expression "uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))()" identifier = (call_expression "(*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))()" (parenthesized_expression "(*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))" ( (pointer_expression "*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34)" * (cast_expression "(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0x77278) + 0x4d34)" ( (binary_expression "*(int *)(puVar15 + 0x77278) + 0x4d34" (pointer_expression "*(int *)(puVar15 + 0x77278)" * (cast_expression "(int *)(puVar15 + 0x77278)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x77278)" ( (binary_expression "puVar15 + 0x77278" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (if_statement "if (uStack_88 != 0) goto LAB_0007e19c;" if (parenthesized_expression "(uStack_88 != 0)" ( (binary_expression "uStack_88 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0007e19c;" goto statement_identifier ;)) (expression_statement "uVar1 = *(ushort *)(pcVar7 + 0x18);" (assignment_expression "uVar1 = *(ushort *)(pcVar7 + 0x18)" identifier = (pointer_expression "*(ushort *)(pcVar7 + 0x18)" * (cast_expression "(ushort *)(pcVar7 + 0x18)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x18)" ( (binary_expression "pcVar7 + 0x18" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    uStack_88 = 0;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }" else (compound_statement "{\n    uStack_88 = 0;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }" { (expression_statement "uStack_88 = 0;" (assignment_expression "uStack_88 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = *(ushort *)(pcVar7 + 0x18);" (assignment_expression "uVar1 = *(ushort *)(pcVar7 + 0x18)" identifier = (pointer_expression "*(ushort *)(pcVar7 + 0x18)" * (cast_expression "(ushort *)(pcVar7 + 0x18)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x18)" ( (binary_expression "pcVar7 + 0x18" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar4 = *(int *)(puVar15 + 0x77284);" (assignment_expression "iVar4 = *(int *)(puVar15 + 0x77284)" identifier = (pointer_expression "*(int *)(puVar15 + 0x77284)" * (cast_expression "(int *)(puVar15 + 0x77284)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x77284)" ( (binary_expression "puVar15 + 0x77284" identifier + number_literal) ))))) ;) (if_statement "if (uVar1 != 0) {\n    iVar11 = (uint)uVar1 << 1;\n    iVar13 = 0;\n    do {\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    } while (iVar13 != iVar11);\n  }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar11 = (uint)uVar1 << 1;\n    iVar13 = 0;\n    do {\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    } while (iVar13 != iVar11);\n  }" { (expression_statement "iVar11 = (uint)uVar1 << 1;" (assignment_expression "iVar11 = (uint)uVar1 << 1" identifier = (binary_expression "(uint)uVar1 << 1" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal)) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    } while (iVar13 != iVar11);" do (compound_statement "{\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    }" { (while_statement "while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }" { (expression_statement "uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));" (assignment_expression "uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a))" identifier = (binary_expression "*(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a))" (pointer_expression "*(int *)(pcVar7 + 0x38)" * (cast_expression "(int *)(pcVar7 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x38)" ( (binary_expression "pcVar7 + 0x38" identifier + number_literal) )))) + (call_expression "(uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a))" ( (binary_expression "*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a)" (pointer_expression "*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13)" * (cast_expression "(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar7 + 0x40) + iVar13)" ( (binary_expression "*(int *)(pcVar7 + 0x40) + iVar13" (pointer_expression "*(int *)(pcVar7 + 0x40)" * (cast_expression "(int *)(pcVar7 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x40)" ( (binary_expression "pcVar7 + 0x40" identifier + number_literal) )))) + identifier) )))) & (pointer_expression "*(ushort *)(pcVar7 + 0x1a)" * (cast_expression "(ushort *)(pcVar7 + 0x1a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x1a)" ( (binary_expression "pcVar7 + 0x1a" identifier + number_literal) ))))) ))))) ;) (expression_statement "puVar9 = (uint *)(pcVar7 + 0x3c);" (assignment_expression "puVar9 = (uint *)(pcVar7 + 0x3c)" identifier = (cast_expression "(uint *)(pcVar7 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x3c)" ( (binary_expression "pcVar7 + 0x3c" identifier + number_literal) )))) ;) (expression_statement "FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);" (call_expression "FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88)" identifier (argument_list "(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88)" ( identifier , (binary_expression "pcVar7 + 0x3c" identifier + number_literal) , identifier , (pointer_expression "&uStack_88" & identifier) ))) ;) (if_statement "if (pcVar7[8] != '\0') break;" if (parenthesized_expression "(pcVar7[8] != '\0')" ( (binary_expression "pcVar7[8] != '\0'" (subscript_expression "pcVar7[8]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = uVar3 & 3;" (assignment_expression "uVar8 = uVar3 & 3" identifier = (binary_expression "uVar3 & 3" identifier & number_literal)) ;) (expression_statement "iVar13 = iVar13 + 2;" (assignment_expression "iVar13 = iVar13 + 2" identifier = (binary_expression "iVar13 + 2" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar3 + 3 & 3;" (assignment_expression "uVar5 = uVar3 + 3 & 3" identifier = (binary_expression "uVar3 + 3 & 3" (binary_expression "uVar3 + 3" identifier + number_literal) & number_literal)) ;) (expression_statement "puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);" (assignment_expression "puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8)" identifier = (cast_expression "(uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8)" ( (binary_expression "(*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8" (binary_expression "(*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8" (parenthesized_expression "(*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8)" ( (binary_expression "*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8" (binary_expression "*(int *)(uVar3 - uVar8) << uVar8 * 8" (pointer_expression "*(int *)(uVar3 - uVar8)" * (cast_expression "(int *)(uVar3 - uVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 - uVar8)" ( (binary_expression "uVar3 - uVar8" identifier - identifier) )))) << (binary_expression "uVar8 * 8" identifier * number_literal)) | (binary_expression "(uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "0xffffffffU >> (4 - uVar8) * 8" number_literal >> (binary_expression "(4 - uVar8) * 8" (parenthesized_expression "(4 - uVar8)" ( (binary_expression "4 - uVar8" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar5 + 1) * 8" number_literal << (binary_expression "(uVar5 + 1) * 8" (parenthesized_expression "(uVar5 + 1)" ( (binary_expression "uVar5 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8" (pointer_expression "*(uint *)((uVar3 + 3) - uVar5)" * (cast_expression "(uint *)((uVar3 + 3) - uVar5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar3 + 3) - uVar5)" ( (binary_expression "(uVar3 + 3) - uVar5" (parenthesized_expression "(uVar3 + 3)" ( (binary_expression "uVar3 + 3" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar5) * 8" (parenthesized_expression "(3 - uVar5)" ( (binary_expression "3 - uVar5" number_literal - identifier) )) * number_literal))) )))) ;) (expression_statement "(*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);" (call_expression "(*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88)" (parenthesized_expression "(*(code *)(iVar4 + -0x229c))" ( (pointer_expression "*(code *)(iVar4 + -0x229c)" * (cast_expression "(code *)(iVar4 + -0x229c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + -0x229c)" ( (binary_expression "iVar4 + -0x229c" identifier + number_literal) )))) )) (argument_list "(uVar6,puVar9,5,uVar14,&uStack_88)" ( identifier , identifier , number_literal , identifier , (pointer_expression "&uStack_88" & identifier) ))) ;) (if_statement "if (iVar13 == iVar11) goto LAB_0007e18c;" if (parenthesized_expression "(iVar13 == iVar11)" ( (binary_expression "iVar13 == iVar11" identifier == identifier) )) (goto_statement "goto LAB_0007e18c;" goto statement_identifier ;)) })) (expression_statement "iVar13 = iVar13 + 2;" (assignment_expression "iVar13 = iVar13 + 2" identifier = (binary_expression "iVar13 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != iVar11)" ( (binary_expression "iVar13 != iVar11" identifier != identifier) )) ;) })) (labeled_statement "LAB_0007e18c:\n  puVar10 = (uint *)&DAT_00000005;" statement_identifier : (expression_statement "puVar10 = (uint *)&DAT_00000005;" (assignment_expression "puVar10 = (uint *)&DAT_00000005" identifier = (cast_expression "(uint *)&DAT_00000005" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000005" & identifier))) ;)) (if_statement "if (pcVar7[8] == '\0') {\n    puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);\n    FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);\n  }" if (parenthesized_expression "(pcVar7[8] == '\0')" ( (binary_expression "pcVar7[8] == '\0'" (subscript_expression "pcVar7[8]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);\n    FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);\n  }" { (expression_statement "puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);" (assignment_expression "puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8)" identifier = (pointer_expression "*(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8)" * (cast_expression "(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8)" ( (binary_expression "*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8" (binary_expression "*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9]" (pointer_expression "*(int *)(pcVar7 + 0x38)" * (cast_expression "(int *)(pcVar7 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x38)" ( (binary_expression "pcVar7 + 0x38" identifier + number_literal) )))) + (cast_expression "(uint)(byte)pcVar7[9]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar7[9]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar7[9]" identifier [ number_literal ])))) + number_literal) ))))) ;) (expression_statement "FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);" (call_expression "FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88)" identifier (argument_list "(uVar6,puVar9,5,uVar14,&uStack_88)" ( identifier , identifier , number_literal , identifier , (pointer_expression "&uStack_88" & identifier) ))) ;) })) (labeled_statement "LAB_0007e19c:\n  if (iStack_84 != *piVar12) {\n    pcVar16 = *(code **)(puVar15 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar16)();\n    iVar11 = *(int *)(iVar4 + 0x34);\n    uVar8 = puVar9[0xe];\n    uVar3 = uVar8;\n    if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }\n    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar5 = (uint)*(ushort *)(iVar13 + 5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));\n    iVar4 = *(int *)(pcVar16 + 0x770ac);\n    *(char *)puVar9 = '\0';\n    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);\n    if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }\n    return uVar3;\n  }" statement_identifier : (if_statement "if (iStack_84 != *piVar12) {\n    pcVar16 = *(code **)(puVar15 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar16)();\n    iVar11 = *(int *)(iVar4 + 0x34);\n    uVar8 = puVar9[0xe];\n    uVar3 = uVar8;\n    if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }\n    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar5 = (uint)*(ushort *)(iVar13 + 5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));\n    iVar4 = *(int *)(pcVar16 + 0x770ac);\n    *(char *)puVar9 = '\0';\n    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);\n    if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }\n    return uVar3;\n  }" if (parenthesized_expression "(iStack_84 != *piVar12)" ( (binary_expression "iStack_84 != *piVar12" identifier != (pointer_expression "*piVar12" * identifier)) )) (compound_statement "{\n    pcVar16 = *(code **)(puVar15 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar16)();\n    iVar11 = *(int *)(iVar4 + 0x34);\n    uVar8 = puVar9[0xe];\n    uVar3 = uVar8;\n    if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }\n    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar5 = (uint)*(ushort *)(iVar13 + 5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));\n    iVar4 = *(int *)(pcVar16 + 0x770ac);\n    *(char *)puVar9 = '\0';\n    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);\n    if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }\n    return uVar3;\n  }" { (expression_statement "pcVar16 = *(code **)(puVar15 + 0x774d0);" (assignment_expression "pcVar16 = *(code **)(puVar15 + 0x774d0)" identifier = (pointer_expression "*(code **)(puVar15 + 0x774d0)" * (cast_expression "(code **)(puVar15 + 0x774d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x774d0)" ( (binary_expression "puVar15 + 0x774d0" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = iStack_84;" (assignment_expression "iVar4 = iStack_84" identifier = identifier) ;) (expression_statement "(*pcVar16)();" (call_expression "(*pcVar16)()" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar11 = *(int *)(iVar4 + 0x34);" (assignment_expression "iVar11 = *(int *)(iVar4 + 0x34)" identifier = (pointer_expression "*(int *)(iVar4 + 0x34)" * (cast_expression "(int *)(iVar4 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = puVar9[0xe];" (assignment_expression "uVar8 = puVar9[0xe]" identifier = (subscript_expression "puVar9[0xe]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = uVar8;" (assignment_expression "uVar3 = uVar8" identifier = identifier) ;) (if_statement "if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }" if (parenthesized_expression "(puVar9[1] == 1)" ( (binary_expression "puVar9[1] == 1" (subscript_expression "puVar9[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      uVar3 = uVar8 + 100;\n    }" { (expression_statement "uVar3 = uVar8 + 100;" (assignment_expression "uVar3 = uVar8 + 100" identifier = (binary_expression "uVar8 + 100" identifier + number_literal)) ;) })) (expression_statement "iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);" (assignment_expression "iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9)" identifier = (binary_expression "*(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9)" (pointer_expression "*(int *)(iVar4 + 0x38)" * (cast_expression "(int *)(iVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) + (binary_expression "(uint)*(byte *)(iVar4 + 9)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar4 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 9)" ( (binary_expression "iVar4 + 9" identifier + number_literal) )))))) ;) (expression_statement "uVar5 = (uint)*(ushort *)(iVar13 + 5);" (assignment_expression "uVar5 = (uint)*(ushort *)(iVar13 + 5)" identifier = (binary_expression "(uint)*(ushort *)(iVar13 + 5)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar13 + 5)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 5)" ( (binary_expression "iVar13 + 5" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);" (call_expression "(**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5)" (parenthesized_expression "(**(code **)(pcVar16 + 0x77330))" ( (pointer_expression "**(code **)(pcVar16 + 0x77330)" * (pointer_expression "*(code **)(pcVar16 + 0x77330)" * (cast_expression "(code **)(pcVar16 + 0x77330)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x77330)" ( (binary_expression "pcVar16 + 0x77330" identifier + number_literal) ))))) )) (argument_list "(uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5)" ( (binary_expression "uVar8 + uVar5" identifier + identifier) , (binary_expression "*(int *)(iVar4 + 0x38) + uVar5" (pointer_expression "*(int *)(iVar4 + 0x38)" * (cast_expression "(int *)(iVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) + identifier) , (binary_expression "*(int *)(iVar11 + 0x28) - uVar5" (pointer_expression "*(int *)(iVar11 + 0x28)" * (cast_expression "(int *)(iVar11 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) )))) - identifier) ))) ;) (expression_statement "(**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));" (call_expression "(**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12))" (parenthesized_expression "(**(code **)(pcVar16 + 0x77330))" ( (pointer_expression "**(code **)(pcVar16 + 0x77330)" * (pointer_expression "*(code **)(pcVar16 + 0x77330)" * (cast_expression "(code **)(pcVar16 + 0x77330)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x77330)" ( (binary_expression "pcVar16 + 0x77330" identifier + number_literal) ))))) )) (argument_list "(uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12))" ( identifier , identifier , (binary_expression "(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12)" (binary_expression "(uint)*(ushort *)(iVar4 + 0x18) * 2" (binary_expression "(uint)*(ushort *)(iVar4 + 0x18)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar4 + 0x18)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) * number_literal) + (binary_expression "(uint)*(ushort *)(iVar4 + 0x12)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar4 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x12)" ( (binary_expression "iVar4 + 0x12" identifier + number_literal) ))))) ))) ;) (expression_statement "iVar4 = *(int *)(pcVar16 + 0x770ac);" (assignment_expression "iVar4 = *(int *)(pcVar16 + 0x770ac)" identifier = (pointer_expression "*(int *)(pcVar16 + 0x770ac)" * (cast_expression "(int *)(pcVar16 + 0x770ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x770ac)" ( (binary_expression "pcVar16 + 0x770ac" identifier + number_literal) ))))) ;) (expression_statement "*(char *)puVar9 = '\0';" (assignment_expression "*(char *)puVar9 = '\0'" (pointer_expression "*(char *)puVar9" * (cast_expression "(char *)puVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);" (assignment_expression "uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9)" identifier = (call_expression "(*(code *)(iVar4 + 0x4d34))(puVar9)" (parenthesized_expression "(*(code *)(iVar4 + 0x4d34))" ( (pointer_expression "*(code *)(iVar4 + 0x4d34)" * (cast_expression "(code *)(iVar4 + 0x4d34)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4d34)" ( (binary_expression "iVar4 + 0x4d34" identifier + number_literal) )))) )) (argument_list "(puVar9)" ( identifier )))) ;) (if_statement "if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }" if (parenthesized_expression "((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0))" ( (binary_expression "(uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)" (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)" ( (comma_expression "uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0" (assignment_expression "uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9)" identifier = (call_expression "(*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9)" (parenthesized_expression "(*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))" ( (pointer_expression "*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac)" * (cast_expression "(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar16 + 0x770ac) + 0x5cac)" ( (binary_expression "*(int *)(pcVar16 + 0x770ac) + 0x5cac" (pointer_expression "*(int *)(pcVar16 + 0x770ac)" * (cast_expression "(int *)(pcVar16 + 0x770ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 0x770ac)" ( (binary_expression "pcVar16 + 0x770ac" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(puVar9)" ( identifier )))) , (binary_expression "uVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }" { (expression_statement "uVar3 = (uint)*(byte *)(iVar11 + 0x11);" (assignment_expression "uVar3 = (uint)*(byte *)(iVar11 + 0x11)" identifier = (binary_expression "(uint)*(byte *)(iVar11 + 0x11)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar11 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x11)" ( (binary_expression "iVar11 + 0x11" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }" { (expression_statement "uVar3 = FUN_0007e070(puVar9);" (assignment_expression "uVar3 = FUN_0007e070(puVar9)" identifier = (call_expression "FUN_0007e070(puVar9)" identifier (argument_list "(puVar9)" ( identifier )))) ;) (expression_statement "*puVar10 = uVar3;" (assignment_expression "*puVar10 = uVar3" (pointer_expression "*puVar10" * identifier) = identifier) ;) })) }) (else_clause "else {\n      *puVar10 = uVar3;\n    }" else (compound_statement "{\n      *puVar10 = uVar3;\n    }" { (expression_statement "*puVar10 = uVar3;" (assignment_expression "*puVar10 = uVar3" (pointer_expression "*puVar10" * identifier) = identifier) ;) }))) (return_statement "return uVar3;" return identifier ;) }))) (return_statement "return uStack_88;" 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 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (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 ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) < IDENT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) <= (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) [ LIT ]))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_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 IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) << (binary_expression IDENT * LIT)) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) )) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) )))) >> (binary_expression (parenthesized_expression ( (binary_expression LIT - 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 , IDENT , LIT , IDENT , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , (pointer_expression & IDENT) ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (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 ( (binary_expression IDENT + IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) ))) ;) (expression_statement (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 , (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (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 (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) (return_statement return IDENT ;) }))) (return_statement return IDENT ;) })))
(function_definition "uint FUN_0007df5c(char *param_1,uint *param_2,uint *param_3,int *param_4)\n\n{\n  ushort uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  uint *unaff_s0;\n  int iVar11;\n  char *unaff_s2;\n  int *unaff_s3;\n  int *piVar12;\n  int iVar13;\n  undefined4 uVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  uint uStack_88;\n  int iStack_84;\n  uint *puStack_80;\n  undefined *puStack_7c;\n  char *pcStack_78;\n  int *piStack_74;\n  uint *puStack_70;\n  uint auStack_38 [3];\n  uint local_2c;\n  ushort local_28;\n  ushort local_26;\n  uint local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_1c = *(uint *)PTR___stack_chk_guard_000f5568;\n  pcVar7 = param_1;\n  puVar9 = param_2;\n  puVar10 = param_3;\n  puStack_80 = unaff_s0;\n  pcStack_78 = unaff_s2;\n  piStack_74 = unaff_s3;\n  if (*param_4 == 0) {\n    puVar10 = auStack_38;\n    puVar9 = param_3;\n    (**(code **)(param_1 + 0x50))();\n    puStack_80 = param_3;\n    pcStack_78 = param_1;\n    piStack_74 = param_4;\n    if (local_28 < local_2c) {\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }\n  }\n  uVar3 = *(uint *)puVar2;\n  if (local_1c == uVar3) {\n    return uVar3;\n  }\n  puVar15 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  uVar6 = *(undefined4 *)(pcVar7 + 0x34);\n  puStack_7c = puVar2;\n  piVar12 = *(int **)(puVar15 + 0x774f8);\n  uVar14 = *(undefined4 *)(pcVar7 + 4);\n  iStack_84 = *piVar12;\n  puStack_70 = param_2;\n  if (*pcVar7 == '\0') {\n    uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();\n    if (uStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  else {\n    uStack_88 = 0;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  iVar4 = *(int *)(puVar15 + 0x77284);\n  if (uVar1 != 0) {\n    iVar11 = (uint)uVar1 << 1;\n    iVar13 = 0;\n    do {\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    } while (iVar13 != iVar11);\n  }\nLAB_0007e18c:\n  puVar10 = (uint *)&DAT_00000005;\n  if (pcVar7[8] == '\0') {\n    puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);\n    FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);\n  }\nLAB_0007e19c:\n  if (iStack_84 != *piVar12) {\n    pcVar16 = *(code **)(puVar15 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar16)();\n    iVar11 = *(int *)(iVar4 + 0x34);\n    uVar8 = puVar9[0xe];\n    uVar3 = uVar8;\n    if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }\n    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar5 = (uint)*(ushort *)(iVar13 + 5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));\n    iVar4 = *(int *)(pcVar16 + 0x770ac);\n    *(char *)puVar9 = '\0';\n    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);\n    if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }\n    return uVar3;\n  }\n  return uStack_88;\n}" (type_identifier "uint") (function_declarator "FUN_0007df5c(char *param_1,uint *param_2,uint *param_3,int *param_4)" (identifier "FUN_0007df5c") (parameter_list "(char *param_1,uint *param_2,uint *param_3,int *param_4)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  ushort uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  uint uVar8;\n  uint *puVar9;\n  uint *puVar10;\n  uint *unaff_s0;\n  int iVar11;\n  char *unaff_s2;\n  int *unaff_s3;\n  int *piVar12;\n  int iVar13;\n  undefined4 uVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  uint uStack_88;\n  int iStack_84;\n  uint *puStack_80;\n  undefined *puStack_7c;\n  char *pcStack_78;\n  int *piStack_74;\n  uint *puStack_70;\n  uint auStack_38 [3];\n  uint local_2c;\n  ushort local_28;\n  ushort local_26;\n  uint local_1c;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  local_1c = *(uint *)PTR___stack_chk_guard_000f5568;\n  pcVar7 = param_1;\n  puVar9 = param_2;\n  puVar10 = param_3;\n  puStack_80 = unaff_s0;\n  pcStack_78 = unaff_s2;\n  piStack_74 = unaff_s3;\n  if (*param_4 == 0) {\n    puVar10 = auStack_38;\n    puVar9 = param_3;\n    (**(code **)(param_1 + 0x50))();\n    puStack_80 = param_3;\n    pcStack_78 = param_1;\n    piStack_74 = param_4;\n    if (local_28 < local_2c) {\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }\n  }\n  uVar3 = *(uint *)puVar2;\n  if (local_1c == uVar3) {\n    return uVar3;\n  }\n  puVar15 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  uVar6 = *(undefined4 *)(pcVar7 + 0x34);\n  puStack_7c = puVar2;\n  piVar12 = *(int **)(puVar15 + 0x774f8);\n  uVar14 = *(undefined4 *)(pcVar7 + 4);\n  iStack_84 = *piVar12;\n  puStack_70 = param_2;\n  if (*pcVar7 == '\0') {\n    uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();\n    if (uStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  else {\n    uStack_88 = 0;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  iVar4 = *(int *)(puVar15 + 0x77284);\n  if (uVar1 != 0) {\n    iVar11 = (uint)uVar1 << 1;\n    iVar13 = 0;\n    do {\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    } while (iVar13 != iVar11);\n  }\nLAB_0007e18c:\n  puVar10 = (uint *)&DAT_00000005;\n  if (pcVar7[8] == '\0') {\n    puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);\n    FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);\n  }\nLAB_0007e19c:\n  if (iStack_84 != *piVar12) {\n    pcVar16 = *(code **)(puVar15 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar16)();\n    iVar11 = *(int *)(iVar4 + 0x34);\n    uVar8 = puVar9[0xe];\n    uVar3 = uVar8;\n    if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }\n    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar5 = (uint)*(ushort *)(iVar13 + 5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));\n    iVar4 = *(int *)(pcVar16 + 0x770ac);\n    *(char *)puVar9 = '\0';\n    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);\n    if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }\n    return uVar3;\n  }\n  return uStack_88;\n}" ({ "{") (declaration "ushort uVar1;" (type_identifier "ushort") (identifier "uVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint *puVar9;" (type_identifier "uint") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "uint *puVar10;" (type_identifier "uint") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "uint *unaff_s0;" (type_identifier "uint") (pointer_declarator "*unaff_s0" (* "*") (identifier "unaff_s0")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "char *unaff_s2;" (primitive_type "char") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "int *unaff_s3;" (primitive_type "int") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "undefined4 uVar14;" (type_identifier "undefined4") (identifier "uVar14") (; ";")) (declaration "undefined *puVar15;" (type_identifier "undefined") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "code *pcVar16;" (type_identifier "code") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "uint uStack_88;" (type_identifier "uint") (identifier "uStack_88") (; ";")) (declaration "int iStack_84;" (primitive_type "int") (identifier "iStack_84") (; ";")) (declaration "uint *puStack_80;" (type_identifier "uint") (pointer_declarator "*puStack_80" (* "*") (identifier "puStack_80")) (; ";")) (declaration "undefined *puStack_7c;" (type_identifier "undefined") (pointer_declarator "*puStack_7c" (* "*") (identifier "puStack_7c")) (; ";")) (declaration "char *pcStack_78;" (primitive_type "char") (pointer_declarator "*pcStack_78" (* "*") (identifier "pcStack_78")) (; ";")) (declaration "int *piStack_74;" (primitive_type "int") (pointer_declarator "*piStack_74" (* "*") (identifier "piStack_74")) (; ";")) (declaration "uint *puStack_70;" (type_identifier "uint") (pointer_declarator "*puStack_70" (* "*") (identifier "puStack_70")) (; ";")) (declaration "uint auStack_38 [3];" (type_identifier "uint") (array_declarator "auStack_38 [3]" (identifier "auStack_38") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "uint local_2c;" (type_identifier "uint") (identifier "local_2c") (; ";")) (declaration "ushort local_28;" (type_identifier "ushort") (identifier "local_28") (; ";")) (declaration "ushort local_26;" (type_identifier "ushort") (identifier "local_26") (; ";")) (declaration "uint local_1c;" (type_identifier "uint") (identifier "local_1c") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000f5568" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_000f5568")) (; ";")) (expression_statement "local_1c = *(uint *)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_1c = *(uint *)PTR___stack_chk_guard_000f5568" (identifier "local_1c") (= "=") (pointer_expression "*(uint *)PTR___stack_chk_guard_000f5568" (* "*") (cast_expression "(uint *)PTR___stack_chk_guard_000f5568" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000f5568")))) (; ";")) (expression_statement "pcVar7 = param_1;" (assignment_expression "pcVar7 = param_1" (identifier "pcVar7") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puVar9 = param_2;" (assignment_expression "puVar9 = param_2" (identifier "puVar9") (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar10 = param_3;" (assignment_expression "puVar10 = param_3" (identifier "puVar10") (= "=") (identifier "param_3")) (; ";")) (expression_statement "puStack_80 = unaff_s0;" (assignment_expression "puStack_80 = unaff_s0" (identifier "puStack_80") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "pcStack_78 = unaff_s2;" (assignment_expression "pcStack_78 = unaff_s2" (identifier "pcStack_78") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "piStack_74 = unaff_s3;" (assignment_expression "piStack_74 = unaff_s3" (identifier "piStack_74") (= "=") (identifier "unaff_s3")) (; ";")) (if_statement "if (*param_4 == 0) {\n    puVar10 = auStack_38;\n    puVar9 = param_3;\n    (**(code **)(param_1 + 0x50))();\n    puStack_80 = param_3;\n    pcStack_78 = param_1;\n    piStack_74 = param_4;\n    if (local_28 < local_2c) {\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*param_4 == 0)" (( "(") (binary_expression "*param_4 == 0" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar10 = auStack_38;\n    puVar9 = param_3;\n    (**(code **)(param_1 + 0x50))();\n    puStack_80 = param_3;\n    pcStack_78 = param_1;\n    piStack_74 = param_4;\n    if (local_28 < local_2c) {\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }\n  }" ({ "{") (expression_statement "puVar10 = auStack_38;" (assignment_expression "puVar10 = auStack_38" (identifier "puVar10") (= "=") (identifier "auStack_38")) (; ";")) (expression_statement "puVar9 = param_3;" (assignment_expression "puVar9 = param_3" (identifier "puVar9") (= "=") (identifier "param_3")) (; ";")) (expression_statement "(**(code **)(param_1 + 0x50))();" (call_expression "(**(code **)(param_1 + 0x50))()" (parenthesized_expression "(**(code **)(param_1 + 0x50))" (( "(") (pointer_expression "**(code **)(param_1 + 0x50)" (* "*") (pointer_expression "*(code **)(param_1 + 0x50)" (* "*") (cast_expression "(code **)(param_1 + 0x50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_80 = param_3;" (assignment_expression "puStack_80 = param_3" (identifier "puStack_80") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pcStack_78 = param_1;" (assignment_expression "pcStack_78 = param_1" (identifier "pcStack_78") (= "=") (identifier "param_1")) (; ";")) (expression_statement "piStack_74 = param_4;" (assignment_expression "piStack_74 = param_4" (identifier "piStack_74") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (local_28 < local_2c) {\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }" (if "if") (parenthesized_expression "(local_28 < local_2c)" (( "(") (binary_expression "local_28 < local_2c" (identifier "local_28") (< "<") (identifier "local_2c")) () ")")) (compound_statement "{\n      if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }\n    }" ({ "{") (if_statement "if (((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }\n      else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }" (if "if") (parenthesized_expression "(((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2))" (( "(") (binary_expression "((uint *)*param_2 < param_3) ||\n         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)" (parenthesized_expression "((uint *)*param_2 < param_3)" (( "(") (binary_expression "(uint *)*param_2 < param_3" (cast_expression "(uint *)*param_2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (< "<") (identifier "param_3")) () ")")) (|| "||") (parenthesized_expression "((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)" (( "(") (binary_expression "(uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2" (cast_expression "(uint *)((int)param_3 + (uint)local_28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + (uint)local_28)" (( "(") (binary_expression "(int)param_3 + (uint)local_28" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (cast_expression "(uint)local_28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_28"))) () ")"))) (<= "<=") (cast_expression "(uint *)*param_2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) () ")"))) () ")")) (compound_statement "{\n        puVar10 = (uint *)0x3;\n        pcVar7 = *(char **)(param_1 + 0x34);\n        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];\n        FUN_0007dd64();\n        puStack_80 = (uint *)((int)param_3 + (uint)local_26);\n      }" ({ "{") (expression_statement "puVar10 = (uint *)0x3;" (assignment_expression "puVar10 = (uint *)0x3" (identifier "puVar10") (= "=") (cast_expression "(uint *)0x3" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) (; ";")) (expression_statement "pcVar7 = *(char **)(param_1 + 0x34);" (assignment_expression "pcVar7 = *(char **)(param_1 + 0x34)" (identifier "pcVar7") (= "=") (pointer_expression "*(char **)(param_1 + 0x34)" (* "*") (cast_expression "(char **)(param_1 + 0x34)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];" (assignment_expression "puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1]" (identifier "puVar9") (= "=") (cast_expression "(uint *)((uint *)((int)param_3 + (uint)local_26))[-1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "((uint *)((int)param_3 + (uint)local_26))[-1]" (parenthesized_expression "((uint *)((int)param_3 + (uint)local_26))" (( "(") (cast_expression "(uint *)((int)param_3 + (uint)local_26)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + (uint)local_26)" (( "(") (binary_expression "(int)param_3 + (uint)local_26" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (cast_expression "(uint)local_26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_26"))) () ")"))) () ")")) ([ "[") (number_literal "-1") (] "]")))) (; ";")) (expression_statement "FUN_0007dd64();" (call_expression "FUN_0007dd64()" (identifier "FUN_0007dd64") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_80 = (uint *)((int)param_3 + (uint)local_26);" (assignment_expression "puStack_80 = (uint *)((int)param_3 + (uint)local_26)" (identifier "puStack_80") (= "=") (cast_expression "(uint *)((int)param_3 + (uint)local_26)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + (uint)local_26)" (( "(") (binary_expression "(int)param_3 + (uint)local_26" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (cast_expression "(uint)local_26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_26"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }" (else "else") (compound_statement "{\n        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);\n        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();\n        *param_4 = iVar4;\n      }" ({ "{") (expression_statement "pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);" (assignment_expression "pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1)" (identifier "pcVar7") (= "=") (cast_expression "(char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1)" (( "(") (binary_expression "(int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1" (cast_expression "(int)&Elf32_Phdr_ARRAY_00010034[8].p_flags" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&Elf32_Phdr_ARRAY_00010034[8].p_flags" (& "&") (field_expression "Elf32_Phdr_ARRAY_00010034[8].p_flags" (subscript_expression "Elf32_Phdr_ARRAY_00010034[8]" (identifier "Elf32_Phdr_ARRAY_00010034") ([ "[") (number_literal "8") (] "]")) (. ".") (field_identifier "p_flags")))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();" (assignment_expression "iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))()" (identifier "iVar4") (= "=") (call_expression "(*(code *)(PTR_LAB_000f52e8 + 0x4904))()" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + 0x4904))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + 0x4904)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + 0x4904)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + 0x4904)" (( "(") (binary_expression "PTR_LAB_000f52e8 + 0x4904" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "0x4904")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*param_4 = iVar4;" (assignment_expression "*param_4 = iVar4" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "iVar4")) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "uVar3 = *(uint *)puVar2;" (assignment_expression "uVar3 = *(uint *)puVar2" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)puVar2" (* "*") (cast_expression "(uint *)puVar2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) (; ";")) (if_statement "if (local_1c == uVar3) {\n    return uVar3;\n  }" (if "if") (parenthesized_expression "(local_1c == uVar3)" (( "(") (binary_expression "local_1c == uVar3" (identifier "local_1c") (== "==") (identifier "uVar3")) () ")")) (compound_statement "{\n    return uVar3;\n  }" ({ "{") (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (expression_statement "puVar15 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar15 = PTR___stack_chk_fail_000f5540" (identifier "puVar15") (= "=") (identifier "PTR___stack_chk_fail_000f5540")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000f5540" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000f5540"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar6 = *(undefined4 *)(pcVar7 + 0x34);" (assignment_expression "uVar6 = *(undefined4 *)(pcVar7 + 0x34)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(pcVar7 + 0x34)" (* "*") (cast_expression "(undefined4 *)(pcVar7 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x34)" (( "(") (binary_expression "pcVar7 + 0x34" (identifier "pcVar7") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "puStack_7c = puVar2;" (assignment_expression "puStack_7c = puVar2" (identifier "puStack_7c") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "piVar12 = *(int **)(puVar15 + 0x774f8);" (assignment_expression "piVar12 = *(int **)(puVar15 + 0x774f8)" (identifier "piVar12") (= "=") (pointer_expression "*(int **)(puVar15 + 0x774f8)" (* "*") (cast_expression "(int **)(puVar15 + 0x774f8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x774f8)" (( "(") (binary_expression "puVar15 + 0x774f8" (identifier "puVar15") (+ "+") (number_literal "0x774f8")) () ")"))))) (; ";")) (expression_statement "uVar14 = *(undefined4 *)(pcVar7 + 4);" (assignment_expression "uVar14 = *(undefined4 *)(pcVar7 + 4)" (identifier "uVar14") (= "=") (pointer_expression "*(undefined4 *)(pcVar7 + 4)" (* "*") (cast_expression "(undefined4 *)(pcVar7 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 4)" (( "(") (binary_expression "pcVar7 + 4" (identifier "pcVar7") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iStack_84 = *piVar12;" (assignment_expression "iStack_84 = *piVar12" (identifier "iStack_84") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "puStack_70 = param_2;" (assignment_expression "puStack_70 = param_2" (identifier "puStack_70") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (*pcVar7 == '\0') {\n    uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();\n    if (uStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }\n  else {\n    uStack_88 = 0;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }" (if "if") (parenthesized_expression "(*pcVar7 == '\0')" (( "(") (binary_expression "*pcVar7 == '\0'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();\n    if (uStack_88 != 0) goto LAB_0007e19c;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }" ({ "{") (expression_statement "uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();" (assignment_expression "uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))()" (identifier "uStack_88") (= "=") (call_expression "(*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))()" (parenthesized_expression "(*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))" (( "(") (pointer_expression "*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34)" (* "*") (cast_expression "(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + 0x77278) + 0x4d34)" (( "(") (binary_expression "*(int *)(puVar15 + 0x77278) + 0x4d34" (pointer_expression "*(int *)(puVar15 + 0x77278)" (* "*") (cast_expression "(int *)(puVar15 + 0x77278)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x77278)" (( "(") (binary_expression "puVar15 + 0x77278" (identifier "puVar15") (+ "+") (number_literal "0x77278")) () ")")))) (+ "+") (number_literal "0x4d34")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (uStack_88 != 0) goto LAB_0007e19c;" (if "if") (parenthesized_expression "(uStack_88 != 0)" (( "(") (binary_expression "uStack_88 != 0" (identifier "uStack_88") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007e19c;" (goto "goto") (statement_identifier "LAB_0007e19c") (; ";"))) (expression_statement "uVar1 = *(ushort *)(pcVar7 + 0x18);" (assignment_expression "uVar1 = *(ushort *)(pcVar7 + 0x18)" (identifier "uVar1") (= "=") (pointer_expression "*(ushort *)(pcVar7 + 0x18)" (* "*") (cast_expression "(ushort *)(pcVar7 + 0x18)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x18)" (( "(") (binary_expression "pcVar7 + 0x18" (identifier "pcVar7") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    uStack_88 = 0;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }" (else "else") (compound_statement "{\n    uStack_88 = 0;\n    uVar1 = *(ushort *)(pcVar7 + 0x18);\n  }" ({ "{") (expression_statement "uStack_88 = 0;" (assignment_expression "uStack_88 = 0" (identifier "uStack_88") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = *(ushort *)(pcVar7 + 0x18);" (assignment_expression "uVar1 = *(ushort *)(pcVar7 + 0x18)" (identifier "uVar1") (= "=") (pointer_expression "*(ushort *)(pcVar7 + 0x18)" (* "*") (cast_expression "(ushort *)(pcVar7 + 0x18)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x18)" (( "(") (binary_expression "pcVar7 + 0x18" (identifier "pcVar7") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}")))) (expression_statement "iVar4 = *(int *)(puVar15 + 0x77284);" (assignment_expression "iVar4 = *(int *)(puVar15 + 0x77284)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar15 + 0x77284)" (* "*") (cast_expression "(int *)(puVar15 + 0x77284)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x77284)" (( "(") (binary_expression "puVar15 + 0x77284" (identifier "puVar15") (+ "+") (number_literal "0x77284")) () ")"))))) (; ";")) (if_statement "if (uVar1 != 0) {\n    iVar11 = (uint)uVar1 << 1;\n    iVar13 = 0;\n    do {\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    } while (iVar13 != iVar11);\n  }" (if "if") (parenthesized_expression "(uVar1 != 0)" (( "(") (binary_expression "uVar1 != 0" (identifier "uVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar11 = (uint)uVar1 << 1;\n    iVar13 = 0;\n    do {\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    } while (iVar13 != iVar11);\n  }" ({ "{") (expression_statement "iVar11 = (uint)uVar1 << 1;" (assignment_expression "iVar11 = (uint)uVar1 << 1" (identifier "iVar11") (= "=") (binary_expression "(uint)uVar1 << 1" (cast_expression "(uint)uVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar1")) (<< "<<") (number_literal "1"))) (; ";")) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    } while (iVar13 != iVar11);" (do "do") (compound_statement "{\n      while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }\n      iVar13 = iVar13 + 2;\n    }" ({ "{") (while_statement "while( true ) {\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));\n        puVar9 = (uint *)(pcVar7 + 0x3c);\n        FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);\n        if (pcVar7[8] != '\0') break;\n        uVar8 = uVar3 & 3;\n        iVar13 = iVar13 + 2;\n        uVar5 = uVar3 + 3 & 3;\n        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);\n        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);\n        if (iVar13 == iVar11) goto LAB_0007e18c;\n      }" ({ "{") (expression_statement "uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));" (assignment_expression "uVar3 = *(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a))" (identifier "uVar3") (= "=") (binary_expression "*(int *)(pcVar7 + 0x38) +\n                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a))" (pointer_expression "*(int *)(pcVar7 + 0x38)" (* "*") (cast_expression "(int *)(pcVar7 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x38)" (( "(") (binary_expression "pcVar7 + 0x38" (identifier "pcVar7") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (call_expression "(uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a))" (( "(") (binary_expression "*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a)" (pointer_expression "*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13)" (* "*") (cast_expression "(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar7 + 0x40) + iVar13)" (( "(") (binary_expression "*(int *)(pcVar7 + 0x40) + iVar13" (pointer_expression "*(int *)(pcVar7 + 0x40)" (* "*") (cast_expression "(int *)(pcVar7 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x40)" (( "(") (binary_expression "pcVar7 + 0x40" (identifier "pcVar7") (+ "+") (number_literal "0x40")) () ")")))) (+ "+") (identifier "iVar13")) () ")")))) (& "&") (pointer_expression "*(ushort *)(pcVar7 + 0x1a)" (* "*") (cast_expression "(ushort *)(pcVar7 + 0x1a)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x1a)" (( "(") (binary_expression "pcVar7 + 0x1a" (identifier "pcVar7") (+ "+") (number_literal "0x1a")) () ")"))))) () ")"))))) (; ";")) (expression_statement "puVar9 = (uint *)(pcVar7 + 0x3c);" (assignment_expression "puVar9 = (uint *)(pcVar7 + 0x3c)" (identifier "puVar9") (= "=") (cast_expression "(uint *)(pcVar7 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x3c)" (( "(") (binary_expression "pcVar7 + 0x3c" (identifier "pcVar7") (+ "+") (number_literal "0x3c")) () ")")))) (; ";")) (expression_statement "FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);" (call_expression "FUN_0007df5c(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88)" (identifier "FUN_0007df5c") (argument_list "(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88)" (( "(") (identifier "pcVar7") (, ",") (binary_expression "pcVar7 + 0x3c" (identifier "pcVar7") (+ "+") (number_literal "0x3c")) (, ",") (identifier "uVar3") (, ",") (pointer_expression "&uStack_88" (& "&") (identifier "uStack_88")) () ")"))) (; ";")) (if_statement "if (pcVar7[8] != '\0') break;" (if "if") (parenthesized_expression "(pcVar7[8] != '\0')" (( "(") (binary_expression "pcVar7[8] != '\0'" (subscript_expression "pcVar7[8]" (identifier "pcVar7") ([ "[") (number_literal "8") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar8 = uVar3 & 3;" (assignment_expression "uVar8 = uVar3 & 3" (identifier "uVar8") (= "=") (binary_expression "uVar3 & 3" (identifier "uVar3") (& "&") (number_literal "3"))) (; ";")) (expression_statement "iVar13 = iVar13 + 2;" (assignment_expression "iVar13 = iVar13 + 2" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 2" (identifier "iVar13") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar5 = uVar3 + 3 & 3;" (assignment_expression "uVar5 = uVar3 + 3 & 3" (identifier "uVar5") (= "=") (binary_expression "uVar3 + 3 & 3" (binary_expression "uVar3 + 3" (identifier "uVar3") (+ "+") (number_literal "3")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);" (assignment_expression "puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8)" (identifier "puVar9") (= "=") (cast_expression "(uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8)" (( "(") (binary_expression "(*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |\n                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8" (binary_expression "(*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8" (parenthesized_expression "(*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8)" (( "(") (binary_expression "*(int *)(uVar3 - uVar8) << uVar8 * 8 |\n                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8" (binary_expression "*(int *)(uVar3 - uVar8) << uVar8 * 8" (pointer_expression "*(int *)(uVar3 - uVar8)" (* "*") (cast_expression "(int *)(uVar3 - uVar8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar3 - uVar8)" (( "(") (binary_expression "uVar3 - uVar8" (identifier "uVar3") (- "-") (identifier "uVar8")) () ")")))) (<< "<<") (binary_expression "uVar8 * 8" (identifier "uVar8") (* "*") (number_literal "8"))) (| "|") (binary_expression "(uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8" (cast_expression "(uint)puVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar9")) (& "&") (binary_expression "0xffffffffU >> (4 - uVar8) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(4 - uVar8) * 8" (parenthesized_expression "(4 - uVar8)" (( "(") (binary_expression "4 - uVar8" (number_literal "4") (- "-") (identifier "uVar8")) () ")")) (* "*") (number_literal "8"))))) () ")")) (& "&") (binary_expression "-1 << (uVar5 + 1) * 8" (number_literal "-1") (<< "<<") (binary_expression "(uVar5 + 1) * 8" (parenthesized_expression "(uVar5 + 1)" (( "(") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "*(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8" (pointer_expression "*(uint *)((uVar3 + 3) - uVar5)" (* "*") (cast_expression "(uint *)((uVar3 + 3) - uVar5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uVar3 + 3) - uVar5)" (( "(") (binary_expression "(uVar3 + 3) - uVar5" (parenthesized_expression "(uVar3 + 3)" (( "(") (binary_expression "uVar3 + 3" (identifier "uVar3") (+ "+") (number_literal "3")) () ")")) (- "-") (identifier "uVar5")) () ")")))) (>> ">>") (binary_expression "(3 - uVar5) * 8" (parenthesized_expression "(3 - uVar5)" (( "(") (binary_expression "3 - uVar5" (number_literal "3") (- "-") (identifier "uVar5")) () ")")) (* "*") (number_literal "8")))) () ")")))) (; ";")) (expression_statement "(*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);" (call_expression "(*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88)" (parenthesized_expression "(*(code *)(iVar4 + -0x229c))" (( "(") (pointer_expression "*(code *)(iVar4 + -0x229c)" (* "*") (cast_expression "(code *)(iVar4 + -0x229c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + -0x229c)" (( "(") (binary_expression "iVar4 + -0x229c" (identifier "iVar4") (+ "+") (number_literal "-0x229c")) () ")")))) () ")")) (argument_list "(uVar6,puVar9,5,uVar14,&uStack_88)" (( "(") (identifier "uVar6") (, ",") (identifier "puVar9") (, ",") (number_literal "5") (, ",") (identifier "uVar14") (, ",") (pointer_expression "&uStack_88" (& "&") (identifier "uStack_88")) () ")"))) (; ";")) (if_statement "if (iVar13 == iVar11) goto LAB_0007e18c;" (if "if") (parenthesized_expression "(iVar13 == iVar11)" (( "(") (binary_expression "iVar13 == iVar11" (identifier "iVar13") (== "==") (identifier "iVar11")) () ")")) (goto_statement "goto LAB_0007e18c;" (goto "goto") (statement_identifier "LAB_0007e18c") (; ";"))) (} "}"))) (expression_statement "iVar13 = iVar13 + 2;" (assignment_expression "iVar13 = iVar13 + 2" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 2" (identifier "iVar13") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != iVar11)" (( "(") (binary_expression "iVar13 != iVar11" (identifier "iVar13") (!= "!=") (identifier "iVar11")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0007e18c:\n  puVar10 = (uint *)&DAT_00000005;" (statement_identifier "LAB_0007e18c") (: ":") (expression_statement "puVar10 = (uint *)&DAT_00000005;" (assignment_expression "puVar10 = (uint *)&DAT_00000005" (identifier "puVar10") (= "=") (cast_expression "(uint *)&DAT_00000005" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000005" (& "&") (identifier "DAT_00000005")))) (; ";"))) (if_statement "if (pcVar7[8] == '\0') {\n    puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);\n    FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);\n  }" (if "if") (parenthesized_expression "(pcVar7[8] == '\0')" (( "(") (binary_expression "pcVar7[8] == '\0'" (subscript_expression "pcVar7[8]" (identifier "pcVar7") ([ "[") (number_literal "8") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);\n    FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);\n  }" ({ "{") (expression_statement "puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);" (assignment_expression "puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8)" (identifier "puVar9") (= "=") (pointer_expression "*(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8)" (* "*") (cast_expression "(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8)" (( "(") (binary_expression "*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8" (binary_expression "*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9]" (pointer_expression "*(int *)(pcVar7 + 0x38)" (* "*") (cast_expression "(int *)(pcVar7 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x38)" (( "(") (binary_expression "pcVar7 + 0x38" (identifier "pcVar7") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (cast_expression "(uint)(byte)pcVar7[9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)pcVar7[9]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pcVar7[9]" (identifier "pcVar7") ([ "[") (number_literal "9") (] "]"))))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);" (call_expression "FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88)" (identifier "FUN_0007dd64") (argument_list "(uVar6,puVar9,5,uVar14,&uStack_88)" (( "(") (identifier "uVar6") (, ",") (identifier "puVar9") (, ",") (number_literal "5") (, ",") (identifier "uVar14") (, ",") (pointer_expression "&uStack_88" (& "&") (identifier "uStack_88")) () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0007e19c:\n  if (iStack_84 != *piVar12) {\n    pcVar16 = *(code **)(puVar15 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar16)();\n    iVar11 = *(int *)(iVar4 + 0x34);\n    uVar8 = puVar9[0xe];\n    uVar3 = uVar8;\n    if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }\n    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar5 = (uint)*(ushort *)(iVar13 + 5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));\n    iVar4 = *(int *)(pcVar16 + 0x770ac);\n    *(char *)puVar9 = '\0';\n    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);\n    if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }\n    return uVar3;\n  }" (statement_identifier "LAB_0007e19c") (: ":") (if_statement "if (iStack_84 != *piVar12) {\n    pcVar16 = *(code **)(puVar15 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar16)();\n    iVar11 = *(int *)(iVar4 + 0x34);\n    uVar8 = puVar9[0xe];\n    uVar3 = uVar8;\n    if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }\n    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar5 = (uint)*(ushort *)(iVar13 + 5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));\n    iVar4 = *(int *)(pcVar16 + 0x770ac);\n    *(char *)puVar9 = '\0';\n    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);\n    if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }\n    return uVar3;\n  }" (if "if") (parenthesized_expression "(iStack_84 != *piVar12)" (( "(") (binary_expression "iStack_84 != *piVar12" (identifier "iStack_84") (!= "!=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) () ")")) (compound_statement "{\n    pcVar16 = *(code **)(puVar15 + 0x774d0);\n    iVar4 = iStack_84;\n    (*pcVar16)();\n    iVar11 = *(int *)(iVar4 + 0x34);\n    uVar8 = puVar9[0xe];\n    uVar3 = uVar8;\n    if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }\n    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);\n    uVar5 = (uint)*(ushort *)(iVar13 + 5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);\n    (**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));\n    iVar4 = *(int *)(pcVar16 + 0x770ac);\n    *(char *)puVar9 = '\0';\n    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);\n    if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }\n    return uVar3;\n  }" ({ "{") (expression_statement "pcVar16 = *(code **)(puVar15 + 0x774d0);" (assignment_expression "pcVar16 = *(code **)(puVar15 + 0x774d0)" (identifier "pcVar16") (= "=") (pointer_expression "*(code **)(puVar15 + 0x774d0)" (* "*") (cast_expression "(code **)(puVar15 + 0x774d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x774d0)" (( "(") (binary_expression "puVar15 + 0x774d0" (identifier "puVar15") (+ "+") (number_literal "0x774d0")) () ")"))))) (; ";")) (expression_statement "iVar4 = iStack_84;" (assignment_expression "iVar4 = iStack_84" (identifier "iVar4") (= "=") (identifier "iStack_84")) (; ";")) (expression_statement "(*pcVar16)();" (call_expression "(*pcVar16)()" (parenthesized_expression "(*pcVar16)" (( "(") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar11 = *(int *)(iVar4 + 0x34);" (assignment_expression "iVar11 = *(int *)(iVar4 + 0x34)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar4 + 0x34)" (* "*") (cast_expression "(int *)(iVar4 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x34)" (( "(") (binary_expression "iVar4 + 0x34" (identifier "iVar4") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "uVar8 = puVar9[0xe];" (assignment_expression "uVar8 = puVar9[0xe]" (identifier "uVar8") (= "=") (subscript_expression "puVar9[0xe]" (identifier "puVar9") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "uVar3 = uVar8;" (assignment_expression "uVar3 = uVar8" (identifier "uVar3") (= "=") (identifier "uVar8")) (; ";")) (if_statement "if (puVar9[1] == 1) {\n      uVar3 = uVar8 + 100;\n    }" (if "if") (parenthesized_expression "(puVar9[1] == 1)" (( "(") (binary_expression "puVar9[1] == 1" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      uVar3 = uVar8 + 100;\n    }" ({ "{") (expression_statement "uVar3 = uVar8 + 100;" (assignment_expression "uVar3 = uVar8 + 100" (identifier "uVar3") (= "=") (binary_expression "uVar8 + 100" (identifier "uVar8") (+ "+") (number_literal "100"))) (; ";")) (} "}"))) (expression_statement "iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);" (assignment_expression "iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9)" (identifier "iVar13") (= "=") (binary_expression "*(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9)" (pointer_expression "*(int *)(iVar4 + 0x38)" (* "*") (cast_expression "(int *)(iVar4 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x38)" (( "(") (binary_expression "iVar4 + 0x38" (identifier "iVar4") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (binary_expression "(uint)*(byte *)(iVar4 + 9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar4 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 9)" (( "(") (binary_expression "iVar4 + 9" (identifier "iVar4") (+ "+") (number_literal "9")) () ")")))))) (; ";")) (expression_statement "uVar5 = (uint)*(ushort *)(iVar13 + 5);" (assignment_expression "uVar5 = (uint)*(ushort *)(iVar13 + 5)" (identifier "uVar5") (= "=") (binary_expression "(uint)*(ushort *)(iVar13 + 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(iVar13 + 5)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 5)" (( "(") (binary_expression "iVar13 + 5" (identifier "iVar13") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);" (call_expression "(**(code **)(pcVar16 + 0x77330))\n              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5)" (parenthesized_expression "(**(code **)(pcVar16 + 0x77330))" (( "(") (pointer_expression "**(code **)(pcVar16 + 0x77330)" (* "*") (pointer_expression "*(code **)(pcVar16 + 0x77330)" (* "*") (cast_expression "(code **)(pcVar16 + 0x77330)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar16 + 0x77330)" (( "(") (binary_expression "pcVar16 + 0x77330" (identifier "pcVar16") (+ "+") (number_literal "0x77330")) () ")"))))) () ")")) (argument_list "(uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5)" (( "(") (binary_expression "uVar8 + uVar5" (identifier "uVar8") (+ "+") (identifier "uVar5")) (, ",") (binary_expression "*(int *)(iVar4 + 0x38) + uVar5" (pointer_expression "*(int *)(iVar4 + 0x38)" (* "*") (cast_expression "(int *)(iVar4 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x38)" (( "(") (binary_expression "iVar4 + 0x38" (identifier "iVar4") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (identifier "uVar5")) (, ",") (binary_expression "*(int *)(iVar11 + 0x28) - uVar5" (pointer_expression "*(int *)(iVar11 + 0x28)" (* "*") (cast_expression "(int *)(iVar11 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x28)" (( "(") (binary_expression "iVar11 + 0x28" (identifier "iVar11") (+ "+") (number_literal "0x28")) () ")")))) (- "-") (identifier "uVar5")) () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));" (call_expression "(**(code **)(pcVar16 + 0x77330))\n              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12))" (parenthesized_expression "(**(code **)(pcVar16 + 0x77330))" (( "(") (pointer_expression "**(code **)(pcVar16 + 0x77330)" (* "*") (pointer_expression "*(code **)(pcVar16 + 0x77330)" (* "*") (cast_expression "(code **)(pcVar16 + 0x77330)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar16 + 0x77330)" (( "(") (binary_expression "pcVar16 + 0x77330" (identifier "pcVar16") (+ "+") (number_literal "0x77330")) () ")"))))) () ")")) (argument_list "(uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12))" (( "(") (identifier "uVar3") (, ",") (identifier "iVar13") (, ",") (binary_expression "(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12)" (binary_expression "(uint)*(ushort *)(iVar4 + 0x18) * 2" (binary_expression "(uint)*(ushort *)(iVar4 + 0x18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(iVar4 + 0x18)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (number_literal "2")) (+ "+") (binary_expression "(uint)*(ushort *)(iVar4 + 0x12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(iVar4 + 0x12)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x12)" (( "(") (binary_expression "iVar4 + 0x12" (identifier "iVar4") (+ "+") (number_literal "0x12")) () ")"))))) () ")"))) (; ";")) (expression_statement "iVar4 = *(int *)(pcVar16 + 0x770ac);" (assignment_expression "iVar4 = *(int *)(pcVar16 + 0x770ac)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(pcVar16 + 0x770ac)" (* "*") (cast_expression "(int *)(pcVar16 + 0x770ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar16 + 0x770ac)" (( "(") (binary_expression "pcVar16 + 0x770ac" (identifier "pcVar16") (+ "+") (number_literal "0x770ac")) () ")"))))) (; ";")) (expression_statement "*(char *)puVar9 = '\0';" (assignment_expression "*(char *)puVar9 = '\0'" (pointer_expression "*(char *)puVar9" (* "*") (cast_expression "(char *)puVar9" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);" (assignment_expression "uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9)" (identifier "uVar3") (= "=") (call_expression "(*(code *)(iVar4 + 0x4d34))(puVar9)" (parenthesized_expression "(*(code *)(iVar4 + 0x4d34))" (( "(") (pointer_expression "*(code *)(iVar4 + 0x4d34)" (* "*") (cast_expression "(code *)(iVar4 + 0x4d34)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x4d34)" (( "(") (binary_expression "iVar4 + 0x4d34" (identifier "iVar4") (+ "+") (number_literal "0x4d34")) () ")")))) () ")")) (argument_list "(puVar9)" (( "(") (identifier "puVar9") () ")")))) (; ";")) (if_statement "if ((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }\n    else {\n      *puVar10 = uVar3;\n    }" (if "if") (parenthesized_expression "((uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0))" (( "(") (binary_expression "(uVar3 == 0) &&\n       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)" (parenthesized_expression "(uVar3 == 0)" (( "(") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)" (( "(") (comma_expression "uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0" (assignment_expression "uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9)" (identifier "uVar3") (= "=") (call_expression "(*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9)" (parenthesized_expression "(*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac)" (* "*") (cast_expression "(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar16 + 0x770ac) + 0x5cac)" (( "(") (binary_expression "*(int *)(pcVar16 + 0x770ac) + 0x5cac" (pointer_expression "*(int *)(pcVar16 + 0x770ac)" (* "*") (cast_expression "(int *)(pcVar16 + 0x770ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar16 + 0x770ac)" (( "(") (binary_expression "pcVar16 + 0x770ac" (identifier "pcVar16") (+ "+") (number_literal "0x770ac")) () ")")))) (+ "+") (number_literal "0x5cac")) () ")")))) () ")")) (argument_list "(puVar9)" (( "(") (identifier "puVar9") () ")")))) (, ",") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      uVar3 = (uint)*(byte *)(iVar11 + 0x11);\n      if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }\n    }" ({ "{") (expression_statement "uVar3 = (uint)*(byte *)(iVar11 + 0x11);" (assignment_expression "uVar3 = (uint)*(byte *)(iVar11 + 0x11)" (identifier "uVar3") (= "=") (binary_expression "(uint)*(byte *)(iVar11 + 0x11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar11 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x11)" (( "(") (binary_expression "iVar11 + 0x11" (identifier "iVar11") (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (if_statement "if (uVar3 != 0) {\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }" (if "if") (parenthesized_expression "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar3 = FUN_0007e070(puVar9);\n        *puVar10 = uVar3;\n      }" ({ "{") (expression_statement "uVar3 = FUN_0007e070(puVar9);" (assignment_expression "uVar3 = FUN_0007e070(puVar9)" (identifier "uVar3") (= "=") (call_expression "FUN_0007e070(puVar9)" (identifier "FUN_0007e070") (argument_list "(puVar9)" (( "(") (identifier "puVar9") () ")")))) (; ";")) (expression_statement "*puVar10 = uVar3;" (assignment_expression "*puVar10 = uVar3" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (identifier "uVar3")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      *puVar10 = uVar3;\n    }" (else "else") (compound_statement "{\n      *puVar10 = uVar3;\n    }" ({ "{") (expression_statement "*puVar10 = uVar3;" (assignment_expression "*puVar10 = uVar3" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (identifier "uVar3")) (; ";")) (} "}")))) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}")))) (return_statement "return uStack_88;" (return "return") (identifier "uStack_88") (; ";")) (} "}")))

void function_1(type_1 *pPage,type_1 *pSrc,type_2 *var_2,int *pRC)

{
  type_3 var_7;
  type_4 var_11;
  type_4 var_10;
  int var_4;
  type_5 *pBt;
  type_5 *pBt_00;
  type_2 *var_14;
  type_1 *pPage_00;
  type_6 *pCVar6;
  type_2 *unaff_s0;
  int var_12;
  int *piVar8;
  type_1 *unaff_s2;
  int *unaff_s3;
  int *piVar9;
  int var_8;
  type_2 *puVar11;
  type_7 *parent;
  int var_1;
  type_8 *var_5;
  type_9 *var_9;
  int var_6;
  int var_13;
  type_2 *puStack_80;
  int *piStack_7c;
  type_1 *pMStack_78;
  int *piStack_74;
  type_1 *pMStack_70;
  type_6 info;
  
  piVar8 = *(int **)(var_1 + 0x7760c);
  var_4 = *piVar8;
  pBt_00 = (type_5 *)pPage;
  pPage_00 = pSrc;
  pCVar6 = (type_6 *)var_2;
  puStack_80 = unaff_s0;
  pMStack_78 = unaff_s2;
  piStack_74 = unaff_s3;
  if (*pRC == 0) {
    pCVar6 = &info;
    pPage_00 = (type_1 *)var_2;
    (*pPage->xParseCell)(pPage,var_2,pCVar6);
    puStack_80 = var_2;
    pMStack_78 = pPage;
    piStack_74 = pRC;
    if (info.nLocal < info.nPayload) {
      if ((*(type_2 **)pSrc < var_2) || (var_2 + info.nLocal <= *(type_2 **)pSrc)) {
        pCVar6 = (type_6 *)0x3;
        pBt_00 = pPage->pBt;
        pPage_00 = *(type_1 **)(var_2 + info.nSize + -4);
        var_3(pBt_00,(type_10)pPage_00,'\x03',pPage->pgno,pRC);
        puStack_80 = var_2 + info.nSize;
      }
      else {
        pBt_00 = (type_5 *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);
        var_12 = (*(type_8 *)(*(int *)(&LAB_0007738c + var_1) + 0x4904))();
        *pRC = var_12;
      }
    }
  }
  if (var_4 == *piVar8) {
    return;
  }
  var_5 = *(type_8 **)(var_1 + 0x775e4);
  (*var_5)();
  pBt = (type_5 *)pBt_00->pSchema;
  piVar9 = *(int **)(var_5 + 0x774f8);
  parent = pBt_00->db;
  var_13 = *piVar9;
  piStack_7c = piVar8;
  pMStack_70 = pSrc;
  if (*(char *)&pBt_00->pPager == '\0') {
    var_6 = (*(type_8 *)(*(int *)(var_5 + 0x77278) + 0x4d34))();
    if (var_6 != 0) goto LAB_0007e19c;
    var_7 = pBt_00->btsFlags;
  }
  else {
    var_6 = 0;
    var_7 = pBt_00->btsFlags;
  }
  var_4 = *(int *)(var_5 + 0x77284);
  if (var_7 != 0) {
    var_12 = (type_4)var_7 << 1;
    var_8 = 0;
    do {
      while( true ) {
        var_9 = pBt_00->xFreeSchema +
                   (*(type_3 *)((int)&pBt_00->pHasContent->iSize + var_8) & pBt_00->maxLocal);
        pPage_00 = (type_1 *)&pBt_00->mutex;
        function_1((type_1 *)pBt_00,(type_1 *)&pBt_00->mutex,(type_2 *)var_9,&var_6);
        if (*(char *)&pBt_00->pCursor != '\0') break;
        var_10 = (type_4)var_9 & 3;
        var_8 = var_8 + 2;
        var_11 = (type_4)(var_9 + 3) & 3;
        pPage_00 = (type_1 *)
                   ((*(int *)(var_9 + -var_10) << var_10 * 8 |
                    (type_4)pPage_00 & 0xffffffffU >> (4 - var_10) * 8) & -1 << (var_11 + 1) * 8 |
                   *(type_4 *)(var_9 + 3 + -var_11) >> (3 - var_11) * 8);
        (*(type_8 *)(var_4 + -0x229c))(pBt,pPage_00,5,parent,&var_6);
        if (var_8 == var_12) goto LAB_0007e18c;
      }
      var_8 = var_8 + 2;
    } while (var_8 != var_12);
  }
LAB_0007e18c:
  pCVar6 = (type_6 *)&DAT_00000005;
  if (*(char *)&pBt_00->pCursor == '\0') {
    pPage_00 = *(type_1 **)(pBt_00->xFreeSchema + *(type_11 *)((int)&pBt_00->pCursor + 1) + 8);
    var_3(pBt,(type_10)pPage_00,'\x05',(type_10)parent,&var_6);
  }
LAB_0007e19c:
  if (var_13 != *piVar9) {
    var_5 = *(type_8 **)(var_5 + 0x774d0);
    var_4 = var_13;
    (*var_5)();
    var_12 = *(int *)(var_4 + 0x34);
    var_14 = pPage_00->aData;
    puVar11 = var_14;
    if (pPage_00->pgno == 1) {
      puVar11 = var_14 + 100;
    }
    var_8 = *(int *)(var_4 + 0x38) + (type_4)*(type_11 *)(var_4 + 9);
    var_10 = (type_4)*(type_3 *)(var_8 + 5);
    (**(type_8 **)(var_5 + 0x77330))
              (var_14 + var_10,*(int *)(var_4 + 0x38) + var_10,*(int *)(var_12 + 0x28) - var_10);
    (**(type_8 **)(var_5 + 0x77330))
              (puVar11,var_8,(type_4)*(type_3 *)(var_4 + 0x18) * 2 + (type_4)*(type_3 *)(var_4 + 0x12))
    ;
    var_4 = *(int *)(var_5 + 0x770ac);
    pPage_00->isInit = '\0';
    var_4 = (*(type_8 *)(var_4 + 0x4d34))(pPage_00);
    if ((var_4 == 0) &&
       (var_4 = (*(type_8 *)(*(int *)(var_5 + 0x770ac) + 0x5cac))(pPage_00), var_4 == 0)) {
      if (*(char *)(var_12 + 0x11) != '\0') {
        var_4 = var_15(pPage_00);
        *(int *)&pCVar6->nKey = var_4;
      }
    }
    else {
      *(int *)&pCVar6->nKey = var_4;
    }
    return;
  }
  return;
}


(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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) 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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (number_literal)))))) (expression_statement (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (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: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (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: (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)))))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (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)))))))) alternative: (else_clause (compound_statement (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (identifier))))) right: (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))))))))))) (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (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: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (binary_expression left: (number_literal) right: (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (number_literal)))))) right: (binary_expression left: (number_literal) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (identifier))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (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) (identifier) (number_literal) (identifier) (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (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: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) right: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier) (pointer_expression argument: (identifier))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (parenthesized_expression (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: (binary_expression left: (parenthesized_expression (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 (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 (binary_expression left: (identifier) right: (identifier)) (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: (identifier)) (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: (identifier))))) (expression_statement (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) (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (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: (binary_expression left: (parenthesized_expression (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (char_literal (escape_sequence)))) (expression_statement (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) 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: (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)))))) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))) (return_statement (identifier))))) (return_statement (identifier)))))

uint MASKED(char *param_1,uint *param_2,uint *param_3,int *param_4)

{
  ushort uVar1;
  undefined *puVar2;
  uint uVar3;
  int iVar4;
  uint uVar5;
  undefined4 uVar6;
  char *pcVar7;
  uint uVar8;
  uint *puVar9;
  uint *puVar10;
  uint *unaff_s0;
  int iVar11;
  char *unaff_s2;
  int *unaff_s3;
  int *piVar12;
  int iVar13;
  undefined4 uVar14;
  undefined *puVar15;
  code *pcVar16;
  uint uStack_88;
  int iStack_84;
  uint *puStack_80;
  undefined *puStack_7c;
  char *pcStack_78;
  int *piStack_74;
  uint *puStack_70;
  uint auStack_38 [3];
  uint local_2c;
  ushort local_28;
  ushort local_26;
  uint local_1c;
  
  puVar2 = PTR___stack_chk_guard_000f5568;
  local_1c = *(uint *)PTR___stack_chk_guard_000f5568;
  pcVar7 = param_1;
  puVar9 = param_2;
  puVar10 = param_3;
  puStack_80 = unaff_s0;
  pcStack_78 = unaff_s2;
  piStack_74 = unaff_s3;
  if (*param_4 == 0) {
    puVar10 = auStack_38;
    puVar9 = param_3;
    (**(code **)(param_1 + 0x50))();
    puStack_80 = param_3;
    pcStack_78 = param_1;
    piStack_74 = param_4;
    if (local_28 < local_2c) {
      if (((uint *)*param_2 < param_3) ||
         ((uint *)((int)param_3 + (uint)local_28) <= (uint *)*param_2)) {
        puVar10 = (uint *)0x3;
        pcVar7 = *(char **)(param_1 + 0x34);
        puVar9 = (uint *)((uint *)((int)param_3 + (uint)local_26))[-1];
        FUN_0007dd64();
        puStack_80 = (uint *)((int)param_3 + (uint)local_26);
      }
      else {
        pcVar7 = (char *)((int)&Elf32_Phdr_ARRAY_00010034[8].p_flags + 1);
        iVar4 = (*(code *)(PTR_LAB_000f52e8 + 0x4904))();
        *param_4 = iVar4;
      }
    }
  }
  uVar3 = *(uint *)puVar2;
  if (local_1c == uVar3) {
    return uVar3;
  }
  puVar15 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  uVar6 = *(undefined4 *)(pcVar7 + 0x34);
  puStack_7c = puVar2;
  piVar12 = *(int **)(puVar15 + 0x774f8);
  uVar14 = *(undefined4 *)(pcVar7 + 4);
  iStack_84 = *piVar12;
  puStack_70 = param_2;
  if (*pcVar7 == '\0') {
    uStack_88 = (*(code *)(*(int *)(puVar15 + 0x77278) + 0x4d34))();
    if (uStack_88 != 0) goto LAB_0007e19c;
    uVar1 = *(ushort *)(pcVar7 + 0x18);
  }
  else {
    uStack_88 = 0;
    uVar1 = *(ushort *)(pcVar7 + 0x18);
  }
  iVar4 = *(int *)(puVar15 + 0x77284);
  if (uVar1 != 0) {
    iVar11 = (uint)uVar1 << 1;
    iVar13 = 0;
    do {
      while( true ) {
        uVar3 = *(int *)(pcVar7 + 0x38) +
                (uint)(*(ushort *)(*(int *)(pcVar7 + 0x40) + iVar13) & *(ushort *)(pcVar7 + 0x1a));
        puVar9 = (uint *)(pcVar7 + 0x3c);
        MASKED(pcVar7,pcVar7 + 0x3c,uVar3,&uStack_88);
        if (pcVar7[8] != '\0') break;
        uVar8 = uVar3 & 3;
        iVar13 = iVar13 + 2;
        uVar5 = uVar3 + 3 & 3;
        puVar9 = (uint *)((*(int *)(uVar3 - uVar8) << uVar8 * 8 |
                          (uint)puVar9 & 0xffffffffU >> (4 - uVar8) * 8) & -1 << (uVar5 + 1) * 8 |
                         *(uint *)((uVar3 + 3) - uVar5) >> (3 - uVar5) * 8);
        (*(code *)(iVar4 + -0x229c))(uVar6,puVar9,5,uVar14,&uStack_88);
        if (iVar13 == iVar11) goto LAB_0007e18c;
      }
      iVar13 = iVar13 + 2;
    } while (iVar13 != iVar11);
  }
LAB_0007e18c:
  puVar10 = (uint *)&DAT_00000005;
  if (pcVar7[8] == '\0') {
    puVar9 = *(uint **)(*(int *)(pcVar7 + 0x38) + (uint)(byte)pcVar7[9] + 8);
    FUN_0007dd64(uVar6,puVar9,5,uVar14,&uStack_88);
  }
LAB_0007e19c:
  if (iStack_84 != *piVar12) {
    pcVar16 = *(code **)(puVar15 + 0x774d0);
    iVar4 = iStack_84;
    (*pcVar16)();
    iVar11 = *(int *)(iVar4 + 0x34);
    uVar8 = puVar9[0xe];
    uVar3 = uVar8;
    if (puVar9[1] == 1) {
      uVar3 = uVar8 + 100;
    }
    iVar13 = *(int *)(iVar4 + 0x38) + (uint)*(byte *)(iVar4 + 9);
    uVar5 = (uint)*(ushort *)(iVar13 + 5);
    (**(code **)(pcVar16 + 0x77330))
              (uVar8 + uVar5,*(int *)(iVar4 + 0x38) + uVar5,*(int *)(iVar11 + 0x28) - uVar5);
    (**(code **)(pcVar16 + 0x77330))
              (uVar3,iVar13,(uint)*(ushort *)(iVar4 + 0x18) * 2 + (uint)*(ushort *)(iVar4 + 0x12));
    iVar4 = *(int *)(pcVar16 + 0x770ac);
    *(char *)puVar9 = '\0';
    uVar3 = (*(code *)(iVar4 + 0x4d34))(puVar9);
    if ((uVar3 == 0) &&
       (uVar3 = (*(code *)(*(int *)(pcVar16 + 0x770ac) + 0x5cac))(puVar9), uVar3 == 0)) {
      uVar3 = (uint)*(byte *)(iVar11 + 0x11);
      if (uVar3 != 0) {
        uVar3 = FUN_0007e070(puVar9);
        *puVar10 = uVar3;
      }
    }
    else {
      *puVar10 = uVar3;
    }
    return uVar3;
  }
  return uStack_88;
}

