
void updateAccumulator(Parse *pParse,int regAcc,AggInfo *pAggInfo)

{
  int *piVar1;
  Expr **ppEVar2;
  u8 uVar3;
  undefined *puVar4;
  undefined *puVar5;
  code *pcVar6;
  code *pcVar7;
  code *pcVar8;
  code *pcVar9;
  CollSeq *pCVar10;
  undefined4 uVar11;
  AggInfo_func *pAVar12;
  AggInfo_col *pAVar13;
  int iVar14;
  Vdbe *pVVar15;
  int iVar16;
  int iVar17;
  ExprList *pEVar18;
  ExprList_item *pEVar19;
  int iVar20;
  int iStackX_4;
  int iStack_50;
  ushort uStack_4a;
  code *pcStack_48;
  int iStack_40;
  
  pVVar15 = pParse->pVdbe;
  pAVar12 = pAggInfo->aFunc;
  pAggInfo->directMode = '\x01';
  puVar5 = PTR_LAB_00190bc4;
  puVar4 = PTR_LAB_00190bc0;
  if (pAggInfo->nFunc < 1) {
LAB_000eb358:
    if (pAggInfo->nAccumulator == 0) {
LAB_000eb374:
      pAggInfo->directMode = '\0';
      return;
    }
    if (regAcc != 0) {
      pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);
      iStack_40 = regAcc;
      goto LAB_000eb230;
    }
    pAVar13 = pAggInfo->aCol;
    iStackX_4 = 0;
    if (pAggInfo->nAccumulator < 1) goto LAB_000eb374;
  }
  else {
    iStack_40 = 0;
    iStack_50 = 0;
    pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);
    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);
    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);
    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);
    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);
LAB_000eb0dc:
    do {
      pEVar18 = (pAVar12->pExpr->x).pList;
      if (pEVar18 == (ExprList *)0x0) {
        iVar17 = 0;
        uStack_4a = 0;
        iVar14 = 0;
        if (-1 < pAVar12->iDistinct) goto LAB_000eb100;
LAB_000eb028:
        iVar16 = 0;
        if ((pAVar12->pFunc->funcFlags & 0x20) == 0) goto LAB_000eb03c;
LAB_000eb140:
        pEVar19 = pEVar18->a;
        if (0 < iVar14) {
          iVar20 = 0;
          do {
            ppEVar2 = &pEVar19->pExpr;
            iVar20 = iVar20 + 1;
            pEVar19 = pEVar19 + 1;
            pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2);
            if (pCVar10 != (CollSeq *)0x0) goto LAB_000eb184;
          } while (iVar14 != iVar20);
        }
        pCVar10 = pParse->db->pDfltColl;
LAB_000eb184:
        if ((iStack_40 == 0) && (iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0)) {
          iStack_40 = pParse->nMem + 1;
          pParse->nMem = iStack_40;
        }
        uVar11 = (*pcStack_48)(pVVar15,0x52,iStack_40,0,0);
        (*pcVar9)(pVVar15,uVar11,pCVar10,0xfffffffe);
        iVar20 = pAVar12->iMem;
      }
      else {
        iVar14 = pEVar18->nExpr;
        iVar17 = (*pcVar7)(pParse,iVar14);
        (*pcVar8)(pParse,pEVar18,iVar17,0,1);
        uStack_4a = (ushort)iVar14 & 0xff;
        if (pAVar12->iDistinct < 0) goto LAB_000eb028;
LAB_000eb100:
        iVar16 = pParse->nLabel + -1;
        pParse->nLabel = iVar16;
        (*(code *)(puVar4 + 0x27d0))(pParse,pAVar12->iDistinct,iVar16,1,iVar17);
        if ((pAVar12->pFunc->funcFlags & 0x20) != 0) goto LAB_000eb140;
LAB_000eb03c:
        iVar20 = pAVar12->iMem;
      }
      (*pcStack_48)(pVVar15,0x9a,0,iVar17,iVar20);
      (*pcVar6)(pVVar15,pAVar12->pFunc,0xfffffff8);
      if (0 < pVVar15->nOp) {
        pVVar15->aOp[pVVar15->nOp + -1].p5 = uStack_4a;
      }
      if (iVar14 == 1) {
        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(pParse,iVar17);
      }
      else if (pParse->nRangeReg < iVar14) {
        pParse->nRangeReg = iVar14;
        pParse->iRangeReg = iVar17;
      }
      if (iVar16 == 0) {
        pAVar12 = pAVar12 + 1;
        iStack_50 = iStack_50 + 1;
        if (pAggInfo->nFunc <= iStack_50) break;
        goto LAB_000eb0dc;
      }
      pAVar12 = pAVar12 + 1;
      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pVVar15,iVar16);
      iStack_50 = iStack_50 + 1;
    } while (iStack_50 < pAggInfo->nFunc);
    if (iStack_40 == 0) goto LAB_000eb358;
LAB_000eb230:
    iStackX_4 = (*pcStack_48)(pVVar15,0x12,iStack_40,0,0);
    pAVar13 = pAggInfo->aCol;
    if (pAggInfo->nAccumulator < 1) goto LAB_000eb298;
  }
  iVar17 = 0;
  do {
    piVar1 = &pAVar13->iMem;
    ppEVar2 = &pAVar13->pExpr;
    iVar17 = iVar17 + 1;
    pAVar13 = pAVar13 + 1;
    sqlite3ExprCode(pParse,*ppEVar2,*piVar1);
  } while (iVar17 < pAggInfo->nAccumulator);
LAB_000eb298:
  pAggInfo->directMode = '\0';
  if (iStackX_4 != 0) {
    iVar17 = pVVar15->nOp;
    if (iStackX_4 < 0) {
      iStackX_4 = iVar17 + -1;
      uVar3 = pVVar15->db->mallocFailed;
    }
    else {
      uVar3 = pVVar15->db->mallocFailed;
    }
    if (uVar3 == '\0') {
      pVVar15->aOp[iStackX_4].p2 = iVar17;
    }
    else {
      *(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + 0xfc4) = iVar17;
    }
  }
  return;
}



void FUN_000eaf28(int *param_1,int param_2,undefined1 *param_3)

{
  undefined4 *puVar1;
  undefined4 *puVar2;
  char cVar3;
  undefined *puVar4;
  undefined *puVar5;
  code *pcVar6;
  code *pcVar7;
  code *pcVar8;
  code *pcVar9;
  undefined4 uVar10;
  int iVar11;
  int *piVar12;
  int iVar13;
  int *piVar14;
  int iVar15;
  int iVar16;
  int *piVar17;
  int iVar18;
  int local_res4;
  int local_50;
  ushort uStack_4a;
  code *local_48;
  int local_40;
  
  piVar14 = (int *)param_1[2];
  piVar12 = *(int **)(param_3 + 0x28);
  *param_3 = 1;
  puVar5 = PTR_LAB_00190bc4;
  puVar4 = PTR_LAB_00190bc0;
  if (*(int *)(param_3 + 0x2c) < 1) {
LAB_000eb358:
    if (*(int *)(param_3 + 0x24) == 0) {
LAB_000eb374:
      *param_3 = 0;
      return;
    }
    if (param_2 != 0) {
      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);
      local_40 = param_2;
      goto LAB_000eb230;
    }
    iVar16 = *(int *)(param_3 + 0x1c);
    local_res4 = 0;
    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;
  }
  else {
    local_40 = 0;
    local_50 = 0;
    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);
    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);
    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);
    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);
    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);
LAB_000eb0dc:
    do {
      piVar17 = *(int **)(*piVar12 + 0x14);
      if (piVar17 == (int *)0x0) {
        iVar16 = 0;
        uStack_4a = 0;
        iVar13 = 0;
        if (-1 < piVar12[3]) goto LAB_000eb100;
LAB_000eb028:
        iVar15 = 0;
        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;
LAB_000eb140:
        piVar17 = piVar17 + 1;
        if (0 < iVar13) {
          iVar18 = 0;
          do {
            iVar11 = *piVar17;
            iVar18 = iVar18 + 1;
            piVar17 = piVar17 + 5;
            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);
            if (iVar11 != 0) goto LAB_000eb184;
          } while (iVar13 != iVar18);
        }
        iVar11 = *(int *)(*param_1 + 8);
LAB_000eb184:
        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {
          local_40 = param_1[0xb] + 1;
          param_1[0xb] = local_40;
        }
        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);
        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);
        iVar18 = piVar12[2];
      }
      else {
        iVar13 = *piVar17;
        iVar16 = (*pcVar7)(param_1,iVar13);
        (*pcVar8)(param_1,piVar17,iVar16,0,1);
        uStack_4a = (ushort)iVar13 & 0xff;
        if (piVar12[3] < 0) goto LAB_000eb028;
LAB_000eb100:
        iVar15 = param_1[0xe] + -1;
        param_1[0xe] = iVar15;
        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);
        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;
LAB_000eb03c:
        iVar18 = piVar12[2];
      }
      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);
      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);
      if (0 < piVar14[0x1b]) {
        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;
      }
      if (iVar13 == 1) {
        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);
      }
      else if (param_1[7] < iVar13) {
        param_1[7] = iVar13;
        param_1[8] = iVar16;
      }
      if (iVar15 == 0) {
        piVar12 = piVar12 + 4;
        local_50 = local_50 + 1;
        if (*(int *)(param_3 + 0x2c) <= local_50) break;
        goto LAB_000eb0dc;
      }
      piVar12 = piVar12 + 4;
      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);
      local_50 = local_50 + 1;
    } while (local_50 < *(int *)(param_3 + 0x2c));
    if (local_40 == 0) goto LAB_000eb358;
LAB_000eb230:
    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);
    iVar16 = *(int *)(param_3 + 0x1c);
    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;
  }
  iVar13 = 0;
  do {
    puVar1 = (undefined4 *)(iVar16 + 0x10);
    puVar2 = (undefined4 *)(iVar16 + 0x14);
    iVar13 = iVar13 + 1;
    iVar16 = iVar16 + 0x18;
    FUN_000e8324(param_1,*puVar2,*puVar1);
  } while (iVar13 < *(int *)(param_3 + 0x24));
LAB_000eb298:
  *param_3 = 0;
  if (local_res4 != 0) {
    iVar16 = piVar14[0x1b];
    if (local_res4 < 0) {
      local_res4 = iVar16 + -1;
      cVar3 = *(char *)(*piVar14 + 0x51);
    }
    else {
      cVar3 = *(char *)(*piVar14 + 0x51);
    }
    if (cVar3 == '\0') {
      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;
    }
    else {
      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;
    }
  }
  return;
}


lui gp,0xb
addiu gp,gp,-0x2608
addu gp,gp,t9
addiu sp,sp,-0x78
li v1,0x1
sw s7,0x6c(sp)
or s7,a2,zero
sw s0,0x50(sp)
or s0,a0,zero
sw gp,0x18(sp)
sw ra,0x74(sp)
sw s8,0x70(sp)
sw s6,0x68(sp)
sw s5,0x64(sp)
sw s4,0x60(sp)
sw s3,0x5c(sp)
sw s2,0x58(sp)
sw s1,0x54(sp)
sw a1,0x7c(sp)
lw v0,0x2c(a2)
lw s3,0x8(a0)
lw s1,0x28(a2)
blez v0,0x000eb358
_sb v1,0x0(a2)
lw v0,-0x7d60(gp)
sw zero,0x38(sp)
sw zero,0x28(sp)
addiu v0,v0,0x10fc
sw v0,0x30(sp)
lw v0,-0x7d7c(gp)
addiu v0,v0,-0x24d4
sw v0,0x34(sp)
lw v0,-0x7d60(gp)
sw v0,0x44(sp)
lw v0,-0x7d7c(gp)
addiu v0,v0,-0x4824
sw v0,0x3c(sp)
lw v0,-0x7d5c(gp)
sw v0,0x4c(sp)
lw v0,-0x7cc8(gp)
addiu v0,v0,-0x53b0
sw v0,0x40(sp)
lw v0,-0x7d7c(gp)
addiu v0,v0,0x7a3c
b 0x000eb0dc
_sw v0,0x48(sp)
lw s2,0x0(s6)
lw t9,0x3c(sp)
jalr t9
_or a1,s2,zero
or a3,zero,zero
or s5,v0,zero
lw t9,0x40(sp)
li v0,0x1
or a2,s5,zero
sw v0,0x10(sp)
or a1,s6,zero
jalr t9
_or a0,s0,zero
andi v0,s2,0xff
sw v0,0x2c(sp)
lw v0,0xc(s1)
bgez v0,0x000eb100
_nop
lw v0,0x4(s1)
lw v0,0x4(v0)
andi v0,v0,0x20
bne v0,zero,0x000eb140
_or s4,zero,zero
lw v0,0x8(s1)
or a2,zero,zero
lw t9,0x30(sp)
li a1,0x9a
or a0,s3,zero
or a3,s5,zero
jalr t9
_sw v0,0x10(sp)
li a2,-0x8
lw a1,0x4(s1)
lw t9,0x34(sp)
jalr t9
_or a0,s3,zero
lw v1,0x6c(s3)
blez v1,0x000eb098
_lw gp,0x18(sp)
sll v0,v1,0x1
lw a0,0x68(s3)
addu v0,v0,v1
lw v1,0x2c(sp)
sll v0,v0,0x3
addu v0,a0,v0
sh v1,-0x16(v0)
li v0,0x1
beq s2,v0,0x000eb30c
_lw t9,-0x7d7c(gp)
lw v0,0x1c(s0)
slt v0,v0,s2
beq v0,zero,0x000eb0bc
_nop
sw s2,0x1c(s0)
sw s5,0x20(s0)
bne s4,zero,0x000eb1f0
_lw v1,0x28(sp)
addiu s1,s1,0x10
lw v0,0x2c(s7)
addiu v1,v1,0x1
slt v0,v1,v0
beq v0,zero,0x000eb224
_sw v1,0x28(sp)
lw v0,0x0(s1)
lw s6,0x14(v0)
bne s6,zero,0x000eafe0
_or a0,s0,zero
lw v0,0xc(s1)
or s5,zero,zero
sw zero,0x2c(sp)
bltz v0,0x000eb028
_or s2,zero,zero
lw s4,0x38(s0)
li a3,0x1
lw v0,0x44(sp)
or a0,s0,zero
addiu s4,s4,-0x1
addiu t9,v0,0x27d0
sw s4,0x38(s0)
or a2,s4,zero
lw a1,0xc(s1)
jalr t9
_sw s5,0x10(sp)
lw v0,0x4(s1)
lw v0,0x4(v0)
andi v0,v0,0x20
beq v0,zero,0x000eb03c
_nop
blez s2,0x000eb324
_addiu s6,s6,0x4
lw v0,0x4c(sp)
or s8,zero,zero
addiu v0,v0,-0x6274
b 0x000eb164
_sw v0,0x24(sp)
beq s2,s8,0x000eb324
_nop
lw a1,0x0(s6)
or a0,s0,zero
lw t9,0x24(sp)
addiu s8,s8,0x1
jalr t9
_addiu s6,s6,0x14
beq v0,zero,0x000eb15c
_or t0,v0,zero
lw v0,0x38(sp)
bne v0,zero,0x000eb1b0
_lw a2,0x38(sp)
lw v0,0x24(s7)
beq v0,zero,0x000eb1ac
_sw v0,0x38(sp)
lw v0,0x2c(s0)
addiu v0,v0,0x1
sw v0,0x38(sp)
sw v0,0x2c(s0)
lw a2,0x38(sp)
or a3,zero,zero
lw t9,0x30(sp)
li a1,0x52
sw t0,0x24(sp)
or a0,s3,zero
jalr t9
_sw zero,0x10(sp)
li a3,-0x2
lw t0,0x24(sp)
or a1,v0,zero
lw t9,0x48(sp)
or a0,s3,zero
jalr t9
_or a2,t0,zero
b 0x000eb040
_lw v0,0x8(s1)
lw t9,-0x7d60(gp)
or a1,s4,zero
or a0,s3,zero
addiu t9,t9,0xd78
jalr t9
_addiu s1,s1,0x10
lw v1,0x28(sp)
lw v0,0x2c(s7)
lw gp,0x18(sp)
addiu v1,v1,0x1
slt v0,v1,v0
bne v0,zero,0x000eb0dc
_sw v1,0x28(sp)
lw v0,0x38(sp)
beq v0,zero,0x000eb358
_nop
lw a2,0x38(sp)
or a3,zero,zero
lw t9,0x30(sp)
li a1,0x12
sw zero,0x10(sp)
jalr t9
_or a0,s3,zero
lw v1,0x24(s7)
lw gp,0x18(sp)
lw s1,0x1c(s7)
blez v1,0x000eb298
_sw v0,0x7c(sp)
lw s4,-0x7cc8(gp)
or s2,zero,zero
addiu s4,s4,-0x7cdc
lw a2,0x10(s1)
or a0,s0,zero
lw a1,0x14(s1)
or t9,s4,zero
addiu s2,s2,0x1
bal 0x000e8324
_addiu s1,s1,0x18
lw v0,0x24(s7)
slt v0,s2,v0
bne v0,zero,0x000eb26c
_lw gp,0x18(sp)
lw v0,0x7c(sp)
beq v0,zero,0x000eb2dc
_sb zero,0x0(s7)
bltz v0,0x000eb330
_lw a0,0x6c(s3)
lw v0,0x0(s3)
lbu v0,0x51(v0)
bne v0,zero,0x000eb34c
_lw v0,-0x7fd8(gp)
lw v0,0x7c(sp)
lw a1,0x7c(sp)
sll v1,v0,0x1
lw v0,0x68(s3)
addu v1,v1,a1
sll v1,v1,0x3
addu v0,v0,v1
sw a0,0x8(v0)
lw ra,0x74(sp)
lw s8,0x70(sp)
lw s7,0x6c(sp)
lw s6,0x68(sp)
lw s5,0x64(sp)
lw s4,0x60(sp)
lw s3,0x5c(sp)
lw s2,0x58(sp)
lw s1,0x54(sp)
lw s0,0x50(sp)
jr ra
_addiu sp,sp,0x78
or a1,s5,zero
addiu t9,t9,-0x47a4
jalr t9
_or a0,s0,zero
b 0x000eb0bc
_lw gp,0x18(sp)
lw v0,0x0(s0)
b 0x000eb184
_lw t0,0x8(v0)
addiu v0,a0,-0x1
sw v0,0x7c(sp)
lw v0,0x0(s3)
lbu v0,0x51(v0)
beq v0,zero,0x000eb2c0
_lw v0,0x7c(sp)
lw v0,-0x7fd8(gp)
addiu v0,v0,0xfbc
b 0x000eb2dc
_sw a0,0x8(v0)
lw v0,0x24(s7)
beq v0,zero,0x000eb374
_lw v1,0x7c(sp)
bne v1,zero,0x000eb3a8
_nop
bgtz v0,0x000eb260
_lw s1,0x1c(s7)
sb zero,0x0(s7)
lw ra,0x74(sp)
lw s8,0x70(sp)
lw s7,0x6c(sp)
lw s6,0x68(sp)
lw s5,0x64(sp)
lw s4,0x60(sp)
lw s3,0x5c(sp)
lw s2,0x58(sp)
lw s1,0x54(sp)
lw s0,0x50(sp)
jr ra
_addiu sp,sp,0x78
lw v0,0x7c(sp)
sw v0,0x38(sp)
lw v0,-0x7d60(gp)
addiu v0,v0,0x10fc
b 0x000eb230
_sw v0,0x30(sp)
(translation_unit "void FUN_000eaf28(int *param_1,int param_2,undefined1 *param_3)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  int local_res4;\n  int local_50;\n  ushort uStack_4a;\n  code *local_48;\n  int local_40;\n  \n  piVar14 = (int *)param_1[2];\n  piVar12 = *(int **)(param_3 + 0x28);\n  *param_3 = 1;\n  puVar5 = PTR_LAB_00190bc4;\n  puVar4 = PTR_LAB_00190bc0;\n  if (*(int *)(param_3 + 0x2c) < 1) {\nLAB_000eb358:\n    if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }\n    if (param_2 != 0) {\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }\n    iVar16 = *(int *)(param_3 + 0x1c);\n    local_res4 = 0;\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;\n  }\n  else {\n    local_40 = 0;\n    local_50 = 0;\n    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));\n    if (local_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);\n    iVar16 = *(int *)(param_3 + 0x1c);\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;\n  }\n  iVar13 = 0;\n  do {\n    puVar1 = (undefined4 *)(iVar16 + 0x10);\n    puVar2 = (undefined4 *)(iVar16 + 0x14);\n    iVar13 = iVar13 + 1;\n    iVar16 = iVar16 + 0x18;\n    FUN_000e8324(param_1,*puVar2,*puVar1);\n  } while (iVar13 < *(int *)(param_3 + 0x24));\nLAB_000eb298:\n  *param_3 = 0;\n  if (local_res4 != 0) {\n    iVar16 = piVar14[0x1b];\n    if (local_res4 < 0) {\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    if (cVar3 == '\0') {\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }\n    else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_000eaf28(int *param_1,int param_2,undefined1 *param_3)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  int local_res4;\n  int local_50;\n  ushort uStack_4a;\n  code *local_48;\n  int local_40;\n  \n  piVar14 = (int *)param_1[2];\n  piVar12 = *(int **)(param_3 + 0x28);\n  *param_3 = 1;\n  puVar5 = PTR_LAB_00190bc4;\n  puVar4 = PTR_LAB_00190bc0;\n  if (*(int *)(param_3 + 0x2c) < 1) {\nLAB_000eb358:\n    if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }\n    if (param_2 != 0) {\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }\n    iVar16 = *(int *)(param_3 + 0x1c);\n    local_res4 = 0;\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;\n  }\n  else {\n    local_40 = 0;\n    local_50 = 0;\n    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));\n    if (local_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);\n    iVar16 = *(int *)(param_3 + 0x1c);\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;\n  }\n  iVar13 = 0;\n  do {\n    puVar1 = (undefined4 *)(iVar16 + 0x10);\n    puVar2 = (undefined4 *)(iVar16 + 0x14);\n    iVar13 = iVar13 + 1;\n    iVar16 = iVar16 + 0x18;\n    FUN_000e8324(param_1,*puVar2,*puVar1);\n  } while (iVar13 < *(int *)(param_3 + 0x24));\nLAB_000eb298:\n  *param_3 = 0;\n  if (local_res4 != 0) {\n    iVar16 = piVar14[0x1b];\n    if (local_res4 < 0) {\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    if (cVar3 == '\0') {\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }\n    else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000eaf28(int *param_1,int param_2,undefined1 *param_3)" identifier (parameter_list "(int *param_1,int param_2,undefined1 *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined1 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  int local_res4;\n  int local_50;\n  ushort uStack_4a;\n  code *local_48;\n  int local_40;\n  \n  piVar14 = (int *)param_1[2];\n  piVar12 = *(int **)(param_3 + 0x28);\n  *param_3 = 1;\n  puVar5 = PTR_LAB_00190bc4;\n  puVar4 = PTR_LAB_00190bc0;\n  if (*(int *)(param_3 + 0x2c) < 1) {\nLAB_000eb358:\n    if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }\n    if (param_2 != 0) {\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }\n    iVar16 = *(int *)(param_3 + 0x1c);\n    local_res4 = 0;\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;\n  }\n  else {\n    local_40 = 0;\n    local_50 = 0;\n    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));\n    if (local_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);\n    iVar16 = *(int *)(param_3 + 0x1c);\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;\n  }\n  iVar13 = 0;\n  do {\n    puVar1 = (undefined4 *)(iVar16 + 0x10);\n    puVar2 = (undefined4 *)(iVar16 + 0x14);\n    iVar13 = iVar13 + 1;\n    iVar16 = iVar16 + 0x18;\n    FUN_000e8324(param_1,*puVar2,*puVar1);\n  } while (iVar13 < *(int *)(param_3 + 0x24));\nLAB_000eb298:\n  *param_3 = 0;\n  if (local_res4 != 0) {\n    iVar16 = piVar14[0x1b];\n    if (local_res4 < 0) {\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    if (cVar3 == '\0') {\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }\n    else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int local_res4;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "ushort uStack_4a;" type_identifier identifier ;) (declaration "code *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (expression_statement "piVar14 = (int *)param_1[2];" (assignment_expression "piVar14 = (int *)param_1[2]" identifier = (cast_expression "(int *)param_1[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "piVar12 = *(int **)(param_3 + 0x28);" (assignment_expression "piVar12 = *(int **)(param_3 + 0x28)" identifier = (pointer_expression "*(int **)(param_3 + 0x28)" * (cast_expression "(int **)(param_3 + 0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*param_3 = 1;" (assignment_expression "*param_3 = 1" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "puVar5 = PTR_LAB_00190bc4;" (assignment_expression "puVar5 = PTR_LAB_00190bc4" identifier = identifier) ;) (expression_statement "puVar4 = PTR_LAB_00190bc0;" (assignment_expression "puVar4 = PTR_LAB_00190bc0" identifier = identifier) ;) (if_statement "if (*(int *)(param_3 + 0x2c) < 1) {\nLAB_000eb358:\n    if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }\n    if (param_2 != 0) {\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }\n    iVar16 = *(int *)(param_3 + 0x1c);\n    local_res4 = 0;\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;\n  }\n  else {\n    local_40 = 0;\n    local_50 = 0;\n    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));\n    if (local_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);\n    iVar16 = *(int *)(param_3 + 0x1c);\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;\n  }" if (parenthesized_expression "(*(int *)(param_3 + 0x2c) < 1)" ( (binary_expression "*(int *)(param_3 + 0x2c) < 1" (pointer_expression "*(int *)(param_3 + 0x2c)" * (cast_expression "(int *)(param_3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2c)" ( (binary_expression "param_3 + 0x2c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\nLAB_000eb358:\n    if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }\n    if (param_2 != 0) {\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }\n    iVar16 = *(int *)(param_3 + 0x1c);\n    local_res4 = 0;\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;\n  }" { (labeled_statement "LAB_000eb358:\n    if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }" statement_identifier : (if_statement "if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }" if (parenthesized_expression "(*(int *)(param_3 + 0x24) == 0)" ( (binary_expression "*(int *)(param_3 + 0x24) == 0" (pointer_expression "*(int *)(param_3 + 0x24)" * (cast_expression "(int *)(param_3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }" { (labeled_statement "LAB_000eb374:\n      *param_3 = 0;" statement_identifier : (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;)) (return_statement "return;" return ;) }))) (if_statement "if (param_2 != 0) {\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }" { (expression_statement "local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);" (assignment_expression "local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc)" identifier = (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" ( (binary_expression "PTR_LAB_00190bc0 + 0x10fc" identifier + number_literal) )))) ;) (expression_statement "local_40 = param_2;" (assignment_expression "local_40 = param_2" identifier = identifier) ;) (goto_statement "goto LAB_000eb230;" goto statement_identifier ;) })) (expression_statement "iVar16 = *(int *)(param_3 + 0x1c);" (assignment_expression "iVar16 = *(int *)(param_3 + 0x1c)" identifier = (pointer_expression "*(int *)(param_3 + 0x1c)" * (cast_expression "(int *)(param_3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "local_res4 = 0;" (assignment_expression "local_res4 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;" if (parenthesized_expression "(*(int *)(param_3 + 0x24) < 1)" ( (binary_expression "*(int *)(param_3 + 0x24) < 1" (pointer_expression "*(int *)(param_3 + 0x24)" * (cast_expression "(int *)(param_3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) )))) < number_literal) )) (goto_statement "goto LAB_000eb374;" goto statement_identifier ;)) }) (else_clause "else {\n    local_40 = 0;\n    local_50 = 0;\n    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));\n    if (local_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);\n    iVar16 = *(int *)(param_3 + 0x1c);\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;\n  }" else (compound_statement "{\n    local_40 = 0;\n    local_50 = 0;\n    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));\n    if (local_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);\n    iVar16 = *(int *)(param_3 + 0x1c);\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;\n  }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);" (assignment_expression "local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc)" identifier = (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" ( (binary_expression "PTR_LAB_00190bc0 + 0x10fc" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);" (assignment_expression "pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4)" identifier = (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x24d4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x24d4)" ( (binary_expression "PTR_LAB_00190ba4 + -0x24d4" identifier + number_literal) )))) ;) (expression_statement "pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);" (assignment_expression "pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824)" identifier = (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4824)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4824)" ( (binary_expression "PTR_LAB_00190ba4 + -0x4824" identifier + number_literal) )))) ;) (expression_statement "pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);" (assignment_expression "pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0)" identifier = (cast_expression "(code *)(PTR_LAB_00190c58 + -0x53b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190c58 + -0x53b0)" ( (binary_expression "PTR_LAB_00190c58 + -0x53b0" identifier + number_literal) )))) ;) (expression_statement "pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);" (assignment_expression "pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c)" identifier = (cast_expression "(code *)(PTR_LAB_00190ba4 + 0x7a3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + 0x7a3c)" ( (binary_expression "PTR_LAB_00190ba4 + 0x7a3c" identifier + number_literal) )))) ;) (labeled_statement "LAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));" statement_identifier : (do_statement "do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));" do (compound_statement "{\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    }" { (expression_statement "piVar17 = *(int **)(*piVar12 + 0x14);" (assignment_expression "piVar17 = *(int **)(*piVar12 + 0x14)" identifier = (pointer_expression "*(int **)(*piVar12 + 0x14)" * (cast_expression "(int **)(*piVar12 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar12 + 0x14)" ( (binary_expression "*piVar12 + 0x14" (pointer_expression "*piVar12" * identifier) + number_literal) ))))) ;) (if_statement "if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }" if (parenthesized_expression "(piVar17 == (int *)0x0)" ( (binary_expression "piVar17 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "uStack_4a = 0;" (assignment_expression "uStack_4a = 0" identifier = number_literal) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (-1 < piVar12[3]) goto LAB_000eb100;" if (parenthesized_expression "(-1 < piVar12[3])" ( (binary_expression "-1 < piVar12[3]" number_literal < (subscript_expression "piVar12[3]" identifier [ number_literal ])) )) (goto_statement "goto LAB_000eb100;" goto statement_identifier ;)) (labeled_statement "LAB_000eb028:\n        iVar15 = 0;" statement_identifier : (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;)) (if_statement "if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;" if (parenthesized_expression "((*(uint *)(piVar12[1] + 4) & 0x20) == 0)" ( (binary_expression "(*(uint *)(piVar12[1] + 4) & 0x20) == 0" (parenthesized_expression "(*(uint *)(piVar12[1] + 4) & 0x20)" ( (binary_expression "*(uint *)(piVar12[1] + 4) & 0x20" (pointer_expression "*(uint *)(piVar12[1] + 4)" * (cast_expression "(uint *)(piVar12[1] + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[1] + 4)" ( (binary_expression "piVar12[1] + 4" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000eb03c;" goto statement_identifier ;)) (labeled_statement "LAB_000eb140:\n        piVar17 = piVar17 + 1;" statement_identifier : (expression_statement "piVar17 = piVar17 + 1;" (assignment_expression "piVar17 = piVar17 + 1" identifier = (binary_expression "piVar17 + 1" identifier + number_literal)) ;)) (if_statement "if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }" if (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) (compound_statement "{\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);" do (compound_statement "{\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          }" { (expression_statement "iVar11 = *piVar17;" (assignment_expression "iVar11 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "piVar17 = piVar17 + 5;" (assignment_expression "piVar17 = piVar17 + 5" identifier = (binary_expression "piVar17 + 5" identifier + number_literal)) ;) (expression_statement "iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);" (assignment_expression "iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11)" identifier = (call_expression "(*(code *)(puVar5 + -0x6274))(param_1,iVar11)" (parenthesized_expression "(*(code *)(puVar5 + -0x6274))" ( (pointer_expression "*(code *)(puVar5 + -0x6274)" * (cast_expression "(code *)(puVar5 + -0x6274)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x6274)" ( (binary_expression "puVar5 + -0x6274" identifier + number_literal) )))) )) (argument_list "(param_1,iVar11)" ( identifier , identifier )))) ;) (if_statement "if (iVar11 != 0) goto LAB_000eb184;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000eb184;" goto statement_identifier ;)) }) while (parenthesized_expression "(iVar13 != iVar18)" ( (binary_expression "iVar13 != iVar18" identifier != identifier) )) ;) })) (expression_statement "iVar11 = *(int *)(*param_1 + 8);" (assignment_expression "iVar11 = *(int *)(*param_1 + 8)" identifier = (pointer_expression "*(int *)(*param_1 + 8)" * (cast_expression "(int *)(*param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (labeled_statement "LAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }" statement_identifier : (if_statement "if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }" if (parenthesized_expression "((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0))" ( (binary_expression "(local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)" (parenthesized_expression "(local_40 == 0)" ( (binary_expression "local_40 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_40 = *(int *)(param_3 + 0x24), local_40 != 0)" ( (comma_expression "local_40 = *(int *)(param_3 + 0x24), local_40 != 0" (assignment_expression "local_40 = *(int *)(param_3 + 0x24)" identifier = (pointer_expression "*(int *)(param_3 + 0x24)" * (cast_expression "(int *)(param_3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) ))))) , (binary_expression "local_40 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }" { (expression_statement "local_40 = param_1[0xb] + 1;" (assignment_expression "local_40 = param_1[0xb] + 1" identifier = (binary_expression "param_1[0xb] + 1" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_1[0xb] = local_40;" (assignment_expression "param_1[0xb] = local_40" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);" (assignment_expression "uVar10 = (*local_48)(piVar14,0x52,local_40,0,0)" identifier = (call_expression "(*local_48)(piVar14,0x52,local_40,0,0)" (parenthesized_expression "(*local_48)" ( (pointer_expression "*local_48" * identifier) )) (argument_list "(piVar14,0x52,local_40,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal )))) ;) (expression_statement "(*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);" (call_expression "(*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(piVar14,uVar10,iVar11,0xfffffffe)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "iVar18 = piVar12[2];" (assignment_expression "iVar18 = piVar12[2]" identifier = (subscript_expression "piVar12[2]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }" else (compound_statement "{\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }" { (expression_statement "iVar13 = *piVar17;" (assignment_expression "iVar13 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "iVar16 = (*pcVar7)(param_1,iVar13);" (assignment_expression "iVar16 = (*pcVar7)(param_1,iVar13)" identifier = (call_expression "(*pcVar7)(param_1,iVar13)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(param_1,iVar13)" ( identifier , identifier )))) ;) (expression_statement "(*pcVar8)(param_1,piVar17,iVar16,0,1);" (call_expression "(*pcVar8)(param_1,piVar17,iVar16,0,1)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(param_1,piVar17,iVar16,0,1)" ( identifier , identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "uStack_4a = (ushort)iVar13 & 0xff;" (assignment_expression "uStack_4a = (ushort)iVar13 & 0xff" identifier = (binary_expression "(ushort)iVar13 & 0xff" (cast_expression "(ushort)iVar13" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if (piVar12[3] < 0) goto LAB_000eb028;" if (parenthesized_expression "(piVar12[3] < 0)" ( (binary_expression "piVar12[3] < 0" (subscript_expression "piVar12[3]" identifier [ number_literal ]) < number_literal) )) (goto_statement "goto LAB_000eb028;" goto statement_identifier ;)) (labeled_statement "LAB_000eb100:\n        iVar15 = param_1[0xe] + -1;" statement_identifier : (expression_statement "iVar15 = param_1[0xe] + -1;" (assignment_expression "iVar15 = param_1[0xe] + -1" identifier = (binary_expression "param_1[0xe] + -1" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) + number_literal)) ;)) (expression_statement "param_1[0xe] = iVar15;" (assignment_expression "param_1[0xe] = iVar15" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);" (call_expression "(*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16)" (parenthesized_expression "(*(code *)(puVar4 + 0x27d0))" ( (pointer_expression "*(code *)(puVar4 + 0x27d0)" * (cast_expression "(code *)(puVar4 + 0x27d0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x27d0)" ( (binary_expression "puVar4 + 0x27d0" identifier + number_literal) )))) )) (argument_list "(param_1,piVar12[3],iVar15,1,iVar16)" ( identifier , (subscript_expression "piVar12[3]" identifier [ number_literal ]) , identifier , number_literal , identifier ))) ;) (if_statement "if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;" if (parenthesized_expression "((*(uint *)(piVar12[1] + 4) & 0x20) != 0)" ( (binary_expression "(*(uint *)(piVar12[1] + 4) & 0x20) != 0" (parenthesized_expression "(*(uint *)(piVar12[1] + 4) & 0x20)" ( (binary_expression "*(uint *)(piVar12[1] + 4) & 0x20" (pointer_expression "*(uint *)(piVar12[1] + 4)" * (cast_expression "(uint *)(piVar12[1] + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[1] + 4)" ( (binary_expression "piVar12[1] + 4" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000eb140;" goto statement_identifier ;)) (labeled_statement "LAB_000eb03c:\n        iVar18 = piVar12[2];" statement_identifier : (expression_statement "iVar18 = piVar12[2];" (assignment_expression "iVar18 = piVar12[2]" identifier = (subscript_expression "piVar12[2]" identifier [ number_literal ])) ;)) }))) (expression_statement "(*local_48)(piVar14,0x9a,0,iVar16,iVar18);" (call_expression "(*local_48)(piVar14,0x9a,0,iVar16,iVar18)" (parenthesized_expression "(*local_48)" ( (pointer_expression "*local_48" * identifier) )) (argument_list "(piVar14,0x9a,0,iVar16,iVar18)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "(*pcVar6)(piVar14,piVar12[1],0xfffffff8);" (call_expression "(*pcVar6)(piVar14,piVar12[1],0xfffffff8)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(piVar14,piVar12[1],0xfffffff8)" ( identifier , (subscript_expression "piVar12[1]" identifier [ number_literal ]) , number_literal ))) ;) (if_statement "if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }" if (parenthesized_expression "(0 < piVar14[0x1b])" ( (binary_expression "0 < piVar14[0x1b]" number_literal < (subscript_expression "piVar14[0x1b]" identifier [ number_literal ])) )) (compound_statement "{\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }" { (expression_statement "*(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;" (assignment_expression "*(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a" (pointer_expression "*(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16)" * (cast_expression "(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16)" ( (binary_expression "piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16" (binary_expression "piVar14[0x1a] + piVar14[0x1b] * 0x18" (subscript_expression "piVar14[0x1a]" identifier [ number_literal ]) + (binary_expression "piVar14[0x1b] * 0x18" (subscript_expression "piVar14[0x1b]" identifier [ number_literal ]) * number_literal)) + number_literal) )))) = identifier) ;) })) (if_statement "if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }" if (parenthesized_expression "(iVar13 == 1)" ( (binary_expression "iVar13 == 1" identifier == number_literal) )) (compound_statement "{\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }" { (expression_statement "(*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);" (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x47a4))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x47a4)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x47a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x47a4)" ( (binary_expression "PTR_LAB_00190ba4 + -0x47a4" identifier + number_literal) )))) )) (argument_list "(param_1,iVar16)" ( identifier , identifier ))) ;) }) (else_clause "else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }" else (if_statement "if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }" if (parenthesized_expression "(param_1[7] < iVar13)" ( (binary_expression "param_1[7] < iVar13" (subscript_expression "param_1[7]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }" { (expression_statement "param_1[7] = iVar13;" (assignment_expression "param_1[7] = iVar13" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[8] = iVar16;" (assignment_expression "param_1[8] = iVar16" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) })))) (if_statement "if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }" { (expression_statement "piVar12 = piVar12 + 4;" (assignment_expression "piVar12 = piVar12 + 4" identifier = (binary_expression "piVar12 + 4" identifier + number_literal)) ;) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) (if_statement "if (*(int *)(param_3 + 0x2c) <= local_50) break;" if (parenthesized_expression "(*(int *)(param_3 + 0x2c) <= local_50)" ( (binary_expression "*(int *)(param_3 + 0x2c) <= local_50" (pointer_expression "*(int *)(param_3 + 0x2c)" * (cast_expression "(int *)(param_3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2c)" ( (binary_expression "param_3 + 0x2c" identifier + number_literal) )))) <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_000eb0dc;" goto statement_identifier ;) })) (expression_statement "piVar12 = piVar12 + 4;" (assignment_expression "piVar12 = piVar12 + 4" identifier = (binary_expression "piVar12 + 4" identifier + number_literal)) ;) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0xd78))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0xd78)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0xd78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0xd78)" ( (binary_expression "PTR_LAB_00190bc0 + 0xd78" identifier + number_literal) )))) )) (argument_list "(piVar14,iVar15)" ( identifier , identifier ))) ;) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_50 < *(int *)(param_3 + 0x2c))" ( (binary_expression "local_50 < *(int *)(param_3 + 0x2c)" identifier < (pointer_expression "*(int *)(param_3 + 0x2c)" * (cast_expression "(int *)(param_3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2c)" ( (binary_expression "param_3 + 0x2c" identifier + number_literal) ))))) )) ;)) (if_statement "if (local_40 == 0) goto LAB_000eb358;" if (parenthesized_expression "(local_40 == 0)" ( (binary_expression "local_40 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000eb358;" goto statement_identifier ;)) (labeled_statement "LAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);" statement_identifier : (expression_statement "local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);" (assignment_expression "local_res4 = (*local_48)(piVar14,0x12,local_40,0,0)" identifier = (call_expression "(*local_48)(piVar14,0x12,local_40,0,0)" (parenthesized_expression "(*local_48)" ( (pointer_expression "*local_48" * identifier) )) (argument_list "(piVar14,0x12,local_40,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal )))) ;)) (expression_statement "iVar16 = *(int *)(param_3 + 0x1c);" (assignment_expression "iVar16 = *(int *)(param_3 + 0x1c)" identifier = (pointer_expression "*(int *)(param_3 + 0x1c)" * (cast_expression "(int *)(param_3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;" if (parenthesized_expression "(*(int *)(param_3 + 0x24) < 1)" ( (binary_expression "*(int *)(param_3 + 0x24) < 1" (pointer_expression "*(int *)(param_3 + 0x24)" * (cast_expression "(int *)(param_3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) )))) < number_literal) )) (goto_statement "goto LAB_000eb298;" goto statement_identifier ;)) }))) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n    puVar1 = (undefined4 *)(iVar16 + 0x10);\n    puVar2 = (undefined4 *)(iVar16 + 0x14);\n    iVar13 = iVar13 + 1;\n    iVar16 = iVar16 + 0x18;\n    FUN_000e8324(param_1,*puVar2,*puVar1);\n  } while (iVar13 < *(int *)(param_3 + 0x24));" do (compound_statement "{\n    puVar1 = (undefined4 *)(iVar16 + 0x10);\n    puVar2 = (undefined4 *)(iVar16 + 0x14);\n    iVar13 = iVar13 + 1;\n    iVar16 = iVar16 + 0x18;\n    FUN_000e8324(param_1,*puVar2,*puVar1);\n  }" { (expression_statement "puVar1 = (undefined4 *)(iVar16 + 0x10);" (assignment_expression "puVar1 = (undefined4 *)(iVar16 + 0x10)" identifier = (cast_expression "(undefined4 *)(iVar16 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x10)" ( (binary_expression "iVar16 + 0x10" identifier + number_literal) )))) ;) (expression_statement "puVar2 = (undefined4 *)(iVar16 + 0x14);" (assignment_expression "puVar2 = (undefined4 *)(iVar16 + 0x14)" identifier = (cast_expression "(undefined4 *)(iVar16 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) )))) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = iVar16 + 0x18;" (assignment_expression "iVar16 = iVar16 + 0x18" identifier = (binary_expression "iVar16 + 0x18" identifier + number_literal)) ;) (expression_statement "FUN_000e8324(param_1,*puVar2,*puVar1);" (call_expression "FUN_000e8324(param_1,*puVar2,*puVar1)" identifier (argument_list "(param_1,*puVar2,*puVar1)" ( identifier , (pointer_expression "*puVar2" * identifier) , (pointer_expression "*puVar1" * identifier) ))) ;) }) while (parenthesized_expression "(iVar13 < *(int *)(param_3 + 0x24))" ( (binary_expression "iVar13 < *(int *)(param_3 + 0x24)" identifier < (pointer_expression "*(int *)(param_3 + 0x24)" * (cast_expression "(int *)(param_3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) ))))) )) ;) (labeled_statement "LAB_000eb298:\n  *param_3 = 0;" statement_identifier : (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;)) (if_statement "if (local_res4 != 0) {\n    iVar16 = piVar14[0x1b];\n    if (local_res4 < 0) {\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    if (cVar3 == '\0') {\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }\n    else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }\n  }" if (parenthesized_expression "(local_res4 != 0)" ( (binary_expression "local_res4 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar16 = piVar14[0x1b];\n    if (local_res4 < 0) {\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    if (cVar3 == '\0') {\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }\n    else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }\n  }" { (expression_statement "iVar16 = piVar14[0x1b];" (assignment_expression "iVar16 = piVar14[0x1b]" identifier = (subscript_expression "piVar14[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (local_res4 < 0) {\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }" if (parenthesized_expression "(local_res4 < 0)" ( (binary_expression "local_res4 < 0" identifier < number_literal) )) (compound_statement "{\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }" { (expression_statement "local_res4 = iVar16 + -1;" (assignment_expression "local_res4 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "cVar3 = *(char *)(*piVar14 + 0x51);" (assignment_expression "cVar3 = *(char *)(*piVar14 + 0x51)" identifier = (pointer_expression "*(char *)(*piVar14 + 0x51)" * (cast_expression "(char *)(*piVar14 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar14 + 0x51)" ( (binary_expression "*piVar14 + 0x51" (pointer_expression "*piVar14" * identifier) + number_literal) ))))) ;) }) (else_clause "else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }" else (compound_statement "{\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }" { (expression_statement "cVar3 = *(char *)(*piVar14 + 0x51);" (assignment_expression "cVar3 = *(char *)(*piVar14 + 0x51)" identifier = (pointer_expression "*(char *)(*piVar14 + 0x51)" * (cast_expression "(char *)(*piVar14 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar14 + 0x51)" ( (binary_expression "*piVar14 + 0x51" (pointer_expression "*piVar14" * identifier) + number_literal) ))))) ;) }))) (if_statement "if (cVar3 == '\0') {\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }\n    else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }" { (expression_statement "*(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;" (assignment_expression "*(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16" (pointer_expression "*(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8)" * (cast_expression "(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar14[0x1a] + local_res4 * 0x18 + 8)" ( (binary_expression "piVar14[0x1a] + local_res4 * 0x18 + 8" (binary_expression "piVar14[0x1a] + local_res4 * 0x18" (subscript_expression "piVar14[0x1a]" identifier [ number_literal ]) + (binary_expression "local_res4 * 0x18" identifier * number_literal)) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }" else (compound_statement "{\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }" { (expression_statement "*(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;" (assignment_expression "*(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16" (pointer_expression "*(int *)(PTR_DAT_00190948 + 0xfc4)" * (cast_expression "(int *)(PTR_DAT_00190948 + 0xfc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00190948 + 0xfc4)" ( (binary_expression "PTR_DAT_00190948 + 0xfc4" identifier + number_literal) )))) = identifier) ;) }))) })) (return_statement "return;" return ;) })))
(translation_unit "void updateAccumulator(Parse *pParse,int regAcc,AggInfo *pAggInfo)\n\n{\n  int *piVar1;\n  Expr **ppEVar2;\n  u8 uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  CollSeq *pCVar10;\n  undefined4 uVar11;\n  AggInfo_func *pAVar12;\n  AggInfo_col *pAVar13;\n  int iVar14;\n  Vdbe *pVVar15;\n  int iVar16;\n  int iVar17;\n  ExprList *pEVar18;\n  ExprList_item *pEVar19;\n  int iVar20;\n  int iStackX_4;\n  int iStack_50;\n  ushort uStack_4a;\n  code *pcStack_48;\n  int iStack_40;\n  \n  pVVar15 = pParse->pVdbe;\n  pAVar12 = pAggInfo->aFunc;\n  pAggInfo->directMode = '\x01';\n  puVar5 = PTR_LAB_00190bc4;\n  puVar4 = PTR_LAB_00190bc0;\n  if (pAggInfo->nFunc < 1) {\nLAB_000eb358:\n    if (pAggInfo->nAccumulator == 0) {\nLAB_000eb374:\n      pAggInfo->directMode = '\0';\n      return;\n    }\n    if (regAcc != 0) {\n      pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      iStack_40 = regAcc;\n      goto LAB_000eb230;\n    }\n    pAVar13 = pAggInfo->aCol;\n    iStackX_4 = 0;\n    if (pAggInfo->nAccumulator < 1) goto LAB_000eb374;\n  }\n  else {\n    iStack_40 = 0;\n    iStack_50 = 0;\n    pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      pEVar18 = (pAVar12->pExpr->x).pList;\n      if (pEVar18 == (ExprList *)0x0) {\n        iVar17 = 0;\n        uStack_4a = 0;\n        iVar14 = 0;\n        if (-1 < pAVar12->iDistinct) goto LAB_000eb100;\nLAB_000eb028:\n        iVar16 = 0;\n        if ((pAVar12->pFunc->funcFlags & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        pEVar19 = pEVar18->a;\n        if (0 < iVar14) {\n          iVar20 = 0;\n          do {\n            ppEVar2 = &pEVar19->pExpr;\n            iVar20 = iVar20 + 1;\n            pEVar19 = pEVar19 + 1;\n            pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2);\n            if (pCVar10 != (CollSeq *)0x0) goto LAB_000eb184;\n          } while (iVar14 != iVar20);\n        }\n        pCVar10 = pParse->db->pDfltColl;\nLAB_000eb184:\n        if ((iStack_40 == 0) && (iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0)) {\n          iStack_40 = pParse->nMem + 1;\n          pParse->nMem = iStack_40;\n        }\n        uVar11 = (*pcStack_48)(pVVar15,0x52,iStack_40,0,0);\n        (*pcVar9)(pVVar15,uVar11,pCVar10,0xfffffffe);\n        iVar20 = pAVar12->iMem;\n      }\n      else {\n        iVar14 = pEVar18->nExpr;\n        iVar17 = (*pcVar7)(pParse,iVar14);\n        (*pcVar8)(pParse,pEVar18,iVar17,0,1);\n        uStack_4a = (ushort)iVar14 & 0xff;\n        if (pAVar12->iDistinct < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar16 = pParse->nLabel + -1;\n        pParse->nLabel = iVar16;\n        (*(code *)(puVar4 + 0x27d0))(pParse,pAVar12->iDistinct,iVar16,1,iVar17);\n        if ((pAVar12->pFunc->funcFlags & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar20 = pAVar12->iMem;\n      }\n      (*pcStack_48)(pVVar15,0x9a,0,iVar17,iVar20);\n      (*pcVar6)(pVVar15,pAVar12->pFunc,0xfffffff8);\n      if (0 < pVVar15->nOp) {\n        pVVar15->aOp[pVVar15->nOp + -1].p5 = uStack_4a;\n      }\n      if (iVar14 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(pParse,iVar17);\n      }\n      else if (pParse->nRangeReg < iVar14) {\n        pParse->nRangeReg = iVar14;\n        pParse->iRangeReg = iVar17;\n      }\n      if (iVar16 == 0) {\n        pAVar12 = pAVar12 + 1;\n        iStack_50 = iStack_50 + 1;\n        if (pAggInfo->nFunc <= iStack_50) break;\n        goto LAB_000eb0dc;\n      }\n      pAVar12 = pAVar12 + 1;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pVVar15,iVar16);\n      iStack_50 = iStack_50 + 1;\n    } while (iStack_50 < pAggInfo->nFunc);\n    if (iStack_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    iStackX_4 = (*pcStack_48)(pVVar15,0x12,iStack_40,0,0);\n    pAVar13 = pAggInfo->aCol;\n    if (pAggInfo->nAccumulator < 1) goto LAB_000eb298;\n  }\n  iVar17 = 0;\n  do {\n    piVar1 = &pAVar13->iMem;\n    ppEVar2 = &pAVar13->pExpr;\n    iVar17 = iVar17 + 1;\n    pAVar13 = pAVar13 + 1;\n    sqlite3ExprCode(pParse,*ppEVar2,*piVar1);\n  } while (iVar17 < pAggInfo->nAccumulator);\nLAB_000eb298:\n  pAggInfo->directMode = '\0';\n  if (iStackX_4 != 0) {\n    iVar17 = pVVar15->nOp;\n    if (iStackX_4 < 0) {\n      iStackX_4 = iVar17 + -1;\n      uVar3 = pVVar15->db->mallocFailed;\n    }\n    else {\n      uVar3 = pVVar15->db->mallocFailed;\n    }\n    if (uVar3 == '\0') {\n      pVVar15->aOp[iStackX_4].p2 = iVar17;\n    }\n    else {\n      *(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + 0xfc4) = iVar17;\n    }\n  }\n  return;\n}\n\n" (function_definition "void updateAccumulator(Parse *pParse,int regAcc,AggInfo *pAggInfo)\n\n{\n  int *piVar1;\n  Expr **ppEVar2;\n  u8 uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  CollSeq *pCVar10;\n  undefined4 uVar11;\n  AggInfo_func *pAVar12;\n  AggInfo_col *pAVar13;\n  int iVar14;\n  Vdbe *pVVar15;\n  int iVar16;\n  int iVar17;\n  ExprList *pEVar18;\n  ExprList_item *pEVar19;\n  int iVar20;\n  int iStackX_4;\n  int iStack_50;\n  ushort uStack_4a;\n  code *pcStack_48;\n  int iStack_40;\n  \n  pVVar15 = pParse->pVdbe;\n  pAVar12 = pAggInfo->aFunc;\n  pAggInfo->directMode = '\x01';\n  puVar5 = PTR_LAB_00190bc4;\n  puVar4 = PTR_LAB_00190bc0;\n  if (pAggInfo->nFunc < 1) {\nLAB_000eb358:\n    if (pAggInfo->nAccumulator == 0) {\nLAB_000eb374:\n      pAggInfo->directMode = '\0';\n      return;\n    }\n    if (regAcc != 0) {\n      pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      iStack_40 = regAcc;\n      goto LAB_000eb230;\n    }\n    pAVar13 = pAggInfo->aCol;\n    iStackX_4 = 0;\n    if (pAggInfo->nAccumulator < 1) goto LAB_000eb374;\n  }\n  else {\n    iStack_40 = 0;\n    iStack_50 = 0;\n    pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      pEVar18 = (pAVar12->pExpr->x).pList;\n      if (pEVar18 == (ExprList *)0x0) {\n        iVar17 = 0;\n        uStack_4a = 0;\n        iVar14 = 0;\n        if (-1 < pAVar12->iDistinct) goto LAB_000eb100;\nLAB_000eb028:\n        iVar16 = 0;\n        if ((pAVar12->pFunc->funcFlags & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        pEVar19 = pEVar18->a;\n        if (0 < iVar14) {\n          iVar20 = 0;\n          do {\n            ppEVar2 = &pEVar19->pExpr;\n            iVar20 = iVar20 + 1;\n            pEVar19 = pEVar19 + 1;\n            pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2);\n            if (pCVar10 != (CollSeq *)0x0) goto LAB_000eb184;\n          } while (iVar14 != iVar20);\n        }\n        pCVar10 = pParse->db->pDfltColl;\nLAB_000eb184:\n        if ((iStack_40 == 0) && (iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0)) {\n          iStack_40 = pParse->nMem + 1;\n          pParse->nMem = iStack_40;\n        }\n        uVar11 = (*pcStack_48)(pVVar15,0x52,iStack_40,0,0);\n        (*pcVar9)(pVVar15,uVar11,pCVar10,0xfffffffe);\n        iVar20 = pAVar12->iMem;\n      }\n      else {\n        iVar14 = pEVar18->nExpr;\n        iVar17 = (*pcVar7)(pParse,iVar14);\n        (*pcVar8)(pParse,pEVar18,iVar17,0,1);\n        uStack_4a = (ushort)iVar14 & 0xff;\n        if (pAVar12->iDistinct < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar16 = pParse->nLabel + -1;\n        pParse->nLabel = iVar16;\n        (*(code *)(puVar4 + 0x27d0))(pParse,pAVar12->iDistinct,iVar16,1,iVar17);\n        if ((pAVar12->pFunc->funcFlags & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar20 = pAVar12->iMem;\n      }\n      (*pcStack_48)(pVVar15,0x9a,0,iVar17,iVar20);\n      (*pcVar6)(pVVar15,pAVar12->pFunc,0xfffffff8);\n      if (0 < pVVar15->nOp) {\n        pVVar15->aOp[pVVar15->nOp + -1].p5 = uStack_4a;\n      }\n      if (iVar14 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(pParse,iVar17);\n      }\n      else if (pParse->nRangeReg < iVar14) {\n        pParse->nRangeReg = iVar14;\n        pParse->iRangeReg = iVar17;\n      }\n      if (iVar16 == 0) {\n        pAVar12 = pAVar12 + 1;\n        iStack_50 = iStack_50 + 1;\n        if (pAggInfo->nFunc <= iStack_50) break;\n        goto LAB_000eb0dc;\n      }\n      pAVar12 = pAVar12 + 1;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pVVar15,iVar16);\n      iStack_50 = iStack_50 + 1;\n    } while (iStack_50 < pAggInfo->nFunc);\n    if (iStack_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    iStackX_4 = (*pcStack_48)(pVVar15,0x12,iStack_40,0,0);\n    pAVar13 = pAggInfo->aCol;\n    if (pAggInfo->nAccumulator < 1) goto LAB_000eb298;\n  }\n  iVar17 = 0;\n  do {\n    piVar1 = &pAVar13->iMem;\n    ppEVar2 = &pAVar13->pExpr;\n    iVar17 = iVar17 + 1;\n    pAVar13 = pAVar13 + 1;\n    sqlite3ExprCode(pParse,*ppEVar2,*piVar1);\n  } while (iVar17 < pAggInfo->nAccumulator);\nLAB_000eb298:\n  pAggInfo->directMode = '\0';\n  if (iStackX_4 != 0) {\n    iVar17 = pVVar15->nOp;\n    if (iStackX_4 < 0) {\n      iStackX_4 = iVar17 + -1;\n      uVar3 = pVVar15->db->mallocFailed;\n    }\n    else {\n      uVar3 = pVVar15->db->mallocFailed;\n    }\n    if (uVar3 == '\0') {\n      pVVar15->aOp[iStackX_4].p2 = iVar17;\n    }\n    else {\n      *(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + 0xfc4) = iVar17;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "updateAccumulator(Parse *pParse,int regAcc,AggInfo *pAggInfo)" identifier (parameter_list "(Parse *pParse,int regAcc,AggInfo *pAggInfo)" ( (parameter_declaration "Parse *pParse" type_identifier (pointer_declarator "*pParse" * identifier)) , (parameter_declaration "int regAcc" primitive_type identifier) , (parameter_declaration "AggInfo *pAggInfo" type_identifier (pointer_declarator "*pAggInfo" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  Expr **ppEVar2;\n  u8 uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  CollSeq *pCVar10;\n  undefined4 uVar11;\n  AggInfo_func *pAVar12;\n  AggInfo_col *pAVar13;\n  int iVar14;\n  Vdbe *pVVar15;\n  int iVar16;\n  int iVar17;\n  ExprList *pEVar18;\n  ExprList_item *pEVar19;\n  int iVar20;\n  int iStackX_4;\n  int iStack_50;\n  ushort uStack_4a;\n  code *pcStack_48;\n  int iStack_40;\n  \n  pVVar15 = pParse->pVdbe;\n  pAVar12 = pAggInfo->aFunc;\n  pAggInfo->directMode = '\x01';\n  puVar5 = PTR_LAB_00190bc4;\n  puVar4 = PTR_LAB_00190bc0;\n  if (pAggInfo->nFunc < 1) {\nLAB_000eb358:\n    if (pAggInfo->nAccumulator == 0) {\nLAB_000eb374:\n      pAggInfo->directMode = '\0';\n      return;\n    }\n    if (regAcc != 0) {\n      pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      iStack_40 = regAcc;\n      goto LAB_000eb230;\n    }\n    pAVar13 = pAggInfo->aCol;\n    iStackX_4 = 0;\n    if (pAggInfo->nAccumulator < 1) goto LAB_000eb374;\n  }\n  else {\n    iStack_40 = 0;\n    iStack_50 = 0;\n    pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      pEVar18 = (pAVar12->pExpr->x).pList;\n      if (pEVar18 == (ExprList *)0x0) {\n        iVar17 = 0;\n        uStack_4a = 0;\n        iVar14 = 0;\n        if (-1 < pAVar12->iDistinct) goto LAB_000eb100;\nLAB_000eb028:\n        iVar16 = 0;\n        if ((pAVar12->pFunc->funcFlags & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        pEVar19 = pEVar18->a;\n        if (0 < iVar14) {\n          iVar20 = 0;\n          do {\n            ppEVar2 = &pEVar19->pExpr;\n            iVar20 = iVar20 + 1;\n            pEVar19 = pEVar19 + 1;\n            pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2);\n            if (pCVar10 != (CollSeq *)0x0) goto LAB_000eb184;\n          } while (iVar14 != iVar20);\n        }\n        pCVar10 = pParse->db->pDfltColl;\nLAB_000eb184:\n        if ((iStack_40 == 0) && (iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0)) {\n          iStack_40 = pParse->nMem + 1;\n          pParse->nMem = iStack_40;\n        }\n        uVar11 = (*pcStack_48)(pVVar15,0x52,iStack_40,0,0);\n        (*pcVar9)(pVVar15,uVar11,pCVar10,0xfffffffe);\n        iVar20 = pAVar12->iMem;\n      }\n      else {\n        iVar14 = pEVar18->nExpr;\n        iVar17 = (*pcVar7)(pParse,iVar14);\n        (*pcVar8)(pParse,pEVar18,iVar17,0,1);\n        uStack_4a = (ushort)iVar14 & 0xff;\n        if (pAVar12->iDistinct < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar16 = pParse->nLabel + -1;\n        pParse->nLabel = iVar16;\n        (*(code *)(puVar4 + 0x27d0))(pParse,pAVar12->iDistinct,iVar16,1,iVar17);\n        if ((pAVar12->pFunc->funcFlags & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar20 = pAVar12->iMem;\n      }\n      (*pcStack_48)(pVVar15,0x9a,0,iVar17,iVar20);\n      (*pcVar6)(pVVar15,pAVar12->pFunc,0xfffffff8);\n      if (0 < pVVar15->nOp) {\n        pVVar15->aOp[pVVar15->nOp + -1].p5 = uStack_4a;\n      }\n      if (iVar14 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(pParse,iVar17);\n      }\n      else if (pParse->nRangeReg < iVar14) {\n        pParse->nRangeReg = iVar14;\n        pParse->iRangeReg = iVar17;\n      }\n      if (iVar16 == 0) {\n        pAVar12 = pAVar12 + 1;\n        iStack_50 = iStack_50 + 1;\n        if (pAggInfo->nFunc <= iStack_50) break;\n        goto LAB_000eb0dc;\n      }\n      pAVar12 = pAVar12 + 1;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pVVar15,iVar16);\n      iStack_50 = iStack_50 + 1;\n    } while (iStack_50 < pAggInfo->nFunc);\n    if (iStack_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    iStackX_4 = (*pcStack_48)(pVVar15,0x12,iStack_40,0,0);\n    pAVar13 = pAggInfo->aCol;\n    if (pAggInfo->nAccumulator < 1) goto LAB_000eb298;\n  }\n  iVar17 = 0;\n  do {\n    piVar1 = &pAVar13->iMem;\n    ppEVar2 = &pAVar13->pExpr;\n    iVar17 = iVar17 + 1;\n    pAVar13 = pAVar13 + 1;\n    sqlite3ExprCode(pParse,*ppEVar2,*piVar1);\n  } while (iVar17 < pAggInfo->nAccumulator);\nLAB_000eb298:\n  pAggInfo->directMode = '\0';\n  if (iStackX_4 != 0) {\n    iVar17 = pVVar15->nOp;\n    if (iStackX_4 < 0) {\n      iStackX_4 = iVar17 + -1;\n      uVar3 = pVVar15->db->mallocFailed;\n    }\n    else {\n      uVar3 = pVVar15->db->mallocFailed;\n    }\n    if (uVar3 == '\0') {\n      pVVar15->aOp[iStackX_4].p2 = iVar17;\n    }\n    else {\n      *(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + 0xfc4) = iVar17;\n    }\n  }\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "Expr **ppEVar2;" type_identifier (pointer_declarator "**ppEVar2" * (pointer_declarator "*ppEVar2" * identifier)) ;) (declaration "u8 uVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "CollSeq *pCVar10;" type_identifier (pointer_declarator "*pCVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "AggInfo_func *pAVar12;" type_identifier (pointer_declarator "*pAVar12" * identifier) ;) (declaration "AggInfo_col *pAVar13;" type_identifier (pointer_declarator "*pAVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "Vdbe *pVVar15;" type_identifier (pointer_declarator "*pVVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "ExprList *pEVar18;" type_identifier (pointer_declarator "*pEVar18" * identifier) ;) (declaration "ExprList_item *pEVar19;" type_identifier (pointer_declarator "*pEVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int iStackX_4;" primitive_type identifier ;) (declaration "int iStack_50;" primitive_type identifier ;) (declaration "ushort uStack_4a;" type_identifier identifier ;) (declaration "code *pcStack_48;" type_identifier (pointer_declarator "*pcStack_48" * identifier) ;) (declaration "int iStack_40;" primitive_type identifier ;) (expression_statement "pVVar15 = pParse->pVdbe;" (assignment_expression "pVVar15 = pParse->pVdbe" identifier = (field_expression "pParse->pVdbe" identifier -> field_identifier)) ;) (expression_statement "pAVar12 = pAggInfo->aFunc;" (assignment_expression "pAVar12 = pAggInfo->aFunc" identifier = (field_expression "pAggInfo->aFunc" identifier -> field_identifier)) ;) (expression_statement "pAggInfo->directMode = '\x01';" (assignment_expression "pAggInfo->directMode = '\x01'" (field_expression "pAggInfo->directMode" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "puVar5 = PTR_LAB_00190bc4;" (assignment_expression "puVar5 = PTR_LAB_00190bc4" identifier = identifier) ;) (expression_statement "puVar4 = PTR_LAB_00190bc0;" (assignment_expression "puVar4 = PTR_LAB_00190bc0" identifier = identifier) ;) (if_statement "if (pAggInfo->nFunc < 1) {\nLAB_000eb358:\n    if (pAggInfo->nAccumulator == 0) {\nLAB_000eb374:\n      pAggInfo->directMode = '\0';\n      return;\n    }\n    if (regAcc != 0) {\n      pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      iStack_40 = regAcc;\n      goto LAB_000eb230;\n    }\n    pAVar13 = pAggInfo->aCol;\n    iStackX_4 = 0;\n    if (pAggInfo->nAccumulator < 1) goto LAB_000eb374;\n  }\n  else {\n    iStack_40 = 0;\n    iStack_50 = 0;\n    pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      pEVar18 = (pAVar12->pExpr->x).pList;\n      if (pEVar18 == (ExprList *)0x0) {\n        iVar17 = 0;\n        uStack_4a = 0;\n        iVar14 = 0;\n        if (-1 < pAVar12->iDistinct) goto LAB_000eb100;\nLAB_000eb028:\n        iVar16 = 0;\n        if ((pAVar12->pFunc->funcFlags & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        pEVar19 = pEVar18->a;\n        if (0 < iVar14) {\n          iVar20 = 0;\n          do {\n            ppEVar2 = &pEVar19->pExpr;\n            iVar20 = iVar20 + 1;\n            pEVar19 = pEVar19 + 1;\n            pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2);\n            if (pCVar10 != (CollSeq *)0x0) goto LAB_000eb184;\n          } while (iVar14 != iVar20);\n        }\n        pCVar10 = pParse->db->pDfltColl;\nLAB_000eb184:\n        if ((iStack_40 == 0) && (iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0)) {\n          iStack_40 = pParse->nMem + 1;\n          pParse->nMem = iStack_40;\n        }\n        uVar11 = (*pcStack_48)(pVVar15,0x52,iStack_40,0,0);\n        (*pcVar9)(pVVar15,uVar11,pCVar10,0xfffffffe);\n        iVar20 = pAVar12->iMem;\n      }\n      else {\n        iVar14 = pEVar18->nExpr;\n        iVar17 = (*pcVar7)(pParse,iVar14);\n        (*pcVar8)(pParse,pEVar18,iVar17,0,1);\n        uStack_4a = (ushort)iVar14 & 0xff;\n        if (pAVar12->iDistinct < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar16 = pParse->nLabel + -1;\n        pParse->nLabel = iVar16;\n        (*(code *)(puVar4 + 0x27d0))(pParse,pAVar12->iDistinct,iVar16,1,iVar17);\n        if ((pAVar12->pFunc->funcFlags & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar20 = pAVar12->iMem;\n      }\n      (*pcStack_48)(pVVar15,0x9a,0,iVar17,iVar20);\n      (*pcVar6)(pVVar15,pAVar12->pFunc,0xfffffff8);\n      if (0 < pVVar15->nOp) {\n        pVVar15->aOp[pVVar15->nOp + -1].p5 = uStack_4a;\n      }\n      if (iVar14 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(pParse,iVar17);\n      }\n      else if (pParse->nRangeReg < iVar14) {\n        pParse->nRangeReg = iVar14;\n        pParse->iRangeReg = iVar17;\n      }\n      if (iVar16 == 0) {\n        pAVar12 = pAVar12 + 1;\n        iStack_50 = iStack_50 + 1;\n        if (pAggInfo->nFunc <= iStack_50) break;\n        goto LAB_000eb0dc;\n      }\n      pAVar12 = pAVar12 + 1;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pVVar15,iVar16);\n      iStack_50 = iStack_50 + 1;\n    } while (iStack_50 < pAggInfo->nFunc);\n    if (iStack_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    iStackX_4 = (*pcStack_48)(pVVar15,0x12,iStack_40,0,0);\n    pAVar13 = pAggInfo->aCol;\n    if (pAggInfo->nAccumulator < 1) goto LAB_000eb298;\n  }" if (parenthesized_expression "(pAggInfo->nFunc < 1)" ( (binary_expression "pAggInfo->nFunc < 1" (field_expression "pAggInfo->nFunc" identifier -> field_identifier) < number_literal) )) (compound_statement "{\nLAB_000eb358:\n    if (pAggInfo->nAccumulator == 0) {\nLAB_000eb374:\n      pAggInfo->directMode = '\0';\n      return;\n    }\n    if (regAcc != 0) {\n      pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      iStack_40 = regAcc;\n      goto LAB_000eb230;\n    }\n    pAVar13 = pAggInfo->aCol;\n    iStackX_4 = 0;\n    if (pAggInfo->nAccumulator < 1) goto LAB_000eb374;\n  }" { (labeled_statement "LAB_000eb358:\n    if (pAggInfo->nAccumulator == 0) {\nLAB_000eb374:\n      pAggInfo->directMode = '\0';\n      return;\n    }" statement_identifier : (if_statement "if (pAggInfo->nAccumulator == 0) {\nLAB_000eb374:\n      pAggInfo->directMode = '\0';\n      return;\n    }" if (parenthesized_expression "(pAggInfo->nAccumulator == 0)" ( (binary_expression "pAggInfo->nAccumulator == 0" (field_expression "pAggInfo->nAccumulator" identifier -> field_identifier) == number_literal) )) (compound_statement "{\nLAB_000eb374:\n      pAggInfo->directMode = '\0';\n      return;\n    }" { (labeled_statement "LAB_000eb374:\n      pAggInfo->directMode = '\0';" statement_identifier : (expression_statement "pAggInfo->directMode = '\0';" (assignment_expression "pAggInfo->directMode = '\0'" (field_expression "pAggInfo->directMode" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (return_statement "return;" return ;) }))) (if_statement "if (regAcc != 0) {\n      pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      iStack_40 = regAcc;\n      goto LAB_000eb230;\n    }" if (parenthesized_expression "(regAcc != 0)" ( (binary_expression "regAcc != 0" identifier != number_literal) )) (compound_statement "{\n      pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      iStack_40 = regAcc;\n      goto LAB_000eb230;\n    }" { (expression_statement "pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);" (assignment_expression "pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc)" identifier = (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" ( (binary_expression "PTR_LAB_00190bc0 + 0x10fc" identifier + number_literal) )))) ;) (expression_statement "iStack_40 = regAcc;" (assignment_expression "iStack_40 = regAcc" identifier = identifier) ;) (goto_statement "goto LAB_000eb230;" goto statement_identifier ;) })) (expression_statement "pAVar13 = pAggInfo->aCol;" (assignment_expression "pAVar13 = pAggInfo->aCol" identifier = (field_expression "pAggInfo->aCol" identifier -> field_identifier)) ;) (expression_statement "iStackX_4 = 0;" (assignment_expression "iStackX_4 = 0" identifier = number_literal) ;) (if_statement "if (pAggInfo->nAccumulator < 1) goto LAB_000eb374;" if (parenthesized_expression "(pAggInfo->nAccumulator < 1)" ( (binary_expression "pAggInfo->nAccumulator < 1" (field_expression "pAggInfo->nAccumulator" identifier -> field_identifier) < number_literal) )) (goto_statement "goto LAB_000eb374;" goto statement_identifier ;)) }) (else_clause "else {\n    iStack_40 = 0;\n    iStack_50 = 0;\n    pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      pEVar18 = (pAVar12->pExpr->x).pList;\n      if (pEVar18 == (ExprList *)0x0) {\n        iVar17 = 0;\n        uStack_4a = 0;\n        iVar14 = 0;\n        if (-1 < pAVar12->iDistinct) goto LAB_000eb100;\nLAB_000eb028:\n        iVar16 = 0;\n        if ((pAVar12->pFunc->funcFlags & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        pEVar19 = pEVar18->a;\n        if (0 < iVar14) {\n          iVar20 = 0;\n          do {\n            ppEVar2 = &pEVar19->pExpr;\n            iVar20 = iVar20 + 1;\n            pEVar19 = pEVar19 + 1;\n            pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2);\n            if (pCVar10 != (CollSeq *)0x0) goto LAB_000eb184;\n          } while (iVar14 != iVar20);\n        }\n        pCVar10 = pParse->db->pDfltColl;\nLAB_000eb184:\n        if ((iStack_40 == 0) && (iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0)) {\n          iStack_40 = pParse->nMem + 1;\n          pParse->nMem = iStack_40;\n        }\n        uVar11 = (*pcStack_48)(pVVar15,0x52,iStack_40,0,0);\n        (*pcVar9)(pVVar15,uVar11,pCVar10,0xfffffffe);\n        iVar20 = pAVar12->iMem;\n      }\n      else {\n        iVar14 = pEVar18->nExpr;\n        iVar17 = (*pcVar7)(pParse,iVar14);\n        (*pcVar8)(pParse,pEVar18,iVar17,0,1);\n        uStack_4a = (ushort)iVar14 & 0xff;\n        if (pAVar12->iDistinct < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar16 = pParse->nLabel + -1;\n        pParse->nLabel = iVar16;\n        (*(code *)(puVar4 + 0x27d0))(pParse,pAVar12->iDistinct,iVar16,1,iVar17);\n        if ((pAVar12->pFunc->funcFlags & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar20 = pAVar12->iMem;\n      }\n      (*pcStack_48)(pVVar15,0x9a,0,iVar17,iVar20);\n      (*pcVar6)(pVVar15,pAVar12->pFunc,0xfffffff8);\n      if (0 < pVVar15->nOp) {\n        pVVar15->aOp[pVVar15->nOp + -1].p5 = uStack_4a;\n      }\n      if (iVar14 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(pParse,iVar17);\n      }\n      else if (pParse->nRangeReg < iVar14) {\n        pParse->nRangeReg = iVar14;\n        pParse->iRangeReg = iVar17;\n      }\n      if (iVar16 == 0) {\n        pAVar12 = pAVar12 + 1;\n        iStack_50 = iStack_50 + 1;\n        if (pAggInfo->nFunc <= iStack_50) break;\n        goto LAB_000eb0dc;\n      }\n      pAVar12 = pAVar12 + 1;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pVVar15,iVar16);\n      iStack_50 = iStack_50 + 1;\n    } while (iStack_50 < pAggInfo->nFunc);\n    if (iStack_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    iStackX_4 = (*pcStack_48)(pVVar15,0x12,iStack_40,0,0);\n    pAVar13 = pAggInfo->aCol;\n    if (pAggInfo->nAccumulator < 1) goto LAB_000eb298;\n  }" else (compound_statement "{\n    iStack_40 = 0;\n    iStack_50 = 0;\n    pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      pEVar18 = (pAVar12->pExpr->x).pList;\n      if (pEVar18 == (ExprList *)0x0) {\n        iVar17 = 0;\n        uStack_4a = 0;\n        iVar14 = 0;\n        if (-1 < pAVar12->iDistinct) goto LAB_000eb100;\nLAB_000eb028:\n        iVar16 = 0;\n        if ((pAVar12->pFunc->funcFlags & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        pEVar19 = pEVar18->a;\n        if (0 < iVar14) {\n          iVar20 = 0;\n          do {\n            ppEVar2 = &pEVar19->pExpr;\n            iVar20 = iVar20 + 1;\n            pEVar19 = pEVar19 + 1;\n            pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2);\n            if (pCVar10 != (CollSeq *)0x0) goto LAB_000eb184;\n          } while (iVar14 != iVar20);\n        }\n        pCVar10 = pParse->db->pDfltColl;\nLAB_000eb184:\n        if ((iStack_40 == 0) && (iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0)) {\n          iStack_40 = pParse->nMem + 1;\n          pParse->nMem = iStack_40;\n        }\n        uVar11 = (*pcStack_48)(pVVar15,0x52,iStack_40,0,0);\n        (*pcVar9)(pVVar15,uVar11,pCVar10,0xfffffffe);\n        iVar20 = pAVar12->iMem;\n      }\n      else {\n        iVar14 = pEVar18->nExpr;\n        iVar17 = (*pcVar7)(pParse,iVar14);\n        (*pcVar8)(pParse,pEVar18,iVar17,0,1);\n        uStack_4a = (ushort)iVar14 & 0xff;\n        if (pAVar12->iDistinct < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar16 = pParse->nLabel + -1;\n        pParse->nLabel = iVar16;\n        (*(code *)(puVar4 + 0x27d0))(pParse,pAVar12->iDistinct,iVar16,1,iVar17);\n        if ((pAVar12->pFunc->funcFlags & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar20 = pAVar12->iMem;\n      }\n      (*pcStack_48)(pVVar15,0x9a,0,iVar17,iVar20);\n      (*pcVar6)(pVVar15,pAVar12->pFunc,0xfffffff8);\n      if (0 < pVVar15->nOp) {\n        pVVar15->aOp[pVVar15->nOp + -1].p5 = uStack_4a;\n      }\n      if (iVar14 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(pParse,iVar17);\n      }\n      else if (pParse->nRangeReg < iVar14) {\n        pParse->nRangeReg = iVar14;\n        pParse->iRangeReg = iVar17;\n      }\n      if (iVar16 == 0) {\n        pAVar12 = pAVar12 + 1;\n        iStack_50 = iStack_50 + 1;\n        if (pAggInfo->nFunc <= iStack_50) break;\n        goto LAB_000eb0dc;\n      }\n      pAVar12 = pAVar12 + 1;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pVVar15,iVar16);\n      iStack_50 = iStack_50 + 1;\n    } while (iStack_50 < pAggInfo->nFunc);\n    if (iStack_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    iStackX_4 = (*pcStack_48)(pVVar15,0x12,iStack_40,0,0);\n    pAVar13 = pAggInfo->aCol;\n    if (pAggInfo->nAccumulator < 1) goto LAB_000eb298;\n  }" { (expression_statement "iStack_40 = 0;" (assignment_expression "iStack_40 = 0" identifier = number_literal) ;) (expression_statement "iStack_50 = 0;" (assignment_expression "iStack_50 = 0" identifier = number_literal) ;) (expression_statement "pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);" (assignment_expression "pcStack_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc)" identifier = (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" ( (binary_expression "PTR_LAB_00190bc0 + 0x10fc" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);" (assignment_expression "pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4)" identifier = (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x24d4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x24d4)" ( (binary_expression "PTR_LAB_00190ba4 + -0x24d4" identifier + number_literal) )))) ;) (expression_statement "pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);" (assignment_expression "pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824)" identifier = (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4824)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4824)" ( (binary_expression "PTR_LAB_00190ba4 + -0x4824" identifier + number_literal) )))) ;) (expression_statement "pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);" (assignment_expression "pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0)" identifier = (cast_expression "(code *)(PTR_LAB_00190c58 + -0x53b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190c58 + -0x53b0)" ( (binary_expression "PTR_LAB_00190c58 + -0x53b0" identifier + number_literal) )))) ;) (expression_statement "pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);" (assignment_expression "pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c)" identifier = (cast_expression "(code *)(PTR_LAB_00190ba4 + 0x7a3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + 0x7a3c)" ( (binary_expression "PTR_LAB_00190ba4 + 0x7a3c" identifier + number_literal) )))) ;) (labeled_statement "LAB_000eb0dc:\n    do {\n      pEVar18 = (pAVar12->pExpr->x).pList;\n      if (pEVar18 == (ExprList *)0x0) {\n        iVar17 = 0;\n        uStack_4a = 0;\n        iVar14 = 0;\n        if (-1 < pAVar12->iDistinct) goto LAB_000eb100;\nLAB_000eb028:\n        iVar16 = 0;\n        if ((pAVar12->pFunc->funcFlags & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        pEVar19 = pEVar18->a;\n        if (0 < iVar14) {\n          iVar20 = 0;\n          do {\n            ppEVar2 = &pEVar19->pExpr;\n            iVar20 = iVar20 + 1;\n            pEVar19 = pEVar19 + 1;\n            pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2);\n            if (pCVar10 != (CollSeq *)0x0) goto LAB_000eb184;\n          } while (iVar14 != iVar20);\n        }\n        pCVar10 = pParse->db->pDfltColl;\nLAB_000eb184:\n        if ((iStack_40 == 0) && (iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0)) {\n          iStack_40 = pParse->nMem + 1;\n          pParse->nMem = iStack_40;\n        }\n        uVar11 = (*pcStack_48)(pVVar15,0x52,iStack_40,0,0);\n        (*pcVar9)(pVVar15,uVar11,pCVar10,0xfffffffe);\n        iVar20 = pAVar12->iMem;\n      }\n      else {\n        iVar14 = pEVar18->nExpr;\n        iVar17 = (*pcVar7)(pParse,iVar14);\n        (*pcVar8)(pParse,pEVar18,iVar17,0,1);\n        uStack_4a = (ushort)iVar14 & 0xff;\n        if (pAVar12->iDistinct < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar16 = pParse->nLabel + -1;\n        pParse->nLabel = iVar16;\n        (*(code *)(puVar4 + 0x27d0))(pParse,pAVar12->iDistinct,iVar16,1,iVar17);\n        if ((pAVar12->pFunc->funcFlags & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar20 = pAVar12->iMem;\n      }\n      (*pcStack_48)(pVVar15,0x9a,0,iVar17,iVar20);\n      (*pcVar6)(pVVar15,pAVar12->pFunc,0xfffffff8);\n      if (0 < pVVar15->nOp) {\n        pVVar15->aOp[pVVar15->nOp + -1].p5 = uStack_4a;\n      }\n      if (iVar14 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(pParse,iVar17);\n      }\n      else if (pParse->nRangeReg < iVar14) {\n        pParse->nRangeReg = iVar14;\n        pParse->iRangeReg = iVar17;\n      }\n      if (iVar16 == 0) {\n        pAVar12 = pAVar12 + 1;\n        iStack_50 = iStack_50 + 1;\n        if (pAggInfo->nFunc <= iStack_50) break;\n        goto LAB_000eb0dc;\n      }\n      pAVar12 = pAVar12 + 1;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pVVar15,iVar16);\n      iStack_50 = iStack_50 + 1;\n    } while (iStack_50 < pAggInfo->nFunc);" statement_identifier : (do_statement "do {\n      pEVar18 = (pAVar12->pExpr->x).pList;\n      if (pEVar18 == (ExprList *)0x0) {\n        iVar17 = 0;\n        uStack_4a = 0;\n        iVar14 = 0;\n        if (-1 < pAVar12->iDistinct) goto LAB_000eb100;\nLAB_000eb028:\n        iVar16 = 0;\n        if ((pAVar12->pFunc->funcFlags & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        pEVar19 = pEVar18->a;\n        if (0 < iVar14) {\n          iVar20 = 0;\n          do {\n            ppEVar2 = &pEVar19->pExpr;\n            iVar20 = iVar20 + 1;\n            pEVar19 = pEVar19 + 1;\n            pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2);\n            if (pCVar10 != (CollSeq *)0x0) goto LAB_000eb184;\n          } while (iVar14 != iVar20);\n        }\n        pCVar10 = pParse->db->pDfltColl;\nLAB_000eb184:\n        if ((iStack_40 == 0) && (iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0)) {\n          iStack_40 = pParse->nMem + 1;\n          pParse->nMem = iStack_40;\n        }\n        uVar11 = (*pcStack_48)(pVVar15,0x52,iStack_40,0,0);\n        (*pcVar9)(pVVar15,uVar11,pCVar10,0xfffffffe);\n        iVar20 = pAVar12->iMem;\n      }\n      else {\n        iVar14 = pEVar18->nExpr;\n        iVar17 = (*pcVar7)(pParse,iVar14);\n        (*pcVar8)(pParse,pEVar18,iVar17,0,1);\n        uStack_4a = (ushort)iVar14 & 0xff;\n        if (pAVar12->iDistinct < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar16 = pParse->nLabel + -1;\n        pParse->nLabel = iVar16;\n        (*(code *)(puVar4 + 0x27d0))(pParse,pAVar12->iDistinct,iVar16,1,iVar17);\n        if ((pAVar12->pFunc->funcFlags & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar20 = pAVar12->iMem;\n      }\n      (*pcStack_48)(pVVar15,0x9a,0,iVar17,iVar20);\n      (*pcVar6)(pVVar15,pAVar12->pFunc,0xfffffff8);\n      if (0 < pVVar15->nOp) {\n        pVVar15->aOp[pVVar15->nOp + -1].p5 = uStack_4a;\n      }\n      if (iVar14 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(pParse,iVar17);\n      }\n      else if (pParse->nRangeReg < iVar14) {\n        pParse->nRangeReg = iVar14;\n        pParse->iRangeReg = iVar17;\n      }\n      if (iVar16 == 0) {\n        pAVar12 = pAVar12 + 1;\n        iStack_50 = iStack_50 + 1;\n        if (pAggInfo->nFunc <= iStack_50) break;\n        goto LAB_000eb0dc;\n      }\n      pAVar12 = pAVar12 + 1;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pVVar15,iVar16);\n      iStack_50 = iStack_50 + 1;\n    } while (iStack_50 < pAggInfo->nFunc);" do (compound_statement "{\n      pEVar18 = (pAVar12->pExpr->x).pList;\n      if (pEVar18 == (ExprList *)0x0) {\n        iVar17 = 0;\n        uStack_4a = 0;\n        iVar14 = 0;\n        if (-1 < pAVar12->iDistinct) goto LAB_000eb100;\nLAB_000eb028:\n        iVar16 = 0;\n        if ((pAVar12->pFunc->funcFlags & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        pEVar19 = pEVar18->a;\n        if (0 < iVar14) {\n          iVar20 = 0;\n          do {\n            ppEVar2 = &pEVar19->pExpr;\n            iVar20 = iVar20 + 1;\n            pEVar19 = pEVar19 + 1;\n            pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2);\n            if (pCVar10 != (CollSeq *)0x0) goto LAB_000eb184;\n          } while (iVar14 != iVar20);\n        }\n        pCVar10 = pParse->db->pDfltColl;\nLAB_000eb184:\n        if ((iStack_40 == 0) && (iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0)) {\n          iStack_40 = pParse->nMem + 1;\n          pParse->nMem = iStack_40;\n        }\n        uVar11 = (*pcStack_48)(pVVar15,0x52,iStack_40,0,0);\n        (*pcVar9)(pVVar15,uVar11,pCVar10,0xfffffffe);\n        iVar20 = pAVar12->iMem;\n      }\n      else {\n        iVar14 = pEVar18->nExpr;\n        iVar17 = (*pcVar7)(pParse,iVar14);\n        (*pcVar8)(pParse,pEVar18,iVar17,0,1);\n        uStack_4a = (ushort)iVar14 & 0xff;\n        if (pAVar12->iDistinct < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar16 = pParse->nLabel + -1;\n        pParse->nLabel = iVar16;\n        (*(code *)(puVar4 + 0x27d0))(pParse,pAVar12->iDistinct,iVar16,1,iVar17);\n        if ((pAVar12->pFunc->funcFlags & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar20 = pAVar12->iMem;\n      }\n      (*pcStack_48)(pVVar15,0x9a,0,iVar17,iVar20);\n      (*pcVar6)(pVVar15,pAVar12->pFunc,0xfffffff8);\n      if (0 < pVVar15->nOp) {\n        pVVar15->aOp[pVVar15->nOp + -1].p5 = uStack_4a;\n      }\n      if (iVar14 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(pParse,iVar17);\n      }\n      else if (pParse->nRangeReg < iVar14) {\n        pParse->nRangeReg = iVar14;\n        pParse->iRangeReg = iVar17;\n      }\n      if (iVar16 == 0) {\n        pAVar12 = pAVar12 + 1;\n        iStack_50 = iStack_50 + 1;\n        if (pAggInfo->nFunc <= iStack_50) break;\n        goto LAB_000eb0dc;\n      }\n      pAVar12 = pAVar12 + 1;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(pVVar15,iVar16);\n      iStack_50 = iStack_50 + 1;\n    }" { (expression_statement "pEVar18 = (pAVar12->pExpr->x).pList;" (assignment_expression "pEVar18 = (pAVar12->pExpr->x).pList" identifier = (field_expression "(pAVar12->pExpr->x).pList" (parenthesized_expression "(pAVar12->pExpr->x)" ( (field_expression "pAVar12->pExpr->x" (field_expression "pAVar12->pExpr" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pEVar18 == (ExprList *)0x0) {\n        iVar17 = 0;\n        uStack_4a = 0;\n        iVar14 = 0;\n        if (-1 < pAVar12->iDistinct) goto LAB_000eb100;\nLAB_000eb028:\n        iVar16 = 0;\n        if ((pAVar12->pFunc->funcFlags & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        pEVar19 = pEVar18->a;\n        if (0 < iVar14) {\n          iVar20 = 0;\n          do {\n            ppEVar2 = &pEVar19->pExpr;\n            iVar20 = iVar20 + 1;\n            pEVar19 = pEVar19 + 1;\n            pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2);\n            if (pCVar10 != (CollSeq *)0x0) goto LAB_000eb184;\n          } while (iVar14 != iVar20);\n        }\n        pCVar10 = pParse->db->pDfltColl;\nLAB_000eb184:\n        if ((iStack_40 == 0) && (iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0)) {\n          iStack_40 = pParse->nMem + 1;\n          pParse->nMem = iStack_40;\n        }\n        uVar11 = (*pcStack_48)(pVVar15,0x52,iStack_40,0,0);\n        (*pcVar9)(pVVar15,uVar11,pCVar10,0xfffffffe);\n        iVar20 = pAVar12->iMem;\n      }\n      else {\n        iVar14 = pEVar18->nExpr;\n        iVar17 = (*pcVar7)(pParse,iVar14);\n        (*pcVar8)(pParse,pEVar18,iVar17,0,1);\n        uStack_4a = (ushort)iVar14 & 0xff;\n        if (pAVar12->iDistinct < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar16 = pParse->nLabel + -1;\n        pParse->nLabel = iVar16;\n        (*(code *)(puVar4 + 0x27d0))(pParse,pAVar12->iDistinct,iVar16,1,iVar17);\n        if ((pAVar12->pFunc->funcFlags & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar20 = pAVar12->iMem;\n      }" if (parenthesized_expression "(pEVar18 == (ExprList *)0x0)" ( (binary_expression "pEVar18 == (ExprList *)0x0" identifier == (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar17 = 0;\n        uStack_4a = 0;\n        iVar14 = 0;\n        if (-1 < pAVar12->iDistinct) goto LAB_000eb100;\nLAB_000eb028:\n        iVar16 = 0;\n        if ((pAVar12->pFunc->funcFlags & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        pEVar19 = pEVar18->a;\n        if (0 < iVar14) {\n          iVar20 = 0;\n          do {\n            ppEVar2 = &pEVar19->pExpr;\n            iVar20 = iVar20 + 1;\n            pEVar19 = pEVar19 + 1;\n            pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2);\n            if (pCVar10 != (CollSeq *)0x0) goto LAB_000eb184;\n          } while (iVar14 != iVar20);\n        }\n        pCVar10 = pParse->db->pDfltColl;\nLAB_000eb184:\n        if ((iStack_40 == 0) && (iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0)) {\n          iStack_40 = pParse->nMem + 1;\n          pParse->nMem = iStack_40;\n        }\n        uVar11 = (*pcStack_48)(pVVar15,0x52,iStack_40,0,0);\n        (*pcVar9)(pVVar15,uVar11,pCVar10,0xfffffffe);\n        iVar20 = pAVar12->iMem;\n      }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "uStack_4a = 0;" (assignment_expression "uStack_4a = 0" identifier = number_literal) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (if_statement "if (-1 < pAVar12->iDistinct) goto LAB_000eb100;" if (parenthesized_expression "(-1 < pAVar12->iDistinct)" ( (binary_expression "-1 < pAVar12->iDistinct" number_literal < (field_expression "pAVar12->iDistinct" identifier -> field_identifier)) )) (goto_statement "goto LAB_000eb100;" goto statement_identifier ;)) (labeled_statement "LAB_000eb028:\n        iVar16 = 0;" statement_identifier : (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;)) (if_statement "if ((pAVar12->pFunc->funcFlags & 0x20) == 0) goto LAB_000eb03c;" if (parenthesized_expression "((pAVar12->pFunc->funcFlags & 0x20) == 0)" ( (binary_expression "(pAVar12->pFunc->funcFlags & 0x20) == 0" (parenthesized_expression "(pAVar12->pFunc->funcFlags & 0x20)" ( (binary_expression "pAVar12->pFunc->funcFlags & 0x20" (field_expression "pAVar12->pFunc->funcFlags" (field_expression "pAVar12->pFunc" identifier -> field_identifier) -> field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000eb03c;" goto statement_identifier ;)) (labeled_statement "LAB_000eb140:\n        pEVar19 = pEVar18->a;" statement_identifier : (expression_statement "pEVar19 = pEVar18->a;" (assignment_expression "pEVar19 = pEVar18->a" identifier = (field_expression "pEVar18->a" identifier -> field_identifier)) ;)) (if_statement "if (0 < iVar14) {\n          iVar20 = 0;\n          do {\n            ppEVar2 = &pEVar19->pExpr;\n            iVar20 = iVar20 + 1;\n            pEVar19 = pEVar19 + 1;\n            pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2);\n            if (pCVar10 != (CollSeq *)0x0) goto LAB_000eb184;\n          } while (iVar14 != iVar20);\n        }" if (parenthesized_expression "(0 < iVar14)" ( (binary_expression "0 < iVar14" number_literal < identifier) )) (compound_statement "{\n          iVar20 = 0;\n          do {\n            ppEVar2 = &pEVar19->pExpr;\n            iVar20 = iVar20 + 1;\n            pEVar19 = pEVar19 + 1;\n            pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2);\n            if (pCVar10 != (CollSeq *)0x0) goto LAB_000eb184;\n          } while (iVar14 != iVar20);\n        }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (do_statement "do {\n            ppEVar2 = &pEVar19->pExpr;\n            iVar20 = iVar20 + 1;\n            pEVar19 = pEVar19 + 1;\n            pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2);\n            if (pCVar10 != (CollSeq *)0x0) goto LAB_000eb184;\n          } while (iVar14 != iVar20);" do (compound_statement "{\n            ppEVar2 = &pEVar19->pExpr;\n            iVar20 = iVar20 + 1;\n            pEVar19 = pEVar19 + 1;\n            pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2);\n            if (pCVar10 != (CollSeq *)0x0) goto LAB_000eb184;\n          }" { (expression_statement "ppEVar2 = &pEVar19->pExpr;" (assignment_expression "ppEVar2 = &pEVar19->pExpr" identifier = (pointer_expression "&pEVar19->pExpr" & (field_expression "pEVar19->pExpr" identifier -> field_identifier))) ;) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "pEVar19 = pEVar19 + 1;" (assignment_expression "pEVar19 = pEVar19 + 1" identifier = (binary_expression "pEVar19 + 1" identifier + number_literal)) ;) (expression_statement "pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2);" (assignment_expression "pCVar10 = (CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2)" identifier = (cast_expression "(CollSeq *)(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2)" ( (type_descriptor "CollSeq *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(puVar5 + -0x6274))(pParse,*ppEVar2)" (parenthesized_expression "(*(code *)(puVar5 + -0x6274))" ( (pointer_expression "*(code *)(puVar5 + -0x6274)" * (cast_expression "(code *)(puVar5 + -0x6274)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x6274)" ( (binary_expression "puVar5 + -0x6274" identifier + number_literal) )))) )) (argument_list "(pParse,*ppEVar2)" ( identifier , (pointer_expression "*ppEVar2" * identifier) ))))) ;) (if_statement "if (pCVar10 != (CollSeq *)0x0) goto LAB_000eb184;" if (parenthesized_expression "(pCVar10 != (CollSeq *)0x0)" ( (binary_expression "pCVar10 != (CollSeq *)0x0" identifier != (cast_expression "(CollSeq *)0x0" ( (type_descriptor "CollSeq *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000eb184;" goto statement_identifier ;)) }) while (parenthesized_expression "(iVar14 != iVar20)" ( (binary_expression "iVar14 != iVar20" identifier != identifier) )) ;) })) (expression_statement "pCVar10 = pParse->db->pDfltColl;" (assignment_expression "pCVar10 = pParse->db->pDfltColl" identifier = (field_expression "pParse->db->pDfltColl" (field_expression "pParse->db" identifier -> field_identifier) -> field_identifier)) ;) (labeled_statement "LAB_000eb184:\n        if ((iStack_40 == 0) && (iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0)) {\n          iStack_40 = pParse->nMem + 1;\n          pParse->nMem = iStack_40;\n        }" statement_identifier : (if_statement "if ((iStack_40 == 0) && (iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0)) {\n          iStack_40 = pParse->nMem + 1;\n          pParse->nMem = iStack_40;\n        }" if (parenthesized_expression "((iStack_40 == 0) && (iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0))" ( (binary_expression "(iStack_40 == 0) && (iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0)" (parenthesized_expression "(iStack_40 == 0)" ( (binary_expression "iStack_40 == 0" identifier == number_literal) )) && (parenthesized_expression "(iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0)" ( (comma_expression "iStack_40 = pAggInfo->nAccumulator, iStack_40 != 0" (assignment_expression "iStack_40 = pAggInfo->nAccumulator" identifier = (field_expression "pAggInfo->nAccumulator" identifier -> field_identifier)) , (binary_expression "iStack_40 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          iStack_40 = pParse->nMem + 1;\n          pParse->nMem = iStack_40;\n        }" { (expression_statement "iStack_40 = pParse->nMem + 1;" (assignment_expression "iStack_40 = pParse->nMem + 1" identifier = (binary_expression "pParse->nMem + 1" (field_expression "pParse->nMem" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pParse->nMem = iStack_40;" (assignment_expression "pParse->nMem = iStack_40" (field_expression "pParse->nMem" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "uVar11 = (*pcStack_48)(pVVar15,0x52,iStack_40,0,0);" (assignment_expression "uVar11 = (*pcStack_48)(pVVar15,0x52,iStack_40,0,0)" identifier = (call_expression "(*pcStack_48)(pVVar15,0x52,iStack_40,0,0)" (parenthesized_expression "(*pcStack_48)" ( (pointer_expression "*pcStack_48" * identifier) )) (argument_list "(pVVar15,0x52,iStack_40,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal )))) ;) (expression_statement "(*pcVar9)(pVVar15,uVar11,pCVar10,0xfffffffe);" (call_expression "(*pcVar9)(pVVar15,uVar11,pCVar10,0xfffffffe)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(pVVar15,uVar11,pCVar10,0xfffffffe)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "iVar20 = pAVar12->iMem;" (assignment_expression "iVar20 = pAVar12->iMem" identifier = (field_expression "pAVar12->iMem" identifier -> field_identifier)) ;) }) (else_clause "else {\n        iVar14 = pEVar18->nExpr;\n        iVar17 = (*pcVar7)(pParse,iVar14);\n        (*pcVar8)(pParse,pEVar18,iVar17,0,1);\n        uStack_4a = (ushort)iVar14 & 0xff;\n        if (pAVar12->iDistinct < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar16 = pParse->nLabel + -1;\n        pParse->nLabel = iVar16;\n        (*(code *)(puVar4 + 0x27d0))(pParse,pAVar12->iDistinct,iVar16,1,iVar17);\n        if ((pAVar12->pFunc->funcFlags & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar20 = pAVar12->iMem;\n      }" else (compound_statement "{\n        iVar14 = pEVar18->nExpr;\n        iVar17 = (*pcVar7)(pParse,iVar14);\n        (*pcVar8)(pParse,pEVar18,iVar17,0,1);\n        uStack_4a = (ushort)iVar14 & 0xff;\n        if (pAVar12->iDistinct < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar16 = pParse->nLabel + -1;\n        pParse->nLabel = iVar16;\n        (*(code *)(puVar4 + 0x27d0))(pParse,pAVar12->iDistinct,iVar16,1,iVar17);\n        if ((pAVar12->pFunc->funcFlags & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar20 = pAVar12->iMem;\n      }" { (expression_statement "iVar14 = pEVar18->nExpr;" (assignment_expression "iVar14 = pEVar18->nExpr" identifier = (field_expression "pEVar18->nExpr" identifier -> field_identifier)) ;) (expression_statement "iVar17 = (*pcVar7)(pParse,iVar14);" (assignment_expression "iVar17 = (*pcVar7)(pParse,iVar14)" identifier = (call_expression "(*pcVar7)(pParse,iVar14)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(pParse,iVar14)" ( identifier , identifier )))) ;) (expression_statement "(*pcVar8)(pParse,pEVar18,iVar17,0,1);" (call_expression "(*pcVar8)(pParse,pEVar18,iVar17,0,1)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(pParse,pEVar18,iVar17,0,1)" ( identifier , identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "uStack_4a = (ushort)iVar14 & 0xff;" (assignment_expression "uStack_4a = (ushort)iVar14 & 0xff" identifier = (binary_expression "(ushort)iVar14 & 0xff" (cast_expression "(ushort)iVar14" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if (pAVar12->iDistinct < 0) goto LAB_000eb028;" if (parenthesized_expression "(pAVar12->iDistinct < 0)" ( (binary_expression "pAVar12->iDistinct < 0" (field_expression "pAVar12->iDistinct" identifier -> field_identifier) < number_literal) )) (goto_statement "goto LAB_000eb028;" goto statement_identifier ;)) (labeled_statement "LAB_000eb100:\n        iVar16 = pParse->nLabel + -1;" statement_identifier : (expression_statement "iVar16 = pParse->nLabel + -1;" (assignment_expression "iVar16 = pParse->nLabel + -1" identifier = (binary_expression "pParse->nLabel + -1" (field_expression "pParse->nLabel" identifier -> field_identifier) + number_literal)) ;)) (expression_statement "pParse->nLabel = iVar16;" (assignment_expression "pParse->nLabel = iVar16" (field_expression "pParse->nLabel" identifier -> field_identifier) = identifier) ;) (expression_statement "(*(code *)(puVar4 + 0x27d0))(pParse,pAVar12->iDistinct,iVar16,1,iVar17);" (call_expression "(*(code *)(puVar4 + 0x27d0))(pParse,pAVar12->iDistinct,iVar16,1,iVar17)" (parenthesized_expression "(*(code *)(puVar4 + 0x27d0))" ( (pointer_expression "*(code *)(puVar4 + 0x27d0)" * (cast_expression "(code *)(puVar4 + 0x27d0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x27d0)" ( (binary_expression "puVar4 + 0x27d0" identifier + number_literal) )))) )) (argument_list "(pParse,pAVar12->iDistinct,iVar16,1,iVar17)" ( identifier , (field_expression "pAVar12->iDistinct" identifier -> field_identifier) , identifier , number_literal , identifier ))) ;) (if_statement "if ((pAVar12->pFunc->funcFlags & 0x20) != 0) goto LAB_000eb140;" if (parenthesized_expression "((pAVar12->pFunc->funcFlags & 0x20) != 0)" ( (binary_expression "(pAVar12->pFunc->funcFlags & 0x20) != 0" (parenthesized_expression "(pAVar12->pFunc->funcFlags & 0x20)" ( (binary_expression "pAVar12->pFunc->funcFlags & 0x20" (field_expression "pAVar12->pFunc->funcFlags" (field_expression "pAVar12->pFunc" identifier -> field_identifier) -> field_identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000eb140;" goto statement_identifier ;)) (labeled_statement "LAB_000eb03c:\n        iVar20 = pAVar12->iMem;" statement_identifier : (expression_statement "iVar20 = pAVar12->iMem;" (assignment_expression "iVar20 = pAVar12->iMem" identifier = (field_expression "pAVar12->iMem" identifier -> field_identifier)) ;)) }))) (expression_statement "(*pcStack_48)(pVVar15,0x9a,0,iVar17,iVar20);" (call_expression "(*pcStack_48)(pVVar15,0x9a,0,iVar17,iVar20)" (parenthesized_expression "(*pcStack_48)" ( (pointer_expression "*pcStack_48" * identifier) )) (argument_list "(pVVar15,0x9a,0,iVar17,iVar20)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "(*pcVar6)(pVVar15,pAVar12->pFunc,0xfffffff8);" (call_expression "(*pcVar6)(pVVar15,pAVar12->pFunc,0xfffffff8)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(pVVar15,pAVar12->pFunc,0xfffffff8)" ( identifier , (field_expression "pAVar12->pFunc" identifier -> field_identifier) , number_literal ))) ;) (if_statement "if (0 < pVVar15->nOp) {\n        pVVar15->aOp[pVVar15->nOp + -1].p5 = uStack_4a;\n      }" if (parenthesized_expression "(0 < pVVar15->nOp)" ( (binary_expression "0 < pVVar15->nOp" number_literal < (field_expression "pVVar15->nOp" identifier -> field_identifier)) )) (compound_statement "{\n        pVVar15->aOp[pVVar15->nOp + -1].p5 = uStack_4a;\n      }" { (expression_statement "pVVar15->aOp[pVVar15->nOp + -1].p5 = uStack_4a;" (assignment_expression "pVVar15->aOp[pVVar15->nOp + -1].p5 = uStack_4a" (field_expression "pVVar15->aOp[pVVar15->nOp + -1].p5" (subscript_expression "pVVar15->aOp[pVVar15->nOp + -1]" (field_expression "pVVar15->aOp" identifier -> field_identifier) [ (binary_expression "pVVar15->nOp + -1" (field_expression "pVVar15->nOp" identifier -> field_identifier) + number_literal) ]) . field_identifier) = identifier) ;) })) (if_statement "if (iVar14 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(pParse,iVar17);\n      }\n      else if (pParse->nRangeReg < iVar14) {\n        pParse->nRangeReg = iVar14;\n        pParse->iRangeReg = iVar17;\n      }" if (parenthesized_expression "(iVar14 == 1)" ( (binary_expression "iVar14 == 1" identifier == number_literal) )) (compound_statement "{\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(pParse,iVar17);\n      }" { (expression_statement "(*(code *)(PTR_LAB_00190ba4 + -0x47a4))(pParse,iVar17);" (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x47a4))(pParse,iVar17)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x47a4))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x47a4)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x47a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x47a4)" ( (binary_expression "PTR_LAB_00190ba4 + -0x47a4" identifier + number_literal) )))) )) (argument_list "(pParse,iVar17)" ( identifier , identifier ))) ;) }) (else_clause "else if (pParse->nRangeReg < iVar14) {\n        pParse->nRangeReg = iVar14;\n        pParse->iRangeReg = iVar17;\n      }" else (if_statement "if (pParse->nRangeReg < iVar14) {\n        pParse->nRangeReg = iVar14;\n        pParse->iRangeReg = iVar17;\n      }" if (parenthesized_expression "(pParse->nRangeReg < iVar14)" ( (binary_expression "pParse->nRangeReg < iVar14" (field_expression "pParse->nRangeReg" identifier -> field_identifier) < identifier) )) (compound_statement "{\n        pParse->nRangeReg = iVar14;\n        pParse->iRangeReg = iVar17;\n      }" { (expression_statement "pParse->nRangeReg = iVar14;" (assignment_expression "pParse->nRangeReg = iVar14" (field_expression "pParse->nRangeReg" identifier -> field_identifier) = identifier) ;) (expression_statement "pParse->iRangeReg = iVar17;" (assignment_expression "pParse->iRangeReg = iVar17" (field_expression "pParse->iRangeReg" identifier -> field_identifier) = identifier) ;) })))) (if_statement "if (iVar16 == 0) {\n        pAVar12 = pAVar12 + 1;\n        iStack_50 = iStack_50 + 1;\n        if (pAggInfo->nFunc <= iStack_50) break;\n        goto LAB_000eb0dc;\n      }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n        pAVar12 = pAVar12 + 1;\n        iStack_50 = iStack_50 + 1;\n        if (pAggInfo->nFunc <= iStack_50) break;\n        goto LAB_000eb0dc;\n      }" { (expression_statement "pAVar12 = pAVar12 + 1;" (assignment_expression "pAVar12 = pAVar12 + 1" identifier = (binary_expression "pAVar12 + 1" identifier + number_literal)) ;) (expression_statement "iStack_50 = iStack_50 + 1;" (assignment_expression "iStack_50 = iStack_50 + 1" identifier = (binary_expression "iStack_50 + 1" identifier + number_literal)) ;) (if_statement "if (pAggInfo->nFunc <= iStack_50) break;" if (parenthesized_expression "(pAggInfo->nFunc <= iStack_50)" ( (binary_expression "pAggInfo->nFunc <= iStack_50" (field_expression "pAggInfo->nFunc" identifier -> field_identifier) <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_000eb0dc;" goto statement_identifier ;) })) (expression_statement "pAVar12 = pAVar12 + 1;" (assignment_expression "pAVar12 = pAVar12 + 1" identifier = (binary_expression "pAVar12 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0xd78))(pVVar15,iVar16);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0xd78))(pVVar15,iVar16)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0xd78))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0xd78)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0xd78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0xd78)" ( (binary_expression "PTR_LAB_00190bc0 + 0xd78" identifier + number_literal) )))) )) (argument_list "(pVVar15,iVar16)" ( identifier , identifier ))) ;) (expression_statement "iStack_50 = iStack_50 + 1;" (assignment_expression "iStack_50 = iStack_50 + 1" identifier = (binary_expression "iStack_50 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_50 < pAggInfo->nFunc)" ( (binary_expression "iStack_50 < pAggInfo->nFunc" identifier < (field_expression "pAggInfo->nFunc" identifier -> field_identifier)) )) ;)) (if_statement "if (iStack_40 == 0) goto LAB_000eb358;" if (parenthesized_expression "(iStack_40 == 0)" ( (binary_expression "iStack_40 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000eb358;" goto statement_identifier ;)) (labeled_statement "LAB_000eb230:\n    iStackX_4 = (*pcStack_48)(pVVar15,0x12,iStack_40,0,0);" statement_identifier : (expression_statement "iStackX_4 = (*pcStack_48)(pVVar15,0x12,iStack_40,0,0);" (assignment_expression "iStackX_4 = (*pcStack_48)(pVVar15,0x12,iStack_40,0,0)" identifier = (call_expression "(*pcStack_48)(pVVar15,0x12,iStack_40,0,0)" (parenthesized_expression "(*pcStack_48)" ( (pointer_expression "*pcStack_48" * identifier) )) (argument_list "(pVVar15,0x12,iStack_40,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal )))) ;)) (expression_statement "pAVar13 = pAggInfo->aCol;" (assignment_expression "pAVar13 = pAggInfo->aCol" identifier = (field_expression "pAggInfo->aCol" identifier -> field_identifier)) ;) (if_statement "if (pAggInfo->nAccumulator < 1) goto LAB_000eb298;" if (parenthesized_expression "(pAggInfo->nAccumulator < 1)" ( (binary_expression "pAggInfo->nAccumulator < 1" (field_expression "pAggInfo->nAccumulator" identifier -> field_identifier) < number_literal) )) (goto_statement "goto LAB_000eb298;" goto statement_identifier ;)) }))) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n    piVar1 = &pAVar13->iMem;\n    ppEVar2 = &pAVar13->pExpr;\n    iVar17 = iVar17 + 1;\n    pAVar13 = pAVar13 + 1;\n    sqlite3ExprCode(pParse,*ppEVar2,*piVar1);\n  } while (iVar17 < pAggInfo->nAccumulator);" do (compound_statement "{\n    piVar1 = &pAVar13->iMem;\n    ppEVar2 = &pAVar13->pExpr;\n    iVar17 = iVar17 + 1;\n    pAVar13 = pAVar13 + 1;\n    sqlite3ExprCode(pParse,*ppEVar2,*piVar1);\n  }" { (expression_statement "piVar1 = &pAVar13->iMem;" (assignment_expression "piVar1 = &pAVar13->iMem" identifier = (pointer_expression "&pAVar13->iMem" & (field_expression "pAVar13->iMem" identifier -> field_identifier))) ;) (expression_statement "ppEVar2 = &pAVar13->pExpr;" (assignment_expression "ppEVar2 = &pAVar13->pExpr" identifier = (pointer_expression "&pAVar13->pExpr" & (field_expression "pAVar13->pExpr" identifier -> field_identifier))) ;) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "pAVar13 = pAVar13 + 1;" (assignment_expression "pAVar13 = pAVar13 + 1" identifier = (binary_expression "pAVar13 + 1" identifier + number_literal)) ;) (expression_statement "sqlite3ExprCode(pParse,*ppEVar2,*piVar1);" (call_expression "sqlite3ExprCode(pParse,*ppEVar2,*piVar1)" identifier (argument_list "(pParse,*ppEVar2,*piVar1)" ( identifier , (pointer_expression "*ppEVar2" * identifier) , (pointer_expression "*piVar1" * identifier) ))) ;) }) while (parenthesized_expression "(iVar17 < pAggInfo->nAccumulator)" ( (binary_expression "iVar17 < pAggInfo->nAccumulator" identifier < (field_expression "pAggInfo->nAccumulator" identifier -> field_identifier)) )) ;) (labeled_statement "LAB_000eb298:\n  pAggInfo->directMode = '\0';" statement_identifier : (expression_statement "pAggInfo->directMode = '\0';" (assignment_expression "pAggInfo->directMode = '\0'" (field_expression "pAggInfo->directMode" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (if_statement "if (iStackX_4 != 0) {\n    iVar17 = pVVar15->nOp;\n    if (iStackX_4 < 0) {\n      iStackX_4 = iVar17 + -1;\n      uVar3 = pVVar15->db->mallocFailed;\n    }\n    else {\n      uVar3 = pVVar15->db->mallocFailed;\n    }\n    if (uVar3 == '\0') {\n      pVVar15->aOp[iStackX_4].p2 = iVar17;\n    }\n    else {\n      *(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + 0xfc4) = iVar17;\n    }\n  }" if (parenthesized_expression "(iStackX_4 != 0)" ( (binary_expression "iStackX_4 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar17 = pVVar15->nOp;\n    if (iStackX_4 < 0) {\n      iStackX_4 = iVar17 + -1;\n      uVar3 = pVVar15->db->mallocFailed;\n    }\n    else {\n      uVar3 = pVVar15->db->mallocFailed;\n    }\n    if (uVar3 == '\0') {\n      pVVar15->aOp[iStackX_4].p2 = iVar17;\n    }\n    else {\n      *(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + 0xfc4) = iVar17;\n    }\n  }" { (expression_statement "iVar17 = pVVar15->nOp;" (assignment_expression "iVar17 = pVVar15->nOp" identifier = (field_expression "pVVar15->nOp" identifier -> field_identifier)) ;) (if_statement "if (iStackX_4 < 0) {\n      iStackX_4 = iVar17 + -1;\n      uVar3 = pVVar15->db->mallocFailed;\n    }\n    else {\n      uVar3 = pVVar15->db->mallocFailed;\n    }" if (parenthesized_expression "(iStackX_4 < 0)" ( (binary_expression "iStackX_4 < 0" identifier < number_literal) )) (compound_statement "{\n      iStackX_4 = iVar17 + -1;\n      uVar3 = pVVar15->db->mallocFailed;\n    }" { (expression_statement "iStackX_4 = iVar17 + -1;" (assignment_expression "iStackX_4 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "uVar3 = pVVar15->db->mallocFailed;" (assignment_expression "uVar3 = pVVar15->db->mallocFailed" identifier = (field_expression "pVVar15->db->mallocFailed" (field_expression "pVVar15->db" identifier -> field_identifier) -> field_identifier)) ;) }) (else_clause "else {\n      uVar3 = pVVar15->db->mallocFailed;\n    }" else (compound_statement "{\n      uVar3 = pVVar15->db->mallocFailed;\n    }" { (expression_statement "uVar3 = pVVar15->db->mallocFailed;" (assignment_expression "uVar3 = pVVar15->db->mallocFailed" identifier = (field_expression "pVVar15->db->mallocFailed" (field_expression "pVVar15->db" identifier -> field_identifier) -> field_identifier)) ;) }))) (if_statement "if (uVar3 == '\0') {\n      pVVar15->aOp[iStackX_4].p2 = iVar17;\n    }\n    else {\n      *(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + 0xfc4) = iVar17;\n    }" if (parenthesized_expression "(uVar3 == '\0')" ( (binary_expression "uVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pVVar15->aOp[iStackX_4].p2 = iVar17;\n    }" { (expression_statement "pVVar15->aOp[iStackX_4].p2 = iVar17;" (assignment_expression "pVVar15->aOp[iStackX_4].p2 = iVar17" (field_expression "pVVar15->aOp[iStackX_4].p2" (subscript_expression "pVVar15->aOp[iStackX_4]" (field_expression "pVVar15->aOp" identifier -> field_identifier) [ identifier ]) . field_identifier) = identifier) ;) }) (else_clause "else {\n      *(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + 0xfc4) = iVar17;\n    }" else (compound_statement "{\n      *(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + 0xfc4) = iVar17;\n    }" { (expression_statement "*(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + 0xfc4) = iVar17;" (assignment_expression "*(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + 0xfc4) = iVar17" (pointer_expression "*(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + 0xfc4)" * (cast_expression "(int *)(PTR_aBuiltinFunc_29540_1408__00190948 + 0xfc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_aBuiltinFunc_29540_1408__00190948 + 0xfc4)" ( (binary_expression "PTR_aBuiltinFunc_29540_1408__00190948 + 0xfc4" identifier + number_literal) )))) = identifier) ;) }))) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000eaf28(int *param_1,int param_2,undefined1 *param_3)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  int local_res4;\n  int local_50;\n  ushort uStack_4a;\n  code *local_48;\n  int local_40;\n  \n  piVar14 = (int *)param_1[2];\n  piVar12 = *(int **)(param_3 + 0x28);\n  *param_3 = 1;\n  puVar5 = PTR_LAB_00190bc4;\n  puVar4 = PTR_LAB_00190bc0;\n  if (*(int *)(param_3 + 0x2c) < 1) {\nLAB_000eb358:\n    if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }\n    if (param_2 != 0) {\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }\n    iVar16 = *(int *)(param_3 + 0x1c);\n    local_res4 = 0;\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;\n  }\n  else {\n    local_40 = 0;\n    local_50 = 0;\n    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));\n    if (local_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);\n    iVar16 = *(int *)(param_3 + 0x1c);\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;\n  }\n  iVar13 = 0;\n  do {\n    puVar1 = (undefined4 *)(iVar16 + 0x10);\n    puVar2 = (undefined4 *)(iVar16 + 0x14);\n    iVar13 = iVar13 + 1;\n    iVar16 = iVar16 + 0x18;\n    FUN_000e8324(param_1,*puVar2,*puVar1);\n  } while (iVar13 < *(int *)(param_3 + 0x24));\nLAB_000eb298:\n  *param_3 = 0;\n  if (local_res4 != 0) {\n    iVar16 = piVar14[0x1b];\n    if (local_res4 < 0) {\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    if (cVar3 == '\0') {\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }\n    else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_000eaf28(int *param_1,int param_2,undefined1 *param_3)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  int local_res4;\n  int local_50;\n  ushort uStack_4a;\n  code *local_48;\n  int local_40;\n  \n  piVar14 = (int *)param_1[2];\n  piVar12 = *(int **)(param_3 + 0x28);\n  *param_3 = 1;\n  puVar5 = PTR_LAB_00190bc4;\n  puVar4 = PTR_LAB_00190bc0;\n  if (*(int *)(param_3 + 0x2c) < 1) {\nLAB_000eb358:\n    if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }\n    if (param_2 != 0) {\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }\n    iVar16 = *(int *)(param_3 + 0x1c);\n    local_res4 = 0;\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;\n  }\n  else {\n    local_40 = 0;\n    local_50 = 0;\n    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));\n    if (local_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);\n    iVar16 = *(int *)(param_3 + 0x1c);\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;\n  }\n  iVar13 = 0;\n  do {\n    puVar1 = (undefined4 *)(iVar16 + 0x10);\n    puVar2 = (undefined4 *)(iVar16 + 0x14);\n    iVar13 = iVar13 + 1;\n    iVar16 = iVar16 + 0x18;\n    FUN_000e8324(param_1,*puVar2,*puVar1);\n  } while (iVar13 < *(int *)(param_3 + 0x24));\nLAB_000eb298:\n  *param_3 = 0;\n  if (local_res4 != 0) {\n    iVar16 = piVar14[0x1b];\n    if (local_res4 < 0) {\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    if (cVar3 == '\0') {\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }\n    else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000eaf28(int *param_1,int param_2,undefined1 *param_3)" identifier (parameter_list "(int *param_1,int param_2,undefined1 *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined1 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  int local_res4;\n  int local_50;\n  ushort uStack_4a;\n  code *local_48;\n  int local_40;\n  \n  piVar14 = (int *)param_1[2];\n  piVar12 = *(int **)(param_3 + 0x28);\n  *param_3 = 1;\n  puVar5 = PTR_LAB_00190bc4;\n  puVar4 = PTR_LAB_00190bc0;\n  if (*(int *)(param_3 + 0x2c) < 1) {\nLAB_000eb358:\n    if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }\n    if (param_2 != 0) {\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }\n    iVar16 = *(int *)(param_3 + 0x1c);\n    local_res4 = 0;\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;\n  }\n  else {\n    local_40 = 0;\n    local_50 = 0;\n    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));\n    if (local_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);\n    iVar16 = *(int *)(param_3 + 0x1c);\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;\n  }\n  iVar13 = 0;\n  do {\n    puVar1 = (undefined4 *)(iVar16 + 0x10);\n    puVar2 = (undefined4 *)(iVar16 + 0x14);\n    iVar13 = iVar13 + 1;\n    iVar16 = iVar16 + 0x18;\n    FUN_000e8324(param_1,*puVar2,*puVar1);\n  } while (iVar13 < *(int *)(param_3 + 0x24));\nLAB_000eb298:\n  *param_3 = 0;\n  if (local_res4 != 0) {\n    iVar16 = piVar14[0x1b];\n    if (local_res4 < 0) {\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    if (cVar3 == '\0') {\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }\n    else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int local_res4;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "ushort uStack_4a;" type_identifier identifier ;) (declaration "code *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (expression_statement "piVar14 = (int *)param_1[2];" (assignment_expression "piVar14 = (int *)param_1[2]" identifier = (cast_expression "(int *)param_1[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "piVar12 = *(int **)(param_3 + 0x28);" (assignment_expression "piVar12 = *(int **)(param_3 + 0x28)" identifier = (pointer_expression "*(int **)(param_3 + 0x28)" * (cast_expression "(int **)(param_3 + 0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*param_3 = 1;" (assignment_expression "*param_3 = 1" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "puVar5 = PTR_LAB_00190bc4;" (assignment_expression "puVar5 = PTR_LAB_00190bc4" identifier = identifier) ;) (expression_statement "puVar4 = PTR_LAB_00190bc0;" (assignment_expression "puVar4 = PTR_LAB_00190bc0" identifier = identifier) ;) (if_statement "if (*(int *)(param_3 + 0x2c) < 1) {\nLAB_000eb358:\n    if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }\n    if (param_2 != 0) {\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }\n    iVar16 = *(int *)(param_3 + 0x1c);\n    local_res4 = 0;\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;\n  }\n  else {\n    local_40 = 0;\n    local_50 = 0;\n    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));\n    if (local_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);\n    iVar16 = *(int *)(param_3 + 0x1c);\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;\n  }" if (parenthesized_expression "(*(int *)(param_3 + 0x2c) < 1)" ( (binary_expression "*(int *)(param_3 + 0x2c) < 1" (pointer_expression "*(int *)(param_3 + 0x2c)" * (cast_expression "(int *)(param_3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2c)" ( (binary_expression "param_3 + 0x2c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\nLAB_000eb358:\n    if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }\n    if (param_2 != 0) {\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }\n    iVar16 = *(int *)(param_3 + 0x1c);\n    local_res4 = 0;\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;\n  }" { (labeled_statement "LAB_000eb358:\n    if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }" statement_identifier : (if_statement "if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }" if (parenthesized_expression "(*(int *)(param_3 + 0x24) == 0)" ( (binary_expression "*(int *)(param_3 + 0x24) == 0" (pointer_expression "*(int *)(param_3 + 0x24)" * (cast_expression "(int *)(param_3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }" { (labeled_statement "LAB_000eb374:\n      *param_3 = 0;" statement_identifier : (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;)) (return_statement "return;" return ;) }))) (if_statement "if (param_2 != 0) {\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }" { (expression_statement "local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);" (assignment_expression "local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc)" identifier = (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" ( (binary_expression "PTR_LAB_00190bc0 + 0x10fc" identifier + number_literal) )))) ;) (expression_statement "local_40 = param_2;" (assignment_expression "local_40 = param_2" identifier = identifier) ;) (goto_statement "goto LAB_000eb230;" goto statement_identifier ;) })) (expression_statement "iVar16 = *(int *)(param_3 + 0x1c);" (assignment_expression "iVar16 = *(int *)(param_3 + 0x1c)" identifier = (pointer_expression "*(int *)(param_3 + 0x1c)" * (cast_expression "(int *)(param_3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "local_res4 = 0;" (assignment_expression "local_res4 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;" if (parenthesized_expression "(*(int *)(param_3 + 0x24) < 1)" ( (binary_expression "*(int *)(param_3 + 0x24) < 1" (pointer_expression "*(int *)(param_3 + 0x24)" * (cast_expression "(int *)(param_3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) )))) < number_literal) )) (goto_statement "goto LAB_000eb374;" goto statement_identifier ;)) }) (else_clause "else {\n    local_40 = 0;\n    local_50 = 0;\n    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));\n    if (local_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);\n    iVar16 = *(int *)(param_3 + 0x1c);\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;\n  }" else (compound_statement "{\n    local_40 = 0;\n    local_50 = 0;\n    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));\n    if (local_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);\n    iVar16 = *(int *)(param_3 + 0x1c);\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;\n  }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);" (assignment_expression "local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc)" identifier = (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" ( (binary_expression "PTR_LAB_00190bc0 + 0x10fc" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);" (assignment_expression "pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4)" identifier = (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x24d4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x24d4)" ( (binary_expression "PTR_LAB_00190ba4 + -0x24d4" identifier + number_literal) )))) ;) (expression_statement "pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);" (assignment_expression "pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824)" identifier = (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4824)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4824)" ( (binary_expression "PTR_LAB_00190ba4 + -0x4824" identifier + number_literal) )))) ;) (expression_statement "pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);" (assignment_expression "pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0)" identifier = (cast_expression "(code *)(PTR_LAB_00190c58 + -0x53b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190c58 + -0x53b0)" ( (binary_expression "PTR_LAB_00190c58 + -0x53b0" identifier + number_literal) )))) ;) (expression_statement "pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);" (assignment_expression "pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c)" identifier = (cast_expression "(code *)(PTR_LAB_00190ba4 + 0x7a3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + 0x7a3c)" ( (binary_expression "PTR_LAB_00190ba4 + 0x7a3c" identifier + number_literal) )))) ;) (labeled_statement "LAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));" statement_identifier : (do_statement "do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));" do (compound_statement "{\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    }" { (expression_statement "piVar17 = *(int **)(*piVar12 + 0x14);" (assignment_expression "piVar17 = *(int **)(*piVar12 + 0x14)" identifier = (pointer_expression "*(int **)(*piVar12 + 0x14)" * (cast_expression "(int **)(*piVar12 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar12 + 0x14)" ( (binary_expression "*piVar12 + 0x14" (pointer_expression "*piVar12" * identifier) + number_literal) ))))) ;) (if_statement "if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }" if (parenthesized_expression "(piVar17 == (int *)0x0)" ( (binary_expression "piVar17 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "uStack_4a = 0;" (assignment_expression "uStack_4a = 0" identifier = number_literal) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (-1 < piVar12[3]) goto LAB_000eb100;" if (parenthesized_expression "(-1 < piVar12[3])" ( (binary_expression "-1 < piVar12[3]" number_literal < (subscript_expression "piVar12[3]" identifier [ number_literal ])) )) (goto_statement "goto LAB_000eb100;" goto statement_identifier ;)) (labeled_statement "LAB_000eb028:\n        iVar15 = 0;" statement_identifier : (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;)) (if_statement "if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;" if (parenthesized_expression "((*(uint *)(piVar12[1] + 4) & 0x20) == 0)" ( (binary_expression "(*(uint *)(piVar12[1] + 4) & 0x20) == 0" (parenthesized_expression "(*(uint *)(piVar12[1] + 4) & 0x20)" ( (binary_expression "*(uint *)(piVar12[1] + 4) & 0x20" (pointer_expression "*(uint *)(piVar12[1] + 4)" * (cast_expression "(uint *)(piVar12[1] + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[1] + 4)" ( (binary_expression "piVar12[1] + 4" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000eb03c;" goto statement_identifier ;)) (labeled_statement "LAB_000eb140:\n        piVar17 = piVar17 + 1;" statement_identifier : (expression_statement "piVar17 = piVar17 + 1;" (assignment_expression "piVar17 = piVar17 + 1" identifier = (binary_expression "piVar17 + 1" identifier + number_literal)) ;)) (if_statement "if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }" if (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) (compound_statement "{\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);" do (compound_statement "{\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          }" { (expression_statement "iVar11 = *piVar17;" (assignment_expression "iVar11 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "piVar17 = piVar17 + 5;" (assignment_expression "piVar17 = piVar17 + 5" identifier = (binary_expression "piVar17 + 5" identifier + number_literal)) ;) (expression_statement "iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);" (assignment_expression "iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11)" identifier = (call_expression "(*(code *)(puVar5 + -0x6274))(param_1,iVar11)" (parenthesized_expression "(*(code *)(puVar5 + -0x6274))" ( (pointer_expression "*(code *)(puVar5 + -0x6274)" * (cast_expression "(code *)(puVar5 + -0x6274)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x6274)" ( (binary_expression "puVar5 + -0x6274" identifier + number_literal) )))) )) (argument_list "(param_1,iVar11)" ( identifier , identifier )))) ;) (if_statement "if (iVar11 != 0) goto LAB_000eb184;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000eb184;" goto statement_identifier ;)) }) while (parenthesized_expression "(iVar13 != iVar18)" ( (binary_expression "iVar13 != iVar18" identifier != identifier) )) ;) })) (expression_statement "iVar11 = *(int *)(*param_1 + 8);" (assignment_expression "iVar11 = *(int *)(*param_1 + 8)" identifier = (pointer_expression "*(int *)(*param_1 + 8)" * (cast_expression "(int *)(*param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 8)" ( (binary_expression "*param_1 + 8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (labeled_statement "LAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }" statement_identifier : (if_statement "if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }" if (parenthesized_expression "((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0))" ( (binary_expression "(local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)" (parenthesized_expression "(local_40 == 0)" ( (binary_expression "local_40 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_40 = *(int *)(param_3 + 0x24), local_40 != 0)" ( (comma_expression "local_40 = *(int *)(param_3 + 0x24), local_40 != 0" (assignment_expression "local_40 = *(int *)(param_3 + 0x24)" identifier = (pointer_expression "*(int *)(param_3 + 0x24)" * (cast_expression "(int *)(param_3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) ))))) , (binary_expression "local_40 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }" { (expression_statement "local_40 = param_1[0xb] + 1;" (assignment_expression "local_40 = param_1[0xb] + 1" identifier = (binary_expression "param_1[0xb] + 1" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_1[0xb] = local_40;" (assignment_expression "param_1[0xb] = local_40" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);" (assignment_expression "uVar10 = (*local_48)(piVar14,0x52,local_40,0,0)" identifier = (call_expression "(*local_48)(piVar14,0x52,local_40,0,0)" (parenthesized_expression "(*local_48)" ( (pointer_expression "*local_48" * identifier) )) (argument_list "(piVar14,0x52,local_40,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal )))) ;) (expression_statement "(*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);" (call_expression "(*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe)" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "(piVar14,uVar10,iVar11,0xfffffffe)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "iVar18 = piVar12[2];" (assignment_expression "iVar18 = piVar12[2]" identifier = (subscript_expression "piVar12[2]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }" else (compound_statement "{\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }" { (expression_statement "iVar13 = *piVar17;" (assignment_expression "iVar13 = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "iVar16 = (*pcVar7)(param_1,iVar13);" (assignment_expression "iVar16 = (*pcVar7)(param_1,iVar13)" identifier = (call_expression "(*pcVar7)(param_1,iVar13)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(param_1,iVar13)" ( identifier , identifier )))) ;) (expression_statement "(*pcVar8)(param_1,piVar17,iVar16,0,1);" (call_expression "(*pcVar8)(param_1,piVar17,iVar16,0,1)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(param_1,piVar17,iVar16,0,1)" ( identifier , identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "uStack_4a = (ushort)iVar13 & 0xff;" (assignment_expression "uStack_4a = (ushort)iVar13 & 0xff" identifier = (binary_expression "(ushort)iVar13 & 0xff" (cast_expression "(ushort)iVar13" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if (piVar12[3] < 0) goto LAB_000eb028;" if (parenthesized_expression "(piVar12[3] < 0)" ( (binary_expression "piVar12[3] < 0" (subscript_expression "piVar12[3]" identifier [ number_literal ]) < number_literal) )) (goto_statement "goto LAB_000eb028;" goto statement_identifier ;)) (labeled_statement "LAB_000eb100:\n        iVar15 = param_1[0xe] + -1;" statement_identifier : (expression_statement "iVar15 = param_1[0xe] + -1;" (assignment_expression "iVar15 = param_1[0xe] + -1" identifier = (binary_expression "param_1[0xe] + -1" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) + number_literal)) ;)) (expression_statement "param_1[0xe] = iVar15;" (assignment_expression "param_1[0xe] = iVar15" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);" (call_expression "(*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16)" (parenthesized_expression "(*(code *)(puVar4 + 0x27d0))" ( (pointer_expression "*(code *)(puVar4 + 0x27d0)" * (cast_expression "(code *)(puVar4 + 0x27d0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x27d0)" ( (binary_expression "puVar4 + 0x27d0" identifier + number_literal) )))) )) (argument_list "(param_1,piVar12[3],iVar15,1,iVar16)" ( identifier , (subscript_expression "piVar12[3]" identifier [ number_literal ]) , identifier , number_literal , identifier ))) ;) (if_statement "if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;" if (parenthesized_expression "((*(uint *)(piVar12[1] + 4) & 0x20) != 0)" ( (binary_expression "(*(uint *)(piVar12[1] + 4) & 0x20) != 0" (parenthesized_expression "(*(uint *)(piVar12[1] + 4) & 0x20)" ( (binary_expression "*(uint *)(piVar12[1] + 4) & 0x20" (pointer_expression "*(uint *)(piVar12[1] + 4)" * (cast_expression "(uint *)(piVar12[1] + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[1] + 4)" ( (binary_expression "piVar12[1] + 4" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000eb140;" goto statement_identifier ;)) (labeled_statement "LAB_000eb03c:\n        iVar18 = piVar12[2];" statement_identifier : (expression_statement "iVar18 = piVar12[2];" (assignment_expression "iVar18 = piVar12[2]" identifier = (subscript_expression "piVar12[2]" identifier [ number_literal ])) ;)) }))) (expression_statement "(*local_48)(piVar14,0x9a,0,iVar16,iVar18);" (call_expression "(*local_48)(piVar14,0x9a,0,iVar16,iVar18)" (parenthesized_expression "(*local_48)" ( (pointer_expression "*local_48" * identifier) )) (argument_list "(piVar14,0x9a,0,iVar16,iVar18)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "(*pcVar6)(piVar14,piVar12[1],0xfffffff8);" (call_expression "(*pcVar6)(piVar14,piVar12[1],0xfffffff8)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(piVar14,piVar12[1],0xfffffff8)" ( identifier , (subscript_expression "piVar12[1]" identifier [ number_literal ]) , number_literal ))) ;) (if_statement "if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }" if (parenthesized_expression "(0 < piVar14[0x1b])" ( (binary_expression "0 < piVar14[0x1b]" number_literal < (subscript_expression "piVar14[0x1b]" identifier [ number_literal ])) )) (compound_statement "{\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }" { (expression_statement "*(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;" (assignment_expression "*(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a" (pointer_expression "*(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16)" * (cast_expression "(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16)" ( (binary_expression "piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16" (binary_expression "piVar14[0x1a] + piVar14[0x1b] * 0x18" (subscript_expression "piVar14[0x1a]" identifier [ number_literal ]) + (binary_expression "piVar14[0x1b] * 0x18" (subscript_expression "piVar14[0x1b]" identifier [ number_literal ]) * number_literal)) + number_literal) )))) = identifier) ;) })) (if_statement "if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }" if (parenthesized_expression "(iVar13 == 1)" ( (binary_expression "iVar13 == 1" identifier == number_literal) )) (compound_statement "{\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }" { (expression_statement "(*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);" (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x47a4))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x47a4)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x47a4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x47a4)" ( (binary_expression "PTR_LAB_00190ba4 + -0x47a4" identifier + number_literal) )))) )) (argument_list "(param_1,iVar16)" ( identifier , identifier ))) ;) }) (else_clause "else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }" else (if_statement "if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }" if (parenthesized_expression "(param_1[7] < iVar13)" ( (binary_expression "param_1[7] < iVar13" (subscript_expression "param_1[7]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }" { (expression_statement "param_1[7] = iVar13;" (assignment_expression "param_1[7] = iVar13" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[8] = iVar16;" (assignment_expression "param_1[8] = iVar16" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) })))) (if_statement "if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }" { (expression_statement "piVar12 = piVar12 + 4;" (assignment_expression "piVar12 = piVar12 + 4" identifier = (binary_expression "piVar12 + 4" identifier + number_literal)) ;) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) (if_statement "if (*(int *)(param_3 + 0x2c) <= local_50) break;" if (parenthesized_expression "(*(int *)(param_3 + 0x2c) <= local_50)" ( (binary_expression "*(int *)(param_3 + 0x2c) <= local_50" (pointer_expression "*(int *)(param_3 + 0x2c)" * (cast_expression "(int *)(param_3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2c)" ( (binary_expression "param_3 + 0x2c" identifier + number_literal) )))) <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_000eb0dc;" goto statement_identifier ;) })) (expression_statement "piVar12 = piVar12 + 4;" (assignment_expression "piVar12 = piVar12 + 4" identifier = (binary_expression "piVar12 + 4" identifier + number_literal)) ;) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0xd78))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0xd78)" * (cast_expression "(code *)(PTR_LAB_00190bc0 + 0xd78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc0 + 0xd78)" ( (binary_expression "PTR_LAB_00190bc0 + 0xd78" identifier + number_literal) )))) )) (argument_list "(piVar14,iVar15)" ( identifier , identifier ))) ;) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" identifier = (binary_expression "local_50 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_50 < *(int *)(param_3 + 0x2c))" ( (binary_expression "local_50 < *(int *)(param_3 + 0x2c)" identifier < (pointer_expression "*(int *)(param_3 + 0x2c)" * (cast_expression "(int *)(param_3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2c)" ( (binary_expression "param_3 + 0x2c" identifier + number_literal) ))))) )) ;)) (if_statement "if (local_40 == 0) goto LAB_000eb358;" if (parenthesized_expression "(local_40 == 0)" ( (binary_expression "local_40 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000eb358;" goto statement_identifier ;)) (labeled_statement "LAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);" statement_identifier : (expression_statement "local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);" (assignment_expression "local_res4 = (*local_48)(piVar14,0x12,local_40,0,0)" identifier = (call_expression "(*local_48)(piVar14,0x12,local_40,0,0)" (parenthesized_expression "(*local_48)" ( (pointer_expression "*local_48" * identifier) )) (argument_list "(piVar14,0x12,local_40,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal )))) ;)) (expression_statement "iVar16 = *(int *)(param_3 + 0x1c);" (assignment_expression "iVar16 = *(int *)(param_3 + 0x1c)" identifier = (pointer_expression "*(int *)(param_3 + 0x1c)" * (cast_expression "(int *)(param_3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;" if (parenthesized_expression "(*(int *)(param_3 + 0x24) < 1)" ( (binary_expression "*(int *)(param_3 + 0x24) < 1" (pointer_expression "*(int *)(param_3 + 0x24)" * (cast_expression "(int *)(param_3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) )))) < number_literal) )) (goto_statement "goto LAB_000eb298;" goto statement_identifier ;)) }))) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n    puVar1 = (undefined4 *)(iVar16 + 0x10);\n    puVar2 = (undefined4 *)(iVar16 + 0x14);\n    iVar13 = iVar13 + 1;\n    iVar16 = iVar16 + 0x18;\n    FUN_000e8324(param_1,*puVar2,*puVar1);\n  } while (iVar13 < *(int *)(param_3 + 0x24));" do (compound_statement "{\n    puVar1 = (undefined4 *)(iVar16 + 0x10);\n    puVar2 = (undefined4 *)(iVar16 + 0x14);\n    iVar13 = iVar13 + 1;\n    iVar16 = iVar16 + 0x18;\n    FUN_000e8324(param_1,*puVar2,*puVar1);\n  }" { (expression_statement "puVar1 = (undefined4 *)(iVar16 + 0x10);" (assignment_expression "puVar1 = (undefined4 *)(iVar16 + 0x10)" identifier = (cast_expression "(undefined4 *)(iVar16 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x10)" ( (binary_expression "iVar16 + 0x10" identifier + number_literal) )))) ;) (expression_statement "puVar2 = (undefined4 *)(iVar16 + 0x14);" (assignment_expression "puVar2 = (undefined4 *)(iVar16 + 0x14)" identifier = (cast_expression "(undefined4 *)(iVar16 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) )))) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = iVar16 + 0x18;" (assignment_expression "iVar16 = iVar16 + 0x18" identifier = (binary_expression "iVar16 + 0x18" identifier + number_literal)) ;) (expression_statement "FUN_000e8324(param_1,*puVar2,*puVar1);" (call_expression "FUN_000e8324(param_1,*puVar2,*puVar1)" identifier (argument_list "(param_1,*puVar2,*puVar1)" ( identifier , (pointer_expression "*puVar2" * identifier) , (pointer_expression "*puVar1" * identifier) ))) ;) }) while (parenthesized_expression "(iVar13 < *(int *)(param_3 + 0x24))" ( (binary_expression "iVar13 < *(int *)(param_3 + 0x24)" identifier < (pointer_expression "*(int *)(param_3 + 0x24)" * (cast_expression "(int *)(param_3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) ))))) )) ;) (labeled_statement "LAB_000eb298:\n  *param_3 = 0;" statement_identifier : (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;)) (if_statement "if (local_res4 != 0) {\n    iVar16 = piVar14[0x1b];\n    if (local_res4 < 0) {\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    if (cVar3 == '\0') {\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }\n    else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }\n  }" if (parenthesized_expression "(local_res4 != 0)" ( (binary_expression "local_res4 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar16 = piVar14[0x1b];\n    if (local_res4 < 0) {\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    if (cVar3 == '\0') {\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }\n    else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }\n  }" { (expression_statement "iVar16 = piVar14[0x1b];" (assignment_expression "iVar16 = piVar14[0x1b]" identifier = (subscript_expression "piVar14[0x1b]" identifier [ number_literal ])) ;) (if_statement "if (local_res4 < 0) {\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }" if (parenthesized_expression "(local_res4 < 0)" ( (binary_expression "local_res4 < 0" identifier < number_literal) )) (compound_statement "{\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }" { (expression_statement "local_res4 = iVar16 + -1;" (assignment_expression "local_res4 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "cVar3 = *(char *)(*piVar14 + 0x51);" (assignment_expression "cVar3 = *(char *)(*piVar14 + 0x51)" identifier = (pointer_expression "*(char *)(*piVar14 + 0x51)" * (cast_expression "(char *)(*piVar14 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar14 + 0x51)" ( (binary_expression "*piVar14 + 0x51" (pointer_expression "*piVar14" * identifier) + number_literal) ))))) ;) }) (else_clause "else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }" else (compound_statement "{\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }" { (expression_statement "cVar3 = *(char *)(*piVar14 + 0x51);" (assignment_expression "cVar3 = *(char *)(*piVar14 + 0x51)" identifier = (pointer_expression "*(char *)(*piVar14 + 0x51)" * (cast_expression "(char *)(*piVar14 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar14 + 0x51)" ( (binary_expression "*piVar14 + 0x51" (pointer_expression "*piVar14" * identifier) + number_literal) ))))) ;) }))) (if_statement "if (cVar3 == '\0') {\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }\n    else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }" { (expression_statement "*(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;" (assignment_expression "*(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16" (pointer_expression "*(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8)" * (cast_expression "(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar14[0x1a] + local_res4 * 0x18 + 8)" ( (binary_expression "piVar14[0x1a] + local_res4 * 0x18 + 8" (binary_expression "piVar14[0x1a] + local_res4 * 0x18" (subscript_expression "piVar14[0x1a]" identifier [ number_literal ]) + (binary_expression "local_res4 * 0x18" identifier * number_literal)) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }" else (compound_statement "{\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }" { (expression_statement "*(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;" (assignment_expression "*(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16" (pointer_expression "*(int *)(PTR_DAT_00190948 + 0xfc4)" * (cast_expression "(int *)(PTR_DAT_00190948 + 0xfc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00190948 + 0xfc4)" ( (binary_expression "PTR_DAT_00190948 + 0xfc4" identifier + number_literal) )))) = identifier) ;) }))) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (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 (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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (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 ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ 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 (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (return_statement return ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (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 (assignment_expression IDENT = (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) )))) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + 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 ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , LIT , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 , (subscript_expression IDENT [ LIT ]) , IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (break_statement break ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_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) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , LIT , LIT )))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (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 (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) , (pointer_expression * IDENT) ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) })) (return_statement return ;) })))
(function_definition "void FUN_000eaf28(int *param_1,int param_2,undefined1 *param_3)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  int local_res4;\n  int local_50;\n  ushort uStack_4a;\n  code *local_48;\n  int local_40;\n  \n  piVar14 = (int *)param_1[2];\n  piVar12 = *(int **)(param_3 + 0x28);\n  *param_3 = 1;\n  puVar5 = PTR_LAB_00190bc4;\n  puVar4 = PTR_LAB_00190bc0;\n  if (*(int *)(param_3 + 0x2c) < 1) {\nLAB_000eb358:\n    if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }\n    if (param_2 != 0) {\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }\n    iVar16 = *(int *)(param_3 + 0x1c);\n    local_res4 = 0;\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;\n  }\n  else {\n    local_40 = 0;\n    local_50 = 0;\n    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));\n    if (local_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);\n    iVar16 = *(int *)(param_3 + 0x1c);\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;\n  }\n  iVar13 = 0;\n  do {\n    puVar1 = (undefined4 *)(iVar16 + 0x10);\n    puVar2 = (undefined4 *)(iVar16 + 0x14);\n    iVar13 = iVar13 + 1;\n    iVar16 = iVar16 + 0x18;\n    FUN_000e8324(param_1,*puVar2,*puVar1);\n  } while (iVar13 < *(int *)(param_3 + 0x24));\nLAB_000eb298:\n  *param_3 = 0;\n  if (local_res4 != 0) {\n    iVar16 = piVar14[0x1b];\n    if (local_res4 < 0) {\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    if (cVar3 == '\0') {\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }\n    else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000eaf28(int *param_1,int param_2,undefined1 *param_3)" (identifier "FUN_000eaf28") (parameter_list "(int *param_1,int param_2,undefined1 *param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined1 *param_3" (type_identifier "undefined1") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  char cVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  code *pcVar7;\n  code *pcVar8;\n  code *pcVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  int iVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  int local_res4;\n  int local_50;\n  ushort uStack_4a;\n  code *local_48;\n  int local_40;\n  \n  piVar14 = (int *)param_1[2];\n  piVar12 = *(int **)(param_3 + 0x28);\n  *param_3 = 1;\n  puVar5 = PTR_LAB_00190bc4;\n  puVar4 = PTR_LAB_00190bc0;\n  if (*(int *)(param_3 + 0x2c) < 1) {\nLAB_000eb358:\n    if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }\n    if (param_2 != 0) {\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }\n    iVar16 = *(int *)(param_3 + 0x1c);\n    local_res4 = 0;\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;\n  }\n  else {\n    local_40 = 0;\n    local_50 = 0;\n    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));\n    if (local_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);\n    iVar16 = *(int *)(param_3 + 0x1c);\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;\n  }\n  iVar13 = 0;\n  do {\n    puVar1 = (undefined4 *)(iVar16 + 0x10);\n    puVar2 = (undefined4 *)(iVar16 + 0x14);\n    iVar13 = iVar13 + 1;\n    iVar16 = iVar16 + 0x18;\n    FUN_000e8324(param_1,*puVar2,*puVar1);\n  } while (iVar13 < *(int *)(param_3 + 0x24));\nLAB_000eb298:\n  *param_3 = 0;\n  if (local_res4 != 0) {\n    iVar16 = piVar14[0x1b];\n    if (local_res4 < 0) {\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    if (cVar3 == '\0') {\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }\n    else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }\n  }\n  return;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "code *pcVar6;" (type_identifier "code") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "code *pcVar7;" (type_identifier "code") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "code *pcVar8;" (type_identifier "code") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "code *pcVar9;" (type_identifier "code") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "int local_res4;" (primitive_type "int") (identifier "local_res4") (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "ushort uStack_4a;" (type_identifier "ushort") (identifier "uStack_4a") (; ";")) (declaration "code *local_48;" (type_identifier "code") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (expression_statement "piVar14 = (int *)param_1[2];" (assignment_expression "piVar14 = (int *)param_1[2]" (identifier "piVar14") (= "=") (cast_expression "(int *)param_1[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "piVar12 = *(int **)(param_3 + 0x28);" (assignment_expression "piVar12 = *(int **)(param_3 + 0x28)" (identifier "piVar12") (= "=") (pointer_expression "*(int **)(param_3 + 0x28)" (* "*") (cast_expression "(int **)(param_3 + 0x28)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x28)" (( "(") (binary_expression "param_3 + 0x28" (identifier "param_3") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*param_3 = 1;" (assignment_expression "*param_3 = 1" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar5 = PTR_LAB_00190bc4;" (assignment_expression "puVar5 = PTR_LAB_00190bc4" (identifier "puVar5") (= "=") (identifier "PTR_LAB_00190bc4")) (; ";")) (expression_statement "puVar4 = PTR_LAB_00190bc0;" (assignment_expression "puVar4 = PTR_LAB_00190bc0" (identifier "puVar4") (= "=") (identifier "PTR_LAB_00190bc0")) (; ";")) (if_statement "if (*(int *)(param_3 + 0x2c) < 1) {\nLAB_000eb358:\n    if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }\n    if (param_2 != 0) {\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }\n    iVar16 = *(int *)(param_3 + 0x1c);\n    local_res4 = 0;\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;\n  }\n  else {\n    local_40 = 0;\n    local_50 = 0;\n    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));\n    if (local_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);\n    iVar16 = *(int *)(param_3 + 0x1c);\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_3 + 0x2c) < 1)" (( "(") (binary_expression "*(int *)(param_3 + 0x2c) < 1" (pointer_expression "*(int *)(param_3 + 0x2c)" (* "*") (cast_expression "(int *)(param_3 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2c)" (( "(") (binary_expression "param_3 + 0x2c" (identifier "param_3") (+ "+") (number_literal "0x2c")) () ")")))) (< "<") (number_literal "1")) () ")")) (compound_statement "{\nLAB_000eb358:\n    if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }\n    if (param_2 != 0) {\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }\n    iVar16 = *(int *)(param_3 + 0x1c);\n    local_res4 = 0;\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;\n  }" ({ "{") (labeled_statement "LAB_000eb358:\n    if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }" (statement_identifier "LAB_000eb358") (: ":") (if_statement "if (*(int *)(param_3 + 0x24) == 0) {\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_3 + 0x24) == 0)" (( "(") (binary_expression "*(int *)(param_3 + 0x24) == 0" (pointer_expression "*(int *)(param_3 + 0x24)" (* "*") (cast_expression "(int *)(param_3 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x24)" (( "(") (binary_expression "param_3 + 0x24" (identifier "param_3") (+ "+") (number_literal "0x24")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000eb374:\n      *param_3 = 0;\n      return;\n    }" ({ "{") (labeled_statement "LAB_000eb374:\n      *param_3 = 0;" (statement_identifier "LAB_000eb374") (: ":") (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "0")) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}")))) (if_statement "if (param_2 != 0) {\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }" (if "if") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n      local_40 = param_2;\n      goto LAB_000eb230;\n    }" ({ "{") (expression_statement "local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);" (assignment_expression "local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc)" (identifier "local_48") (= "=") (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" (( "(") (binary_expression "PTR_LAB_00190bc0 + 0x10fc" (identifier "PTR_LAB_00190bc0") (+ "+") (number_literal "0x10fc")) () ")")))) (; ";")) (expression_statement "local_40 = param_2;" (assignment_expression "local_40 = param_2" (identifier "local_40") (= "=") (identifier "param_2")) (; ";")) (goto_statement "goto LAB_000eb230;" (goto "goto") (statement_identifier "LAB_000eb230") (; ";")) (} "}"))) (expression_statement "iVar16 = *(int *)(param_3 + 0x1c);" (assignment_expression "iVar16 = *(int *)(param_3 + 0x1c)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(param_3 + 0x1c)" (* "*") (cast_expression "(int *)(param_3 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x1c)" (( "(") (binary_expression "param_3 + 0x1c" (identifier "param_3") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "local_res4 = 0;" (assignment_expression "local_res4 = 0" (identifier "local_res4") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;" (if "if") (parenthesized_expression "(*(int *)(param_3 + 0x24) < 1)" (( "(") (binary_expression "*(int *)(param_3 + 0x24) < 1" (pointer_expression "*(int *)(param_3 + 0x24)" (* "*") (cast_expression "(int *)(param_3 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x24)" (( "(") (binary_expression "param_3 + 0x24" (identifier "param_3") (+ "+") (number_literal "0x24")) () ")")))) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_000eb374;" (goto "goto") (statement_identifier "LAB_000eb374") (; ";"))) (} "}")) (else_clause "else {\n    local_40 = 0;\n    local_50 = 0;\n    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));\n    if (local_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);\n    iVar16 = *(int *)(param_3 + 0x1c);\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;\n  }" (else "else") (compound_statement "{\n    local_40 = 0;\n    local_50 = 0;\n    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);\n    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);\n    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);\n    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);\n    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);\nLAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));\n    if (local_40 == 0) goto LAB_000eb358;\nLAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);\n    iVar16 = *(int *)(param_3 + 0x1c);\n    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;\n  }" ({ "{") (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);" (assignment_expression "local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc)" (identifier "local_48") (= "=") (cast_expression "(code *)(PTR_LAB_00190bc0 + 0x10fc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bc0 + 0x10fc)" (( "(") (binary_expression "PTR_LAB_00190bc0 + 0x10fc" (identifier "PTR_LAB_00190bc0") (+ "+") (number_literal "0x10fc")) () ")")))) (; ";")) (expression_statement "pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);" (assignment_expression "pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4)" (identifier "pcVar6") (= "=") (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x24d4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba4 + -0x24d4)" (( "(") (binary_expression "PTR_LAB_00190ba4 + -0x24d4" (identifier "PTR_LAB_00190ba4") (+ "+") (number_literal "-0x24d4")) () ")")))) (; ";")) (expression_statement "pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);" (assignment_expression "pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824)" (identifier "pcVar7") (= "=") (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x4824)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba4 + -0x4824)" (( "(") (binary_expression "PTR_LAB_00190ba4 + -0x4824" (identifier "PTR_LAB_00190ba4") (+ "+") (number_literal "-0x4824")) () ")")))) (; ";")) (expression_statement "pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);" (assignment_expression "pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0)" (identifier "pcVar8") (= "=") (cast_expression "(code *)(PTR_LAB_00190c58 + -0x53b0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190c58 + -0x53b0)" (( "(") (binary_expression "PTR_LAB_00190c58 + -0x53b0" (identifier "PTR_LAB_00190c58") (+ "+") (number_literal "-0x53b0")) () ")")))) (; ";")) (expression_statement "pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);" (assignment_expression "pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c)" (identifier "pcVar9") (= "=") (cast_expression "(code *)(PTR_LAB_00190ba4 + 0x7a3c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba4 + 0x7a3c)" (( "(") (binary_expression "PTR_LAB_00190ba4 + 0x7a3c" (identifier "PTR_LAB_00190ba4") (+ "+") (number_literal "0x7a3c")) () ")")))) (; ";")) (labeled_statement "LAB_000eb0dc:\n    do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));" (statement_identifier "LAB_000eb0dc") (: ":") (do_statement "do {\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    } while (local_50 < *(int *)(param_3 + 0x2c));" (do "do") (compound_statement "{\n      piVar17 = *(int **)(*piVar12 + 0x14);\n      if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }\n      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);\n      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);\n      if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }\n      if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }\n      if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }\n      piVar12 = piVar12 + 4;\n      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);\n      local_50 = local_50 + 1;\n    }" ({ "{") (expression_statement "piVar17 = *(int **)(*piVar12 + 0x14);" (assignment_expression "piVar17 = *(int **)(*piVar12 + 0x14)" (identifier "piVar17") (= "=") (pointer_expression "*(int **)(*piVar12 + 0x14)" (* "*") (cast_expression "(int **)(*piVar12 + 0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar12 + 0x14)" (( "(") (binary_expression "*piVar12 + 0x14" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (piVar17 == (int *)0x0) {\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }\n      else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }" (if "if") (parenthesized_expression "(piVar17 == (int *)0x0)" (( "(") (binary_expression "piVar17 == (int *)0x0" (identifier "piVar17") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar16 = 0;\n        uStack_4a = 0;\n        iVar13 = 0;\n        if (-1 < piVar12[3]) goto LAB_000eb100;\nLAB_000eb028:\n        iVar15 = 0;\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;\nLAB_000eb140:\n        piVar17 = piVar17 + 1;\n        if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }\n        iVar11 = *(int *)(*param_1 + 8);\nLAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }\n        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);\n        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);\n        iVar18 = piVar12[2];\n      }" ({ "{") (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_4a = 0;" (assignment_expression "uStack_4a = 0" (identifier "uStack_4a") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < piVar12[3]) goto LAB_000eb100;" (if "if") (parenthesized_expression "(-1 < piVar12[3])" (( "(") (binary_expression "-1 < piVar12[3]" (number_literal "-1") (< "<") (subscript_expression "piVar12[3]" (identifier "piVar12") ([ "[") (number_literal "3") (] "]"))) () ")")) (goto_statement "goto LAB_000eb100;" (goto "goto") (statement_identifier "LAB_000eb100") (; ";"))) (labeled_statement "LAB_000eb028:\n        iVar15 = 0;" (statement_identifier "LAB_000eb028") (: ":") (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";"))) (if_statement "if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;" (if "if") (parenthesized_expression "((*(uint *)(piVar12[1] + 4) & 0x20) == 0)" (( "(") (binary_expression "(*(uint *)(piVar12[1] + 4) & 0x20) == 0" (parenthesized_expression "(*(uint *)(piVar12[1] + 4) & 0x20)" (( "(") (binary_expression "*(uint *)(piVar12[1] + 4) & 0x20" (pointer_expression "*(uint *)(piVar12[1] + 4)" (* "*") (cast_expression "(uint *)(piVar12[1] + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar12[1] + 4)" (( "(") (binary_expression "piVar12[1] + 4" (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000eb03c;" (goto "goto") (statement_identifier "LAB_000eb03c") (; ";"))) (labeled_statement "LAB_000eb140:\n        piVar17 = piVar17 + 1;" (statement_identifier "LAB_000eb140") (: ":") (expression_statement "piVar17 = piVar17 + 1;" (assignment_expression "piVar17 = piVar17 + 1" (identifier "piVar17") (= "=") (binary_expression "piVar17 + 1" (identifier "piVar17") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (0 < iVar13) {\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }" (if "if") (parenthesized_expression "(0 < iVar13)" (( "(") (binary_expression "0 < iVar13" (number_literal "0") (< "<") (identifier "iVar13")) () ")")) (compound_statement "{\n          iVar18 = 0;\n          do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);\n        }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          } while (iVar13 != iVar18);" (do "do") (compound_statement "{\n            iVar11 = *piVar17;\n            iVar18 = iVar18 + 1;\n            piVar17 = piVar17 + 5;\n            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);\n            if (iVar11 != 0) goto LAB_000eb184;\n          }" ({ "{") (expression_statement "iVar11 = *piVar17;" (assignment_expression "iVar11 = *piVar17" (identifier "iVar11") (= "=") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) (; ";")) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar17 = piVar17 + 5;" (assignment_expression "piVar17 = piVar17 + 5" (identifier "piVar17") (= "=") (binary_expression "piVar17 + 5" (identifier "piVar17") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);" (assignment_expression "iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11)" (identifier "iVar11") (= "=") (call_expression "(*(code *)(puVar5 + -0x6274))(param_1,iVar11)" (parenthesized_expression "(*(code *)(puVar5 + -0x6274))" (( "(") (pointer_expression "*(code *)(puVar5 + -0x6274)" (* "*") (cast_expression "(code *)(puVar5 + -0x6274)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + -0x6274)" (( "(") (binary_expression "puVar5 + -0x6274" (identifier "puVar5") (+ "+") (number_literal "-0x6274")) () ")")))) () ")")) (argument_list "(param_1,iVar11)" (( "(") (identifier "param_1") (, ",") (identifier "iVar11") () ")")))) (; ";")) (if_statement "if (iVar11 != 0) goto LAB_000eb184;" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000eb184;" (goto "goto") (statement_identifier "LAB_000eb184") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar13 != iVar18)" (( "(") (binary_expression "iVar13 != iVar18" (identifier "iVar13") (!= "!=") (identifier "iVar18")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar11 = *(int *)(*param_1 + 8);" (assignment_expression "iVar11 = *(int *)(*param_1 + 8)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(*param_1 + 8)" (* "*") (cast_expression "(int *)(*param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 8)" (( "(") (binary_expression "*param_1 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (labeled_statement "LAB_000eb184:\n        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }" (statement_identifier "LAB_000eb184") (: ":") (if_statement "if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }" (if "if") (parenthesized_expression "((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0))" (( "(") (binary_expression "(local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)" (parenthesized_expression "(local_40 == 0)" (( "(") (binary_expression "local_40 == 0" (identifier "local_40") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_40 = *(int *)(param_3 + 0x24), local_40 != 0)" (( "(") (comma_expression "local_40 = *(int *)(param_3 + 0x24), local_40 != 0" (assignment_expression "local_40 = *(int *)(param_3 + 0x24)" (identifier "local_40") (= "=") (pointer_expression "*(int *)(param_3 + 0x24)" (* "*") (cast_expression "(int *)(param_3 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x24)" (( "(") (binary_expression "param_3 + 0x24" (identifier "param_3") (+ "+") (number_literal "0x24")) () ")"))))) (, ",") (binary_expression "local_40 != 0" (identifier "local_40") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          local_40 = param_1[0xb] + 1;\n          param_1[0xb] = local_40;\n        }" ({ "{") (expression_statement "local_40 = param_1[0xb] + 1;" (assignment_expression "local_40 = param_1[0xb] + 1" (identifier "local_40") (= "=") (binary_expression "param_1[0xb] + 1" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_1[0xb] = local_40;" (assignment_expression "param_1[0xb] = local_40" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "local_40")) (; ";")) (} "}")))) (expression_statement "uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);" (assignment_expression "uVar10 = (*local_48)(piVar14,0x52,local_40,0,0)" (identifier "uVar10") (= "=") (call_expression "(*local_48)(piVar14,0x52,local_40,0,0)" (parenthesized_expression "(*local_48)" (( "(") (pointer_expression "*local_48" (* "*") (identifier "local_48")) () ")")) (argument_list "(piVar14,0x52,local_40,0,0)" (( "(") (identifier "piVar14") (, ",") (number_literal "0x52") (, ",") (identifier "local_40") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "(*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);" (call_expression "(*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe)" (parenthesized_expression "(*pcVar9)" (( "(") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) () ")")) (argument_list "(piVar14,uVar10,iVar11,0xfffffffe)" (( "(") (identifier "piVar14") (, ",") (identifier "uVar10") (, ",") (identifier "iVar11") (, ",") (number_literal "0xfffffffe") () ")"))) (; ";")) (expression_statement "iVar18 = piVar12[2];" (assignment_expression "iVar18 = piVar12[2]" (identifier "iVar18") (= "=") (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }" (else "else") (compound_statement "{\n        iVar13 = *piVar17;\n        iVar16 = (*pcVar7)(param_1,iVar13);\n        (*pcVar8)(param_1,piVar17,iVar16,0,1);\n        uStack_4a = (ushort)iVar13 & 0xff;\n        if (piVar12[3] < 0) goto LAB_000eb028;\nLAB_000eb100:\n        iVar15 = param_1[0xe] + -1;\n        param_1[0xe] = iVar15;\n        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);\n        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;\nLAB_000eb03c:\n        iVar18 = piVar12[2];\n      }" ({ "{") (expression_statement "iVar13 = *piVar17;" (assignment_expression "iVar13 = *piVar17" (identifier "iVar13") (= "=") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) (; ";")) (expression_statement "iVar16 = (*pcVar7)(param_1,iVar13);" (assignment_expression "iVar16 = (*pcVar7)(param_1,iVar13)" (identifier "iVar16") (= "=") (call_expression "(*pcVar7)(param_1,iVar13)" (parenthesized_expression "(*pcVar7)" (( "(") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) () ")")) (argument_list "(param_1,iVar13)" (( "(") (identifier "param_1") (, ",") (identifier "iVar13") () ")")))) (; ";")) (expression_statement "(*pcVar8)(param_1,piVar17,iVar16,0,1);" (call_expression "(*pcVar8)(param_1,piVar17,iVar16,0,1)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(param_1,piVar17,iVar16,0,1)" (( "(") (identifier "param_1") (, ",") (identifier "piVar17") (, ",") (identifier "iVar16") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "uStack_4a = (ushort)iVar13 & 0xff;" (assignment_expression "uStack_4a = (ushort)iVar13 & 0xff" (identifier "uStack_4a") (= "=") (binary_expression "(ushort)iVar13 & 0xff" (cast_expression "(ushort)iVar13" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "iVar13")) (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if (piVar12[3] < 0) goto LAB_000eb028;" (if "if") (parenthesized_expression "(piVar12[3] < 0)" (( "(") (binary_expression "piVar12[3] < 0" (subscript_expression "piVar12[3]" (identifier "piVar12") ([ "[") (number_literal "3") (] "]")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_000eb028;" (goto "goto") (statement_identifier "LAB_000eb028") (; ";"))) (labeled_statement "LAB_000eb100:\n        iVar15 = param_1[0xe] + -1;" (statement_identifier "LAB_000eb100") (: ":") (expression_statement "iVar15 = param_1[0xe] + -1;" (assignment_expression "iVar15 = param_1[0xe] + -1" (identifier "iVar15") (= "=") (binary_expression "param_1[0xe] + -1" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (number_literal "-1"))) (; ";"))) (expression_statement "param_1[0xe] = iVar15;" (assignment_expression "param_1[0xe] = iVar15" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "iVar15")) (; ";")) (expression_statement "(*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);" (call_expression "(*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16)" (parenthesized_expression "(*(code *)(puVar4 + 0x27d0))" (( "(") (pointer_expression "*(code *)(puVar4 + 0x27d0)" (* "*") (cast_expression "(code *)(puVar4 + 0x27d0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 0x27d0)" (( "(") (binary_expression "puVar4 + 0x27d0" (identifier "puVar4") (+ "+") (number_literal "0x27d0")) () ")")))) () ")")) (argument_list "(param_1,piVar12[3],iVar15,1,iVar16)" (( "(") (identifier "param_1") (, ",") (subscript_expression "piVar12[3]" (identifier "piVar12") ([ "[") (number_literal "3") (] "]")) (, ",") (identifier "iVar15") (, ",") (number_literal "1") (, ",") (identifier "iVar16") () ")"))) (; ";")) (if_statement "if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;" (if "if") (parenthesized_expression "((*(uint *)(piVar12[1] + 4) & 0x20) != 0)" (( "(") (binary_expression "(*(uint *)(piVar12[1] + 4) & 0x20) != 0" (parenthesized_expression "(*(uint *)(piVar12[1] + 4) & 0x20)" (( "(") (binary_expression "*(uint *)(piVar12[1] + 4) & 0x20" (pointer_expression "*(uint *)(piVar12[1] + 4)" (* "*") (cast_expression "(uint *)(piVar12[1] + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar12[1] + 4)" (( "(") (binary_expression "piVar12[1] + 4" (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000eb140;" (goto "goto") (statement_identifier "LAB_000eb140") (; ";"))) (labeled_statement "LAB_000eb03c:\n        iVar18 = piVar12[2];" (statement_identifier "LAB_000eb03c") (: ":") (expression_statement "iVar18 = piVar12[2];" (assignment_expression "iVar18 = piVar12[2]" (identifier "iVar18") (= "=") (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (} "}")))) (expression_statement "(*local_48)(piVar14,0x9a,0,iVar16,iVar18);" (call_expression "(*local_48)(piVar14,0x9a,0,iVar16,iVar18)" (parenthesized_expression "(*local_48)" (( "(") (pointer_expression "*local_48" (* "*") (identifier "local_48")) () ")")) (argument_list "(piVar14,0x9a,0,iVar16,iVar18)" (( "(") (identifier "piVar14") (, ",") (number_literal "0x9a") (, ",") (number_literal "0") (, ",") (identifier "iVar16") (, ",") (identifier "iVar18") () ")"))) (; ";")) (expression_statement "(*pcVar6)(piVar14,piVar12[1],0xfffffff8);" (call_expression "(*pcVar6)(piVar14,piVar12[1],0xfffffff8)" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "(piVar14,piVar12[1],0xfffffff8)" (( "(") (identifier "piVar14") (, ",") (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0xfffffff8") () ")"))) (; ";")) (if_statement "if (0 < piVar14[0x1b]) {\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }" (if "if") (parenthesized_expression "(0 < piVar14[0x1b])" (( "(") (binary_expression "0 < piVar14[0x1b]" (number_literal "0") (< "<") (subscript_expression "piVar14[0x1b]" (identifier "piVar14") ([ "[") (number_literal "0x1b") (] "]"))) () ")")) (compound_statement "{\n        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;\n      }" ({ "{") (expression_statement "*(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;" (assignment_expression "*(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a" (pointer_expression "*(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16)" (* "*") (cast_expression "(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16)" (( "(") (binary_expression "piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16" (binary_expression "piVar14[0x1a] + piVar14[0x1b] * 0x18" (subscript_expression "piVar14[0x1a]" (identifier "piVar14") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (binary_expression "piVar14[0x1b] * 0x18" (subscript_expression "piVar14[0x1b]" (identifier "piVar14") ([ "[") (number_literal "0x1b") (] "]")) (* "*") (number_literal "0x18"))) (+ "+") (number_literal "-0x16")) () ")")))) (= "=") (identifier "uStack_4a")) (; ";")) (} "}"))) (if_statement "if (iVar13 == 1) {\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }\n      else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }" (if "if") (parenthesized_expression "(iVar13 == 1)" (( "(") (binary_expression "iVar13 == 1" (identifier "iVar13") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);\n      }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);" (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x47a4))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x47a4)" (* "*") (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x47a4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba4 + -0x47a4)" (( "(") (binary_expression "PTR_LAB_00190ba4 + -0x47a4" (identifier "PTR_LAB_00190ba4") (+ "+") (number_literal "-0x47a4")) () ")")))) () ")")) (argument_list "(param_1,iVar16)" (( "(") (identifier "param_1") (, ",") (identifier "iVar16") () ")"))) (; ";")) (} "}")) (else_clause "else if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }" (else "else") (if_statement "if (param_1[7] < iVar13) {\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }" (if "if") (parenthesized_expression "(param_1[7] < iVar13)" (( "(") (binary_expression "param_1[7] < iVar13" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (< "<") (identifier "iVar13")) () ")")) (compound_statement "{\n        param_1[7] = iVar13;\n        param_1[8] = iVar16;\n      }" ({ "{") (expression_statement "param_1[7] = iVar13;" (assignment_expression "param_1[7] = iVar13" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "param_1[8] = iVar16;" (assignment_expression "param_1[8] = iVar16" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "iVar16")) (; ";")) (} "}"))))) (if_statement "if (iVar15 == 0) {\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        piVar12 = piVar12 + 4;\n        local_50 = local_50 + 1;\n        if (*(int *)(param_3 + 0x2c) <= local_50) break;\n        goto LAB_000eb0dc;\n      }" ({ "{") (expression_statement "piVar12 = piVar12 + 4;" (assignment_expression "piVar12 = piVar12 + 4" (identifier "piVar12") (= "=") (binary_expression "piVar12 + 4" (identifier "piVar12") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" (identifier "local_50") (= "=") (binary_expression "local_50 + 1" (identifier "local_50") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(int *)(param_3 + 0x2c) <= local_50) break;" (if "if") (parenthesized_expression "(*(int *)(param_3 + 0x2c) <= local_50)" (( "(") (binary_expression "*(int *)(param_3 + 0x2c) <= local_50" (pointer_expression "*(int *)(param_3 + 0x2c)" (* "*") (cast_expression "(int *)(param_3 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2c)" (( "(") (binary_expression "param_3 + 0x2c" (identifier "param_3") (+ "+") (number_literal "0x2c")) () ")")))) (<= "<=") (identifier "local_50")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_000eb0dc;" (goto "goto") (statement_identifier "LAB_000eb0dc") (; ";")) (} "}"))) (expression_statement "piVar12 = piVar12 + 4;" (assignment_expression "piVar12 = piVar12 + 4" (identifier "piVar12") (= "=") (binary_expression "piVar12 + 4" (identifier "piVar12") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);" (call_expression "(*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc0 + 0xd78))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190bc0 + 0xd78)" (* "*") (cast_expression "(code *)(PTR_LAB_00190bc0 + 0xd78)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bc0 + 0xd78)" (( "(") (binary_expression "PTR_LAB_00190bc0 + 0xd78" (identifier "PTR_LAB_00190bc0") (+ "+") (number_literal "0xd78")) () ")")))) () ")")) (argument_list "(piVar14,iVar15)" (( "(") (identifier "piVar14") (, ",") (identifier "iVar15") () ")"))) (; ";")) (expression_statement "local_50 = local_50 + 1;" (assignment_expression "local_50 = local_50 + 1" (identifier "local_50") (= "=") (binary_expression "local_50 + 1" (identifier "local_50") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_50 < *(int *)(param_3 + 0x2c))" (( "(") (binary_expression "local_50 < *(int *)(param_3 + 0x2c)" (identifier "local_50") (< "<") (pointer_expression "*(int *)(param_3 + 0x2c)" (* "*") (cast_expression "(int *)(param_3 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2c)" (( "(") (binary_expression "param_3 + 0x2c" (identifier "param_3") (+ "+") (number_literal "0x2c")) () ")"))))) () ")")) (; ";"))) (if_statement "if (local_40 == 0) goto LAB_000eb358;" (if "if") (parenthesized_expression "(local_40 == 0)" (( "(") (binary_expression "local_40 == 0" (identifier "local_40") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000eb358;" (goto "goto") (statement_identifier "LAB_000eb358") (; ";"))) (labeled_statement "LAB_000eb230:\n    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);" (statement_identifier "LAB_000eb230") (: ":") (expression_statement "local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);" (assignment_expression "local_res4 = (*local_48)(piVar14,0x12,local_40,0,0)" (identifier "local_res4") (= "=") (call_expression "(*local_48)(piVar14,0x12,local_40,0,0)" (parenthesized_expression "(*local_48)" (( "(") (pointer_expression "*local_48" (* "*") (identifier "local_48")) () ")")) (argument_list "(piVar14,0x12,local_40,0,0)" (( "(") (identifier "piVar14") (, ",") (number_literal "0x12") (, ",") (identifier "local_40") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";"))) (expression_statement "iVar16 = *(int *)(param_3 + 0x1c);" (assignment_expression "iVar16 = *(int *)(param_3 + 0x1c)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(param_3 + 0x1c)" (* "*") (cast_expression "(int *)(param_3 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x1c)" (( "(") (binary_expression "param_3 + 0x1c" (identifier "param_3") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;" (if "if") (parenthesized_expression "(*(int *)(param_3 + 0x24) < 1)" (( "(") (binary_expression "*(int *)(param_3 + 0x24) < 1" (pointer_expression "*(int *)(param_3 + 0x24)" (* "*") (cast_expression "(int *)(param_3 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x24)" (( "(") (binary_expression "param_3 + 0x24" (identifier "param_3") (+ "+") (number_literal "0x24")) () ")")))) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_000eb298;" (goto "goto") (statement_identifier "LAB_000eb298") (; ";"))) (} "}")))) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    puVar1 = (undefined4 *)(iVar16 + 0x10);\n    puVar2 = (undefined4 *)(iVar16 + 0x14);\n    iVar13 = iVar13 + 1;\n    iVar16 = iVar16 + 0x18;\n    FUN_000e8324(param_1,*puVar2,*puVar1);\n  } while (iVar13 < *(int *)(param_3 + 0x24));" (do "do") (compound_statement "{\n    puVar1 = (undefined4 *)(iVar16 + 0x10);\n    puVar2 = (undefined4 *)(iVar16 + 0x14);\n    iVar13 = iVar13 + 1;\n    iVar16 = iVar16 + 0x18;\n    FUN_000e8324(param_1,*puVar2,*puVar1);\n  }" ({ "{") (expression_statement "puVar1 = (undefined4 *)(iVar16 + 0x10);" (assignment_expression "puVar1 = (undefined4 *)(iVar16 + 0x10)" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)(iVar16 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x10)" (( "(") (binary_expression "iVar16 + 0x10" (identifier "iVar16") (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "puVar2 = (undefined4 *)(iVar16 + 0x14);" (assignment_expression "puVar2 = (undefined4 *)(iVar16 + 0x14)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)(iVar16 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x14)" (( "(") (binary_expression "iVar16 + 0x14" (identifier "iVar16") (+ "+") (number_literal "0x14")) () ")")))) (; ";")) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar16 = iVar16 + 0x18;" (assignment_expression "iVar16 = iVar16 + 0x18" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 0x18" (identifier "iVar16") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "FUN_000e8324(param_1,*puVar2,*puVar1);" (call_expression "FUN_000e8324(param_1,*puVar2,*puVar1)" (identifier "FUN_000e8324") (argument_list "(param_1,*puVar2,*puVar1)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (, ",") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 < *(int *)(param_3 + 0x24))" (( "(") (binary_expression "iVar13 < *(int *)(param_3 + 0x24)" (identifier "iVar13") (< "<") (pointer_expression "*(int *)(param_3 + 0x24)" (* "*") (cast_expression "(int *)(param_3 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x24)" (( "(") (binary_expression "param_3 + 0x24" (identifier "param_3") (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (; ";")) (labeled_statement "LAB_000eb298:\n  *param_3 = 0;" (statement_identifier "LAB_000eb298") (: ":") (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "0")) (; ";"))) (if_statement "if (local_res4 != 0) {\n    iVar16 = piVar14[0x1b];\n    if (local_res4 < 0) {\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    if (cVar3 == '\0') {\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }\n    else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }\n  }" (if "if") (parenthesized_expression "(local_res4 != 0)" (( "(") (binary_expression "local_res4 != 0" (identifier "local_res4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar16 = piVar14[0x1b];\n    if (local_res4 < 0) {\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    if (cVar3 == '\0') {\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }\n    else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }\n  }" ({ "{") (expression_statement "iVar16 = piVar14[0x1b];" (assignment_expression "iVar16 = piVar14[0x1b]" (identifier "iVar16") (= "=") (subscript_expression "piVar14[0x1b]" (identifier "piVar14") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (if_statement "if (local_res4 < 0) {\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }\n    else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }" (if "if") (parenthesized_expression "(local_res4 < 0)" (( "(") (binary_expression "local_res4 < 0" (identifier "local_res4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      local_res4 = iVar16 + -1;\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }" ({ "{") (expression_statement "local_res4 = iVar16 + -1;" (assignment_expression "local_res4 = iVar16 + -1" (identifier "local_res4") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar3 = *(char *)(*piVar14 + 0x51);" (assignment_expression "cVar3 = *(char *)(*piVar14 + 0x51)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(*piVar14 + 0x51)" (* "*") (cast_expression "(char *)(*piVar14 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar14 + 0x51)" (( "(") (binary_expression "*piVar14 + 0x51" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (+ "+") (number_literal "0x51")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }" (else "else") (compound_statement "{\n      cVar3 = *(char *)(*piVar14 + 0x51);\n    }" ({ "{") (expression_statement "cVar3 = *(char *)(*piVar14 + 0x51);" (assignment_expression "cVar3 = *(char *)(*piVar14 + 0x51)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(*piVar14 + 0x51)" (* "*") (cast_expression "(char *)(*piVar14 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar14 + 0x51)" (( "(") (binary_expression "*piVar14 + 0x51" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (+ "+") (number_literal "0x51")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (cVar3 == '\0') {\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }\n    else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;\n    }" ({ "{") (expression_statement "*(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;" (assignment_expression "*(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16" (pointer_expression "*(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8)" (* "*") (cast_expression "(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar14[0x1a] + local_res4 * 0x18 + 8)" (( "(") (binary_expression "piVar14[0x1a] + local_res4 * 0x18 + 8" (binary_expression "piVar14[0x1a] + local_res4 * 0x18" (subscript_expression "piVar14[0x1a]" (identifier "piVar14") ([ "[") (number_literal "0x1a") (] "]")) (+ "+") (binary_expression "local_res4 * 0x18" (identifier "local_res4") (* "*") (number_literal "0x18"))) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar16")) (; ";")) (} "}")) (else_clause "else {\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }" (else "else") (compound_statement "{\n      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;\n    }" ({ "{") (expression_statement "*(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;" (assignment_expression "*(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16" (pointer_expression "*(int *)(PTR_DAT_00190948 + 0xfc4)" (* "*") (cast_expression "(int *)(PTR_DAT_00190948 + 0xfc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_00190948 + 0xfc4)" (( "(") (binary_expression "PTR_DAT_00190948 + 0xfc4" (identifier "PTR_DAT_00190948") (+ "+") (number_literal "0xfc4")) () ")")))) (= "=") (identifier "iVar16")) (; ";")) (} "}")))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *pParse,int var_1,type_2 *pAggInfo)

{
  int *piVar1;
  type_3 **ppEVar2;
  type_4 var_20;
  type_5 *var_12;
  type_5 *var_9;
  type_6 *pcVar6;
  type_6 *pcVar7;
  type_6 *pcVar8;
  type_6 *pcVar9;
  type_7 *var_10;
  type_8 uVar11;
  type_9 *var_14;
  type_10 *var_17;
  int var_6;
  type_11 *pVVar15;
  int var_13;
  int var_16;
  type_12 *var_5;
  type_13 *var_8;
  int var_7;
  int var_19;
  int var_15;
  type_14 uStack_4a;
  type_6 *pcStack_48;
  int var_11;
  
  pVVar15 = pParse->pVdbe;
  var_14 = pAggInfo->aFunc;
  pAggInfo->directMode = '\x01';
  var_9 = PTR_LAB_00190bc4;
  var_12 = var_2;
  if (pAggInfo->nFunc < 1) {
LAB_000eb358:
    if (pAggInfo->nAccumulator == 0) {
LAB_000eb374:
      pAggInfo->directMode = '\0';
      return;
    }
    if (var_1 != 0) {
      pcStack_48 = (type_6 *)(var_2 + 0x10fc);
      var_11 = var_1;
      goto LAB_000eb230;
    }
    var_17 = pAggInfo->aCol;
    var_19 = 0;
    if (pAggInfo->nAccumulator < 1) goto LAB_000eb374;
  }
  else {
    var_11 = 0;
    var_15 = 0;
    pcStack_48 = (type_6 *)(var_2 + 0x10fc);
    pcVar6 = (type_6 *)(var_3 + -0x24d4);
    pcVar7 = (type_6 *)(var_3 + -0x4824);
    pcVar8 = (type_6 *)(var_4 + -0x53b0);
    pcVar9 = (type_6 *)(var_3 + 0x7a3c);
LAB_000eb0dc:
    do {
      var_5 = (var_14->pExpr->x).pList;
      if (var_5 == (type_12 *)0x0) {
        var_16 = 0;
        uStack_4a = 0;
        var_6 = 0;
        if (-1 < var_14->iDistinct) goto LAB_000eb100;
LAB_000eb028:
        var_13 = 0;
        if ((var_14->pFunc->funcFlags & 0x20) == 0) goto LAB_000eb03c;
LAB_000eb140:
        var_8 = var_5->a;
        if (0 < var_6) {
          var_7 = 0;
          do {
            ppEVar2 = &var_8->pExpr;
            var_7 = var_7 + 1;
            var_8 = var_8 + 1;
            var_10 = (type_7 *)(*(type_6 *)(var_9 + -0x6274))(pParse,*ppEVar2);
            if (var_10 != (type_7 *)0x0) goto LAB_000eb184;
          } while (var_6 != var_7);
        }
        var_10 = pParse->db->pDfltColl;
LAB_000eb184:
        if ((var_11 == 0) && (var_11 = pAggInfo->nAccumulator, var_11 != 0)) {
          var_11 = pParse->nMem + 1;
          pParse->nMem = var_11;
        }
        uVar11 = (*pcStack_48)(pVVar15,0x52,var_11,0,0);
        (*pcVar9)(pVVar15,uVar11,var_10,0xfffffffe);
        var_7 = var_14->iMem;
      }
      else {
        var_6 = var_5->nExpr;
        var_16 = (*pcVar7)(pParse,var_6);
        (*pcVar8)(pParse,var_5,var_16,0,1);
        uStack_4a = (type_14)var_6 & 0xff;
        if (var_14->iDistinct < 0) goto LAB_000eb028;
LAB_000eb100:
        var_13 = pParse->nLabel + -1;
        pParse->nLabel = var_13;
        (*(type_6 *)(var_12 + 0x27d0))(pParse,var_14->iDistinct,var_13,1,var_16);
        if ((var_14->pFunc->funcFlags & 0x20) != 0) goto LAB_000eb140;
LAB_000eb03c:
        var_7 = var_14->iMem;
      }
      (*pcStack_48)(pVVar15,0x9a,0,var_16,var_7);
      (*pcVar6)(pVVar15,var_14->pFunc,0xfffffff8);
      if (0 < pVVar15->nOp) {
        pVVar15->aOp[pVVar15->nOp + -1].p5 = uStack_4a;
      }
      if (var_6 == 1) {
        (*(type_6 *)(var_3 + -0x47a4))(pParse,var_16);
      }
      else if (pParse->nRangeReg < var_6) {
        pParse->nRangeReg = var_6;
        pParse->iRangeReg = var_16;
      }
      if (var_13 == 0) {
        var_14 = var_14 + 1;
        var_15 = var_15 + 1;
        if (pAggInfo->nFunc <= var_15) break;
        goto LAB_000eb0dc;
      }
      var_14 = var_14 + 1;
      (*(type_6 *)(var_2 + 0xd78))(pVVar15,var_13);
      var_15 = var_15 + 1;
    } while (var_15 < pAggInfo->nFunc);
    if (var_11 == 0) goto LAB_000eb358;
LAB_000eb230:
    var_19 = (*pcStack_48)(pVVar15,0x12,var_11,0,0);
    var_17 = pAggInfo->aCol;
    if (pAggInfo->nAccumulator < 1) goto LAB_000eb298;
  }
  var_16 = 0;
  do {
    piVar1 = &var_17->iMem;
    ppEVar2 = &var_17->pExpr;
    var_16 = var_16 + 1;
    var_17 = var_17 + 1;
    var_18(pParse,*ppEVar2,*piVar1);
  } while (var_16 < pAggInfo->nAccumulator);
LAB_000eb298:
  pAggInfo->directMode = '\0';
  if (var_19 != 0) {
    var_16 = pVVar15->nOp;
    if (var_19 < 0) {
      var_19 = var_16 + -1;
      var_20 = pVVar15->db->mallocFailed;
    }
    else {
      var_20 = pVVar15->db->mallocFailed;
    }
    if (var_20 == '\0') {
      pVVar15->aOp[var_19].p2 = var_16;
    }
    else {
      *(int *)(var_21 + 0xfc4) = var_16;
    }
  }
  return;
}


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

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

{
  undefined4 *puVar1;
  undefined4 *puVar2;
  char cVar3;
  undefined *puVar4;
  undefined *puVar5;
  code *pcVar6;
  code *pcVar7;
  code *pcVar8;
  code *pcVar9;
  undefined4 uVar10;
  int iVar11;
  int *piVar12;
  int iVar13;
  int *piVar14;
  int iVar15;
  int iVar16;
  int *piVar17;
  int iVar18;
  int local_res4;
  int local_50;
  ushort uStack_4a;
  code *local_48;
  int local_40;
  
  piVar14 = (int *)param_1[2];
  piVar12 = *(int **)(param_3 + 0x28);
  *param_3 = 1;
  puVar5 = PTR_LAB_00190bc4;
  puVar4 = PTR_LAB_00190bc0;
  if (*(int *)(param_3 + 0x2c) < 1) {
LAB_000eb358:
    if (*(int *)(param_3 + 0x24) == 0) {
LAB_000eb374:
      *param_3 = 0;
      return;
    }
    if (param_2 != 0) {
      local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);
      local_40 = param_2;
      goto LAB_000eb230;
    }
    iVar16 = *(int *)(param_3 + 0x1c);
    local_res4 = 0;
    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb374;
  }
  else {
    local_40 = 0;
    local_50 = 0;
    local_48 = (code *)(PTR_LAB_00190bc0 + 0x10fc);
    pcVar6 = (code *)(PTR_LAB_00190ba4 + -0x24d4);
    pcVar7 = (code *)(PTR_LAB_00190ba4 + -0x4824);
    pcVar8 = (code *)(PTR_LAB_00190c58 + -0x53b0);
    pcVar9 = (code *)(PTR_LAB_00190ba4 + 0x7a3c);
LAB_000eb0dc:
    do {
      piVar17 = *(int **)(*piVar12 + 0x14);
      if (piVar17 == (int *)0x0) {
        iVar16 = 0;
        uStack_4a = 0;
        iVar13 = 0;
        if (-1 < piVar12[3]) goto LAB_000eb100;
LAB_000eb028:
        iVar15 = 0;
        if ((*(uint *)(piVar12[1] + 4) & 0x20) == 0) goto LAB_000eb03c;
LAB_000eb140:
        piVar17 = piVar17 + 1;
        if (0 < iVar13) {
          iVar18 = 0;
          do {
            iVar11 = *piVar17;
            iVar18 = iVar18 + 1;
            piVar17 = piVar17 + 5;
            iVar11 = (*(code *)(puVar5 + -0x6274))(param_1,iVar11);
            if (iVar11 != 0) goto LAB_000eb184;
          } while (iVar13 != iVar18);
        }
        iVar11 = *(int *)(*param_1 + 8);
LAB_000eb184:
        if ((local_40 == 0) && (local_40 = *(int *)(param_3 + 0x24), local_40 != 0)) {
          local_40 = param_1[0xb] + 1;
          param_1[0xb] = local_40;
        }
        uVar10 = (*local_48)(piVar14,0x52,local_40,0,0);
        (*pcVar9)(piVar14,uVar10,iVar11,0xfffffffe);
        iVar18 = piVar12[2];
      }
      else {
        iVar13 = *piVar17;
        iVar16 = (*pcVar7)(param_1,iVar13);
        (*pcVar8)(param_1,piVar17,iVar16,0,1);
        uStack_4a = (ushort)iVar13 & 0xff;
        if (piVar12[3] < 0) goto LAB_000eb028;
LAB_000eb100:
        iVar15 = param_1[0xe] + -1;
        param_1[0xe] = iVar15;
        (*(code *)(puVar4 + 0x27d0))(param_1,piVar12[3],iVar15,1,iVar16);
        if ((*(uint *)(piVar12[1] + 4) & 0x20) != 0) goto LAB_000eb140;
LAB_000eb03c:
        iVar18 = piVar12[2];
      }
      (*local_48)(piVar14,0x9a,0,iVar16,iVar18);
      (*pcVar6)(piVar14,piVar12[1],0xfffffff8);
      if (0 < piVar14[0x1b]) {
        *(ushort *)(piVar14[0x1a] + piVar14[0x1b] * 0x18 + -0x16) = uStack_4a;
      }
      if (iVar13 == 1) {
        (*(code *)(PTR_LAB_00190ba4 + -0x47a4))(param_1,iVar16);
      }
      else if (param_1[7] < iVar13) {
        param_1[7] = iVar13;
        param_1[8] = iVar16;
      }
      if (iVar15 == 0) {
        piVar12 = piVar12 + 4;
        local_50 = local_50 + 1;
        if (*(int *)(param_3 + 0x2c) <= local_50) break;
        goto LAB_000eb0dc;
      }
      piVar12 = piVar12 + 4;
      (*(code *)(PTR_LAB_00190bc0 + 0xd78))(piVar14,iVar15);
      local_50 = local_50 + 1;
    } while (local_50 < *(int *)(param_3 + 0x2c));
    if (local_40 == 0) goto LAB_000eb358;
LAB_000eb230:
    local_res4 = (*local_48)(piVar14,0x12,local_40,0,0);
    iVar16 = *(int *)(param_3 + 0x1c);
    if (*(int *)(param_3 + 0x24) < 1) goto LAB_000eb298;
  }
  iVar13 = 0;
  do {
    puVar1 = (undefined4 *)(iVar16 + 0x10);
    puVar2 = (undefined4 *)(iVar16 + 0x14);
    iVar13 = iVar13 + 1;
    iVar16 = iVar16 + 0x18;
    FUN_000e8324(param_1,*puVar2,*puVar1);
  } while (iVar13 < *(int *)(param_3 + 0x24));
LAB_000eb298:
  *param_3 = 0;
  if (local_res4 != 0) {
    iVar16 = piVar14[0x1b];
    if (local_res4 < 0) {
      local_res4 = iVar16 + -1;
      cVar3 = *(char *)(*piVar14 + 0x51);
    }
    else {
      cVar3 = *(char *)(*piVar14 + 0x51);
    }
    if (cVar3 == '\0') {
      *(int *)(piVar14[0x1a] + local_res4 * 0x18 + 8) = iVar16;
    }
    else {
      *(int *)(PTR_DAT_00190948 + 0xfc4) = iVar16;
    }
  }
  return;
}

