
int clearDatabasePage(BtShared *pBt,Pgno pgno,int freePageFlag,int *pnChange)

{
  ushort uVar1;
  PgHdr *pPg;
  int iVar2;
  uint uVar3;
  uint uVar4;
  PgHdr **ppPVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  undefined4 uVar10;
  uchar *pBuf;
  BtCursor *pCur;
  CellInfo *pInfo;
  int *unaff_s1;
  int iVar11;
  int unaff_s2;
  int iVar12;
  void *pvVar13;
  int iVar14;
  int iVar15;
  int *unaff_s4;
  PgHdr **ppPVar16;
  undefined4 unaff_s5;
  code *unaff_s6;
  undefined4 *puVar17;
  code *unaff_s7;
  int in_t9;
  code *pcVar18;
  uint unaff_s8;
  code *pcVar19;
  uint uVar20;
  int iStack_dc;
  PgHdr *pPStack_d8;
  BtCursor *pBStack_d4;
  int iStack_d0;
  CellInfo *pCStack_cc;
  void *pvStack_c8;
  uint uStack_c4;
  PgHdr **ppPStack_c0;
  undefined4 uStack_bc;
  code *pcStack_b8;
  code *pcStack_b4;
  uint uStack_b0;
  code *pcStack_ac;
  code *pcStack_98;
  PgHdr *pPStack_90;
  int iStack_8c;
  int iStack_88;
  int *piStack_84;
  int iStack_80;
  BtShared *pBStack_7c;
  int *piStack_78;
  code *pcStack_74;
  undefined4 uStack_60;
  int iStack_58;
  MemPage *pPage;
  int rc;
  CellInfo info;
  
  iStack_58 = in_t9 + 0xc65e0;
  iVar2 = **(int **)(&LAB_000beb8c + in_t9);
  if (pBt->nPage < pgno) {
    iStack_88 = (*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x3b28))(0x119d6);
    pInfo = (CellInfo *)freePageFlag;
  }
  else {
    uStack_60 = 0;
    pInfo = (CellInfo *)&pPage;
    rc = (*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x46c4))();
    iStack_88 = rc;
    unaff_s4 = pnChange;
    if (rc == 0) {
      if (pPage->bBusy == '\0') {
        pPage->bBusy = '\x01';
        uVar3 = (uint)pPage->nCell;
        unaff_s8 = (uint)pPage->hdrOffset;
        if (uVar3 != 0) {
          unaff_s2 = 0;
          unaff_s7 = (code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220);
          unaff_s6 = (code *)(*(int *)(iStack_58 + -0x7d6c) + 0x1340);
          unaff_s5 = *(undefined4 *)(iStack_58 + -0x7d6c);
          iVar11 = 0;
          do {
            rc = 0;
            unaff_s1 = (int *)(pPage->aData +
                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage));
            if (pPage->leaf == '\0') {
              pgno = (*unaff_s7)(unaff_s1);
              pInfo = (CellInfo *)0x1;
              rc = (*unaff_s6)(pBt,pgno,1,pnChange);
              if (rc != 0) goto LAB_000d1454;
            }
            rc = 0;
            pInfo = &info;
            pgno = (Pgno)unaff_s1;
            rc = clearCell(pPage,(uchar *)unaff_s1,pInfo);
            if (rc != 0) goto LAB_000d1454;
            iVar11 = iVar11 + 1;
            uVar3 = (uint)pPage->nCell;
            unaff_s2 = unaff_s2 + 2;
          } while (iVar11 < (int)uVar3);
        }
        if (pPage->leaf == '\0') {
          pgno = (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220))(pPage->aData + unaff_s8 + 8);
          pInfo = (CellInfo *)0x1;
          rc = clearDatabasePage(pBt,pgno,1,pnChange);
          if (rc != 0) goto LAB_000d1454;
        }
        else if (pnChange != (int *)0x0) {
          *pnChange = *pnChange + uVar3;
        }
        if (freePageFlag == 0) {
          rc = sqlite3PagerWrite(pPage->pDbPage);
          if (rc == 0) {
            pgno = pPage->aData[unaff_s8] | 8;
            (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))();
          }
        }
        else {
          pgno = (Pgno)&rc;
          freePage(pPage,(int *)pgno);
        }
      }
      else {
        rc = (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28))(0x119db);
      }
LAB_000d1454:
      pPage->bBusy = '\0';
      (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x5aac))(pPage);
      iStack_88 = rc;
    }
  }
  if (iVar2 == **(int **)(iStack_58 + -0x7a54)) {
    return iStack_88;
  }
  pcVar18 = *(code **)(iStack_58 + -0x7a80);
  pcVar19 = dbpageUpdate;
  (*pcVar18)();
  pcStack_98 = pcVar18 + 0xc62b8;
  iStack_8c = **(int **)(pcVar18 + 0xbe864);
  pPStack_90 = (PgHdr *)0x0;
  piStack_84 = unaff_s1;
  iStack_80 = unaff_s2;
  pBStack_7c = pBt;
  piStack_78 = unaff_s4;
  pcStack_74 = pcVar19;
  if (*(int *)(*(int *)(iVar2 + 0xc) + 0x24) << 3 < 0) {
    iVar11 = *(int *)(pcVar18 + 0xbe2f4) + -0x4564;
LAB_000d187c:
    (**(code **)(pcStack_98 + -0x7fa8))(*(undefined4 *)(iVar2 + 8));
                    /* WARNING: Subroutine does not return */
    sqlite3_mprintf((char *)(*(int *)(pcStack_98 + -0x7fc4) + -0x60a0),iVar11);
  }
  if ((int *)pgno == (int *)0x1) {
    iVar11 = *(int *)(pcVar18 + 0xbe2f4) + -0x4558;
    goto LAB_000d187c;
  }
  pcVar18 = *(code **)(pcVar18 + 0xbe318);
  uVar3 = (*pcVar18)(*(undefined4 *)&pInfo->nKey);
  uVar4 = (*pcVar18)((int)pInfo->nKey);
  if (uVar3 != uVar4) {
    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4538;
    goto LAB_000d187c;
  }
  uVar10._0_2_ = pInfo->nLocal;
  uVar10._2_2_ = pInfo->nSize;
  iVar11 = (**(code **)(pcStack_98 + -0x7fa4))(uVar10);
  if (iVar11 == 0) {
    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4548;
    goto LAB_000d187c;
  }
  iVar12 = *(int *)(iVar2 + 0xc);
  iVar11 = (*(code *)(*(int *)(pcStack_98 + -0x7d64) + -0x6d2c))(iVar12,iVar11);
  if (iVar11 < 0) {
    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4548;
    goto LAB_000d187c;
  }
  if (uVar3 == 0) {
    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;
    goto LAB_000d187c;
  }
  pvVar13 = *(void **)(*(int *)(iVar12 + 0x10) + iVar11 * 0x10 + 4);
  if (pvVar13 == (void *)0x0) {
    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;
    goto LAB_000d187c;
  }
  if (*(uint *)(*(int *)((int)pvVar13 + 4) + 0x2c) < uVar3) {
    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;
    goto LAB_000d187c;
  }
  if (*(char *)((*(ushort *)(pInfo->nPayload + 8) & 0x1f) + *(int *)(pcStack_98 + -0x7fc4) + 0x65d0)
      != '\x04') {
    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4574;
    goto LAB_000d187c;
  }
  ppPVar16 = *(PgHdr ***)(*(int *)((int)pvVar13 + 4) + 0x20);
  ppPVar5 = (PgHdr **)(**(code **)(pcStack_98 + -0x7f60))();
  iVar11 = 0;
  if (ppPVar5 != ppPVar16) {
    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4574;
    goto LAB_000d187c;
  }
  ppPVar5 = &pPStack_90;
  uVar4 = uVar3;
  iVar2 = (*(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x491c))
                    (**(undefined4 **)((int)pvVar13 + 4),uVar3,ppPVar5,0);
  if ((iVar2 == 0) && (iVar2 = sqlite3PagerWrite(pPStack_90), iVar2 == 0)) {
    pvVar13 = pPStack_90->pData;
    uVar4 = (**(code **)(pcStack_98 + -0x7f5c))(pInfo->nPayload);
    ppPVar5 = ppPVar16;
    (**(code **)(pcStack_98 + -0x7a4c))(pvVar13);
  }
  (*(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x49ec))(pPStack_90);
  if (iStack_8c == **(int **)(pcStack_98 + -0x7a54)) {
    return iVar2;
  }
  pcVar18 = *(code **)(pcStack_98 + -0x7a80);
  pcVar19 = accessPayload;
  iVar12 = iStack_8c;
  (*pcVar18)();
  pBStack_d4 = (BtCursor *)**(undefined4 **)(pcVar18 + 0xbe590);
  iVar15 = *(int *)(iVar12 + 0x74);
  puVar17 = *(undefined4 **)(iVar12 + 0x14);
  iStack_d0 = iVar2;
  pCStack_cc = pInfo;
  pvStack_c8 = pvVar13;
  uStack_c4 = uVar3;
  ppPStack_c0 = ppPVar16;
  uStack_bc = unaff_s5;
  pcStack_b8 = unaff_s6;
  pcStack_b4 = unaff_s7;
  uStack_b0 = unaff_s8;
  pcStack_ac = pcVar19;
  (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x5c00))();
  iVar2 = *(int *)(iVar12 + 0x28);
  uVar3 = (uint)*(ushort *)(iVar12 + 0x30);
  if (puVar17[9] - uVar3 < (uint)(iVar2 - *(int *)(iVar15 + 0x38))) {
    iVar15 = (*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))(0x108be);
    goto LAB_000d1a60;
  }
  if (uVar4 < uVar3) {
    ppPVar16 = ppPVar5;
    if (uVar3 < uVar4 + (int)ppPVar5) {
      ppPVar16 = (PgHdr **)(uVar3 - uVar4);
    }
    if (pcStack_98 == (code *)0x0) {
      (**(code **)(pcVar18 + 0xbe598))(iVar11,iVar2 + uVar4,ppPVar16);
    }
    else {
      iVar15 = sqlite3PagerWrite(*(PgHdr **)(iVar15 + 0x48));
      if (iVar15 != 0) goto LAB_000d1a60;
      (**(code **)(pcVar18 + 0xbe598))(iVar2 + uVar4,iVar11,ppPVar16);
    }
    iVar11 = iVar11 + (int)ppPVar16;
    ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);
    uVar4 = 0;
  }
  else {
    uVar4 = uVar4 - uVar3;
  }
  iVar15 = 0;
  if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;
  iVar15 = puVar17[9];
  uVar1 = *(ushort *)(iVar12 + 0x30);
  iStack_dc = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x2220))(iVar2 + (uint)uVar1);
  uVar3 = iVar15 - 4;
  if ((*(byte *)(iVar12 + 1) & 4) == 0) {
    if (uVar3 == 0) {
      trap(7);
    }
    uVar20 = ((*(int *)(iVar12 + 0x2c) + -1 + uVar3) - (uint)uVar1) / uVar3;
    if ((*(int *)(iVar12 + 0xc) == 0) ||
       (iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x1030))(), iVar2 < (int)(uVar20 << 2))) {
      iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar12 + 0xc));
      if (iVar2 == 0) {
        iVar15 = 7;
        goto LAB_000d1a60;
      }
      *(int *)(iVar12 + 0xc) = iVar2;
    }
    (**(code **)(pcVar18 + 0xbe4c4))(*(undefined4 *)(iVar12 + 0xc),0,uVar20 << 2);
    *(byte *)(iVar12 + 1) = *(byte *)(iVar12 + 1) | 4;
LAB_000d1bac:
    uVar20 = 0;
    if (iStack_dc != 0) goto LAB_000d1bb8;
  }
  else {
    if (uVar3 == 0) {
      trap(7);
    }
    uVar20 = uVar4 / uVar3;
    iVar2 = *(int *)(*(int *)(iVar12 + 0xc) + uVar20 * 4);
    if (iVar2 == 0) goto LAB_000d1bac;
    if (uVar3 == 0) {
      trap(7);
    }
    uVar4 = uVar4 % uVar3;
    iStack_dc = iVar2;
LAB_000d1bb8:
    iVar14 = uVar20 << 2;
    iVar2 = *(int *)(pcVar18 + 0xbe21c);
    iVar6 = *(int *)(pcVar18 + 0xbe21c);
    iVar7 = *(int *)(pcVar18 + 0xbe21c);
    iVar8 = *(int *)(pcVar18 + 0xbe2b8);
    do {
      *(int *)(*(int *)(iVar12 + 0xc) + iVar14) = iStack_dc;
      if (uVar4 < uVar3) {
        ppPVar16 = ppPVar5;
        if (uVar3 < uVar4 + (int)ppPVar5) {
          ppPVar16 = (PgHdr **)(uVar3 - uVar4);
        }
        if (pcStack_98 == (code *)0x0) {
          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,2);
          if (iVar15 == 0) {
            pvVar13 = pPStack_d8->pData;
            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);
            (**(code **)(pcVar18 + 0xbe598))(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16);
            goto LAB_000d1dcc;
          }
        }
        else {
          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,0);
          pPg = pPStack_d8;
          if (iVar15 == 0) {
            pvVar13 = pPStack_d8->pData;
            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);
            iVar15 = sqlite3PagerWrite(pPg);
            if (iVar15 == 0) {
              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);
            }
LAB_000d1dcc:
            (*(code *)(iVar7 + 0x49ec))(pPStack_d8);
            uVar4 = 0;
          }
        }
        ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);
        iVar11 = iVar11 + (int)ppPVar16;
        if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;
      }
      else {
        iVar9 = *(int *)(*(int *)(iVar12 + 0xc) + iVar14 + 4);
        iVar15 = 0;
        if (iVar9 == 0) {
          iVar15 = (*(code *)(iVar8 + 0x43f4))(puVar17,iStack_dc,0,&iStack_dc);
          iVar9 = iStack_dc;
        }
        iStack_dc = iVar9;
        uVar4 = uVar4 - uVar3;
      }
      if (iVar15 != 0) goto LAB_000d1a60;
      iVar14 = iVar14 + 4;
    } while (iStack_dc != 0);
    if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;
  }
  iVar15 = (*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))(0x1094f);
LAB_000d1a60:
  if (pBStack_d4 != (BtCursor *)**(int **)(pcVar18 + 0xbe590)) {
    pcVar18 = *(code **)(pcVar18 + 0xbe564);
    pCur = pBStack_d4;
    (*pcVar18)();
    if (pCur->curIntKey == '\0') {
      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();
      uVar3 = (pCur->info).nPayload;
      *(undefined4 *)&pCur->nKey = 0;
      *(uint *)((int)&pCur->nKey + 4) = uVar3;
      pBuf = (uchar *)(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x1068))(uVar3 + 0x11 < uVar3);
      if (pBuf == (uchar *)0x0) {
        iVar2 = 7;
      }
      else {
        iVar2 = accessPayload(pCur,0,(u32)pCur->nKey,pBuf,0);
        if (iVar2 == 0) {
          (**(code **)(pcVar18 + 0xbdfe4))(pBuf + (int)pCur->nKey,0,0x11);
          pCur->pKey = pBuf;
        }
        else {
          (**(code **)(pcVar18 + 0xbdb5c))(pBuf);
        }
      }
    }
    else {
      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();
      uVar10 = *(undefined4 *)&(pCur->info).nKey;
      *(int *)((int)&pCur->nKey + 4) = (int)(pCur->info).nKey;
      *(undefined4 *)&pCur->nKey = uVar10;
      iVar2 = 0;
    }
    return iVar2;
  }
  return iVar15;
}



int FUN_000d1340(int *param_1,int *param_2,int *param_3,int *param_4)

{
  ushort uVar1;
  uint uVar2;
  int *piVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int *piVar11;
  int *piVar12;
  int *unaff_s1;
  code *unaff_s2;
  code *pcVar13;
  int iVar14;
  int iVar15;
  int *unaff_s4;
  int *piVar16;
  undefined *unaff_s5;
  int *piVar17;
  uint uVar18;
  code *unaff_s6;
  undefined4 *puVar19;
  code *unaff_s7;
  undefined *puVar20;
  uint unaff_s8;
  undefined4 uVar21;
  code *pcVar22;
  uint uVar23;
  int iStack_dc;
  int iStack_d8;
  int iStack_d4;
  int iStack_d0;
  int *piStack_cc;
  code *pcStack_c8;
  int *piStack_c4;
  int *piStack_c0;
  undefined *puStack_bc;
  code *pcStack_b8;
  code *pcStack_b4;
  uint uStack_b0;
  code *pcStack_ac;
  undefined *local_98;
  int local_90;
  int local_8c;
  int local_88;
  int *local_84;
  code *local_80;
  int *local_7c;
  int *local_78;
  undefined4 local_74;
  undefined4 local_60;
  int local_50;
  int local_4c;
  int aiStack_48 [7];
  int local_2c;
  
  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;
  if ((int *)param_1[0xb] < param_2) {
    local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);
    piVar11 = param_3;
    piVar12 = param_4;
  }
  else {
    local_60 = 0;
    piVar12 = (int *)0x0;
    piVar11 = &local_50;
    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();
    local_88 = local_4c;
    unaff_s4 = param_4;
    if (local_4c == 0) {
      if (*(char *)(local_50 + 1) == '\0') {
        *(undefined1 *)(local_50 + 1) = 1;
        puVar20 = PTR_LAB_0018fbb4;
        uVar2 = (uint)*(ushort *)(local_50 + 0x16);
        unaff_s8 = (uint)*(byte *)(local_50 + 9);
        if (uVar2 != 0) {
          unaff_s2 = (code *)0x0;
          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);
          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);
          iVar4 = 0;
          do {
            local_4c = 0;
            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +
                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &
                                    *(ushort *)(local_50 + 0x18)));
            unaff_s5 = puVar20;
            if (*(char *)(local_50 + 8) == '\0') {
              param_2 = (int *)(*unaff_s7)(unaff_s1);
              piVar11 = (int *)0x1;
              piVar12 = param_4;
              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);
              if (local_4c != 0) goto LAB_000d1454;
            }
            local_4c = 0;
            piVar11 = aiStack_48;
            param_2 = unaff_s1;
            local_4c = FUN_000ce738(local_50);
            if (local_4c != 0) goto LAB_000d1454;
            iVar4 = iVar4 + 1;
            uVar2 = (uint)*(ushort *)(local_50 + 0x16);
            unaff_s2 = unaff_s2 + 2;
          } while (iVar4 < (int)uVar2);
        }
        if (*(char *)(local_50 + 8) == '\0') {
          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))
                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);
          piVar11 = (int *)0x1;
          piVar12 = param_4;
          local_4c = FUN_000d1340(param_1,param_2,1,param_4);
          if (local_4c != 0) goto LAB_000d1454;
        }
        else if (param_4 != (int *)0x0) {
          *param_4 = *param_4 + uVar2;
        }
        if (param_3 == (int *)0x0) {
          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));
          if (local_4c == 0) {
            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);
            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();
          }
        }
        else {
          param_2 = &local_4c;
          FUN_000ce9ec(local_50);
        }
      }
      else {
        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);
      }
LAB_000d1454:
      *(undefined1 *)(local_50 + 1) = 0;
      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);
      local_88 = local_4c;
    }
  }
  if (local_2c == *(int *)PTR___stack_chk_guard_0018fecc) {
    return local_88;
  }
  uVar21 = 0xd1668;
  iVar4 = local_2c;
  puVar20 = PTR___stack_chk_fail_0018fea0;
  (*(code *)PTR___stack_chk_fail_0018fea0)();
  local_98 = puVar20 + 0xc62b8;
  local_8c = **(int **)(puVar20 + 0xbe864);
  local_90 = 0;
  piVar16 = piVar11;
  local_84 = unaff_s1;
  local_80 = unaff_s2;
  local_7c = param_1;
  local_78 = unaff_s4;
  local_74 = uVar21;
  if (*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0) {
    piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);
LAB_000d187c:
    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));
    piVar3 = piVar11;
    uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);
    *(undefined4 *)(iVar4 + 8) = uVar21;
    iVar4 = 1;
  }
  else {
    if (param_2 == (int *)0x1) {
      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);
      goto LAB_000d187c;
    }
    pcVar13 = *(code **)(puVar20 + 0xbe318);
    param_1 = (int *)(*pcVar13)(*piVar11);
    piVar3 = (int *)(*pcVar13)(piVar11[1]);
    unaff_s2 = pcVar13;
    if (param_1 != piVar3) {
      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);
      goto LAB_000d187c;
    }
    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);
    if (iVar10 == 0) {
      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);
      goto LAB_000d187c;
    }
    unaff_s2 = *(code **)(iVar4 + 0xc);
    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);
    if (iVar10 < 0) {
      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);
      goto LAB_000d187c;
    }
    if (param_1 == (int *)0x0) {
      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);
      goto LAB_000d187c;
    }
    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);
    if (unaff_s2 == (code *)0x0) {
      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);
      goto LAB_000d187c;
    }
    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {
      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);
      goto LAB_000d187c;
    }
    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=
        '\x04') {
      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);
      goto LAB_000d187c;
    }
    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);
    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();
    piVar12 = (int *)0x0;
    if (piVar3 != unaff_s4) {
      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);
      goto LAB_000d187c;
    }
    piVar16 = &local_90;
    piVar3 = param_1;
    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))
                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);
    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {
      unaff_s2 = *(code **)(local_90 + 4);
      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);
      piVar16 = unaff_s4;
      (**(code **)(local_98 + -0x7a4c))(unaff_s2);
    }
    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);
  }
  if (local_8c == **(int **)(local_98 + -0x7a54)) {
    return iVar4;
  }
  pcVar13 = *(code **)(local_98 + -0x7a80);
  pcVar22 = FUN_000d193c;
  iVar10 = local_8c;
  (*pcVar13)();
  iStack_d4 = **(int **)(pcVar13 + 0xbe590);
  iVar15 = *(int *)(iVar10 + 0x74);
  puVar19 = *(undefined4 **)(iVar10 + 0x14);
  iStack_d0 = iVar4;
  piStack_cc = piVar11;
  pcStack_c8 = unaff_s2;
  piStack_c4 = param_1;
  piStack_c0 = unaff_s4;
  puStack_bc = unaff_s5;
  pcStack_b8 = unaff_s6;
  pcStack_b4 = unaff_s7;
  uStack_b0 = unaff_s8;
  pcStack_ac = pcVar22;
  (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))();
  iVar4 = *(int *)(iVar10 + 0x28);
  piVar11 = (int *)(uint)*(ushort *)(iVar10 + 0x30);
  if ((uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38))) {
    iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);
    goto LAB_000d1a60;
  }
  if (piVar3 < piVar11) {
    piVar17 = piVar16;
    if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {
      piVar17 = (int *)((int)piVar11 - (int)piVar3);
    }
    if (local_98 == (undefined *)0x0) {
      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);
    }
    else {
      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));
      if (iVar15 != 0) goto LAB_000d1a60;
      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);
    }
    piVar12 = (int *)((int)piVar12 + (int)piVar17);
    piVar16 = (int *)((int)piVar16 - (int)piVar17);
    uVar2 = 0;
  }
  else {
    uVar2 = (int)piVar3 - (int)piVar11;
  }
  iVar15 = 0;
  if (piVar16 == (int *)0x0) goto LAB_000d1a60;
  iVar15 = puVar19[9];
  uVar1 = *(ushort *)(iVar10 + 0x30);
  iStack_dc = (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1);
  uVar18 = iVar15 - 4;
  if ((*(byte *)(iVar10 + 1) & 4) == 0) {
    if (uVar18 == 0) {
      trap(7);
    }
    uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;
    if ((*(int *)(iVar10 + 0xc) == 0) ||
       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),
       iVar4 < (int)(uVar23 << 2))) {
      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));
      if (iVar4 == 0) {
        iVar15 = 7;
        goto LAB_000d1a60;
      }
      *(int *)(iVar10 + 0xc) = iVar4;
    }
    (**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);
    *(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;
LAB_000d1bac:
    uVar23 = 0;
    if (iStack_dc != 0) goto LAB_000d1bb8;
  }
  else {
    if (uVar18 == 0) {
      trap(7);
    }
    uVar23 = uVar2 / uVar18;
    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);
    if (iVar4 == 0) goto LAB_000d1bac;
    if (uVar18 == 0) {
      trap(7);
    }
    uVar2 = uVar2 % uVar18;
    iStack_dc = iVar4;
LAB_000d1bb8:
    iVar14 = uVar23 << 2;
    iVar4 = *(int *)(pcVar13 + 0xbe21c);
    iVar5 = *(int *)(pcVar13 + 0xbe21c);
    iVar6 = *(int *)(pcVar13 + 0xbe21c);
    iVar7 = *(int *)(pcVar13 + 0xbe2b8);
    do {
      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;
      if (uVar2 < uVar18) {
        piVar11 = piVar16;
        if (uVar18 < uVar2 + (int)piVar16) {
          piVar11 = (int *)(uVar18 - uVar2);
        }
        if (local_98 == (undefined *)0x0) {
          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);
          if (iVar15 == 0) {
            iVar8 = *(int *)(iStack_d8 + 4);
            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);
            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);
            goto LAB_000d1dcc;
          }
        }
        else {
          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);
          iVar8 = iStack_d8;
          if (iVar15 == 0) {
            iVar9 = *(int *)(iStack_d8 + 4);
            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);
            iVar15 = FUN_000c6d30(iVar8);
            if (iVar15 == 0) {
              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);
            }
LAB_000d1dcc:
            (*(code *)(iVar6 + 0x49ec))(iStack_d8);
            uVar2 = 0;
          }
        }
        piVar16 = (int *)((int)piVar16 - (int)piVar11);
        piVar12 = (int *)((int)piVar12 + (int)piVar11);
        if (piVar16 == (int *)0x0) goto LAB_000d1a60;
      }
      else {
        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);
        iVar15 = 0;
        if (iVar8 == 0) {
          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);
          iVar8 = iStack_dc;
        }
        iStack_dc = iVar8;
        uVar2 = uVar2 - uVar18;
      }
      if (iVar15 != 0) goto LAB_000d1a60;
      iVar14 = iVar14 + 4;
    } while (iStack_dc != 0);
    if (piVar16 == (int *)0x0) goto LAB_000d1a60;
  }
  iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f);
LAB_000d1a60:
  if (iStack_d4 != **(int **)(pcVar13 + 0xbe590)) {
    pcVar13 = *(code **)(pcVar13 + 0xbe564);
    iVar4 = iStack_d4;
    (*pcVar13)();
    if (*(char *)(iVar4 + 0x45) == '\0') {
      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();
      uVar2 = *(uint *)(iVar4 + 0x2c);
      *(undefined4 *)(iVar4 + 0x38) = 0;
      *(uint *)(iVar4 + 0x3c) = uVar2;
      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);
      if (iVar10 == 0) {
        iVar15 = 7;
      }
      else {
        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);
        if (iVar15 == 0) {
          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);
          *(int *)(iVar4 + 0x10) = iVar10;
        }
        else {
          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);
        }
      }
    }
    else {
      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();
      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);
      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);
      iVar15 = 0;
    }
    return iVar15;
  }
  return iVar15;
}


lui gp,0xc
addiu gp,gp,0x65e0
addu gp,gp,t9
addiu sp,sp,-0x70
sw ra,0x6c(sp)
sw s8,0x68(sp)
sw s7,0x64(sp)
sw s6,0x60(sp)
sw s5,0x5c(sp)
sw s4,0x58(sp)
sw s3,0x54(sp)
sw s2,0x50(sp)
sw s1,0x4c(sp)
sw s0,0x48(sp)
sw gp,0x18(sp)
sw a2,0x78(sp)
lw v0,-0x7a54(gp)
lw v0,0x0(v0)
sw v0,0x44(sp)
lw v0,0x2c(a0)
sltu v0,v0,a1
bne v0,zero,0x000d140c
_or s3,a0,zero
or s4,a3,zero
sw zero,0x10(sp)
or a3,zero,zero
addiu a2,sp,0x20
lw t9,-0x7d2c(gp)
addiu t9,t9,0x46c4
jalr t9
_nop
lw gp,0x18(sp)
or s0,v0,zero
bne v0,zero,0x000d1474
_sw v0,0x24(sp)
lw v0,0x20(sp)
lbu v1,0x1(v0)
bne v1,zero,0x000d1430
_li v1,0x1
sb v1,0x1(v0)
lw v1,0x20(sp)
lhu v0,0x16(v1)
blez v0,0x000d156c
_lbu s8,0x9(v1)
or s2,zero,zero
lw s7,-0x7dc8(gp)
addiu s7,s7,0x2220
lw s6,-0x7d6c(gp)
addiu s6,s6,0x1340
b 0x000d14f4
_lw s5,-0x7d6c(gp)
lui a0,0x1
addiu a0,a0,0x19d6
lw t9,-0x7d2c(gp)
addiu t9,t9,0x3b28
jalr t9
_nop
lw gp,0x18(sp)
b 0x000d1474
_or s0,v0,zero
lui a0,0x1
addiu a0,a0,0x19db
lw t9,-0x7d2c(gp)
addiu t9,t9,0x3b28
jalr t9
_nop
lw gp,0x18(sp)
sw v0,0x24(sp)
lw v0,0x20(sp)
sb zero,0x1(v0)
lw a0,0x20(sp)
lw t9,-0x7dc8(gp)
addiu t9,t9,0x5aac
jalr t9
_nop
lw gp,0x18(sp)
lw s0,0x24(sp)
or v0,s0,zero
lw a0,0x44(sp)
lw v1,-0x7a54(gp)
lw v1,0x0(v1)
bne a0,v1,0x000d165c
_lw ra,0x6c(sp)
lw s8,0x68(sp)
lw s7,0x64(sp)
lw s6,0x60(sp)
lw s5,0x5c(sp)
lw s4,0x58(sp)
lw s3,0x54(sp)
lw s2,0x50(sp)
lw s1,0x4c(sp)
lw s0,0x48(sp)
jr ra
_addiu sp,sp,0x70
addiu a2,sp,0x28
or a1,s1,zero
lw a0,0x20(sp)
addiu t9,s5,-0x18c8
bal 0x000ce738
_nop
lw gp,0x18(sp)
bne v0,zero,0x000d1450
_sw v0,0x24(sp)
addiu s0,s0,0x1
lw v1,0x20(sp)
lhu v0,0x16(v1)
slt a0,s0,v0
beq a0,zero,0x000d156c
_addiu s2,s2,0x2
lw v0,0x40(v1)
addu v0,v0,s2
lbu s1,0x0(v0)
sll s1,s1,0x8
lbu v0,0x1(v0)
or s1,s1,v0
lhu v0,0x18(v1)
and v0,s1,v0
lw s1,0x38(v1)
addu s1,s1,v0
lbu v0,0x8(v1)
bne v0,zero,0x000d14bc
_addiu a2,sp,0x28
or a0,s1,zero
or t9,s7,zero
jalr t9
_nop
lw gp,0x18(sp)
or a3,s4,zero
li a2,0x1
or a1,v0,zero
or a0,s3,zero
or t9,s6,zero
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x000d14b8
_sw v0,0x24(sp)
b 0x000d1454
_lw v0,0x20(sp)
lbu a0,0x8(v1)
beq a0,zero,0x000d15bc
_lw t9,-0x7dc8(gp)
beq s4,zero,0x000d158c
_nop
lw v1,0x0(s4)
addu v0,v1,v0
sw v0,0x0(s4)
lw v0,0x78(sp)
beq v0,zero,0x000d160c
_lw t9,-0x7d58(gp)
addiu a1,sp,0x24
lw a0,0x20(sp)
lw t9,-0x7d6c(gp)
addiu t9,t9,-0x1614
bal 0x000ce9ec
_nop
lw gp,0x18(sp)
b 0x000d1454
_lw v0,0x20(sp)
addiu v0,s8,0x8
lw a0,0x38(v1)
addu a0,a0,v0
addiu t9,t9,0x2220
jalr t9
_nop
lw gp,0x18(sp)
or a3,s4,zero
li a2,0x1
or a1,v0,zero
or a0,s3,zero
lw t9,-0x7d6c(gp)
addiu t9,t9,0x1340
bal 0x000d1340
_nop
lw gp,0x18(sp)
beq v0,zero,0x000d158c
_sw v0,0x24(sp)
b 0x000d1454
_lw v0,0x20(sp)
lw v0,0x20(sp)
lw a0,0x48(v0)
addiu t9,t9,0x6d30
bal 0x000c6d30
_nop
lw gp,0x18(sp)
bne v0,zero,0x000d1450
_sw v0,0x24(sp)
lw a0,0x20(sp)
lw v0,0x38(a0)
addu v0,v0,s8
lbu a1,0x0(v0)
ori a1,a1,0x8
lw t9,-0x7d2c(gp)
addiu t9,t9,0x3c90
jalr t9
_nop
lw gp,0x18(sp)
b 0x000d1454
_lw v0,0x20(sp)
lw t9,-0x7a80(gp)
jalr t9
_nop
lui gp,0xc
addiu gp,gp,0x62b8
addu gp,gp,t9
addiu sp,sp,-0x38
sw ra,0x34(sp)
sw s4,0x30(sp)
sw s3,0x2c(sp)
sw s2,0x28(sp)
sw s1,0x24(sp)
sw s0,0x20(sp)
sw gp,0x10(sp)
or s0,a0,zero
lw v0,-0x7a54(gp)
lw v0,0x0(v0)
sw v0,0x1c(sp)
sw zero,0x18(sp)
lw v0,0xc(a0)
lw v0,0x24(v0)
ext v0,v0,0x1c,0x1
bne v0,zero,0x000d1874
_li v0,0x1
beq a1,v0,0x000d18e8
_or s1,a2,zero
lw a0,0x0(a2)
lw s2,-0x7fa0(gp)
or t9,s2,zero
jalr t9
_nop
lw gp,0x10(sp)
or s3,v0,zero
lw a0,0x4(s1)
or t9,s2,zero
jalr t9
_nop
lw gp,0x10(sp)
beq s3,v0,0x000d1708
_lw t9,-0x7fa4(gp)
lw s1,-0x7fc4(gp)
b 0x000d187c
_addiu s1,s1,-0x4538
lw a0,0x10(s1)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x000d18f4
_or a1,v0,zero
lw s2,0xc(s0)
or a0,s2,zero
lw t9,-0x7d64(gp)
addiu t9,t9,-0x6d2c
jalr t9
_nop
lw gp,0x10(sp)
bltz v0,0x000d1900
_nop
beq s3,zero,0x000d190c
_sll v0,v0,0x4
lw v1,0x10(s2)
addu v0,v1,v0
lw s2,0x4(v0)
beq s2,zero,0x000d1918
_nop
lw a1,0x4(s2)
lw v0,0x2c(a1)
sltu v0,v0,s3
bne v0,zero,0x000d1924
_lw v1,-0x7fc4(gp)
lw a0,0xc(s1)
lhu v0,0x8(a0)
andi v0,v0,0x1f
addiu v1,v1,0x65d0
addu v0,v0,v1
lbu v1,0x0(v0)
li v0,0x4
beq v1,v0,0x000d17a4
_lw t9,-0x7f60(gp)
lw s1,-0x7fc4(gp)
b 0x000d187c
_addiu s1,s1,-0x4574
lw s4,0x20(a1)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,s4,0x000d17c8
_or a3,zero,zero
lw s1,-0x7fc4(gp)
b 0x000d187c
_addiu s1,s1,-0x4574
lw v0,0x4(s2)
addiu a2,sp,0x18
or a1,s3,zero
lw a0,0x0(v0)
lw t9,-0x7dc8(gp)
addiu t9,t9,0x491c
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x000d1814
_or s0,v0,zero
lw a0,0x18(sp)
lw t9,-0x7dc8(gp)
addiu t9,t9,0x49ec
jalr t9
_nop
lw gp,0x10(sp)
b 0x000d18b8
_or v0,s0,zero
lw a0,0x18(sp)
lw t9,-0x7d58(gp)
addiu t9,t9,0x6d30
bal 0x000c6d30
_nop
lw gp,0x10(sp)
bne v0,zero,0x000d17f4
_or s0,v0,zero
lw v0,0x18(sp)
lw s2,0x4(v0)
lw a0,0xc(s1)
lw t9,-0x7f5c(gp)
jalr t9
_nop
lw gp,0x10(sp)
or a2,s4,zero
or a1,v0,zero
or a0,s2,zero
lw t9,-0x7a4c(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x000d17f8
_lw a0,0x18(sp)
lw s1,-0x7fc4(gp)
addiu s1,s1,-0x4564
lw a0,0x8(s0)
lw t9,-0x7fa8(gp)
jalr t9
_nop
lw gp,0x10(sp)
or a1,s1,zero
lw a0,-0x7fc4(gp)
addiu a0,a0,-0x60a0
lw t9,-0x7fbc(gp)
bal 0x000bcd54
_nop
lw gp,0x10(sp)
sw v0,0x8(s0)
li s0,0x1
or v0,s0,zero
lw a0,0x1c(sp)
lw v1,-0x7a54(gp)
lw v1,0x0(v1)
bne a0,v1,0x000d1930
_lw ra,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x38
lw s1,-0x7fc4(gp)
b 0x000d187c
_addiu s1,s1,-0x4558
lw s1,-0x7fc4(gp)
b 0x000d187c
_addiu s1,s1,-0x4548
lw s1,-0x7fc4(gp)
b 0x000d187c
_addiu s1,s1,-0x4548
lw s1,-0x7fc4(gp)
b 0x000d187c
_addiu s1,s1,-0x4584
lw s1,-0x7fc4(gp)
b 0x000d187c
_addiu s1,s1,-0x4584
lw s1,-0x7fc4(gp)
b 0x000d187c
_addiu s1,s1,-0x4584
lw t9,-0x7a80(gp)
jalr t9
_nop
(translation_unit "int FUN_000d1340(int *param_1,int *param_2,int *param_3,int *param_4)\n\n{\n  ushort uVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  int *unaff_s1;\n  code *unaff_s2;\n  code *pcVar13;\n  int iVar14;\n  int iVar15;\n  int *unaff_s4;\n  int *piVar16;\n  undefined *unaff_s5;\n  int *piVar17;\n  uint uVar18;\n  code *unaff_s6;\n  undefined4 *puVar19;\n  code *unaff_s7;\n  undefined *puVar20;\n  uint unaff_s8;\n  undefined4 uVar21;\n  code *pcVar22;\n  uint uVar23;\n  int iStack_dc;\n  int iStack_d8;\n  int iStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  code *pcStack_c8;\n  int *piStack_c4;\n  int *piStack_c0;\n  undefined *puStack_bc;\n  code *pcStack_b8;\n  code *pcStack_b4;\n  uint uStack_b0;\n  code *pcStack_ac;\n  undefined *local_98;\n  int local_90;\n  int local_8c;\n  int local_88;\n  int *local_84;\n  code *local_80;\n  int *local_7c;\n  int *local_78;\n  undefined4 local_74;\n  undefined4 local_60;\n  int local_50;\n  int local_4c;\n  int aiStack_48 [7];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  if ((int *)param_1[0xb] < param_2) {\n    local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);\n    piVar11 = param_3;\n    piVar12 = param_4;\n  }\n  else {\n    local_60 = 0;\n    piVar12 = (int *)0x0;\n    piVar11 = &local_50;\n    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();\n    local_88 = local_4c;\n    unaff_s4 = param_4;\n    if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_0018fecc) {\n    return local_88;\n  }\n  uVar21 = 0xd1668;\n  iVar4 = local_2c;\n  puVar20 = PTR___stack_chk_fail_0018fea0;\n  (*(code *)PTR___stack_chk_fail_0018fea0)();\n  local_98 = puVar20 + 0xc62b8;\n  local_8c = **(int **)(puVar20 + 0xbe864);\n  local_90 = 0;\n  piVar16 = piVar11;\n  local_84 = unaff_s1;\n  local_80 = unaff_s2;\n  local_7c = param_1;\n  local_78 = unaff_s4;\n  local_74 = uVar21;\n  if (*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0) {\n    piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);\nLAB_000d187c:\n    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));\n    piVar3 = piVar11;\n    uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);\n    *(undefined4 *)(iVar4 + 8) = uVar21;\n    iVar4 = 1;\n  }\n  else {\n    if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }\n    pcVar13 = *(code **)(puVar20 + 0xbe318);\n    param_1 = (int *)(*pcVar13)(*piVar11);\n    piVar3 = (int *)(*pcVar13)(piVar11[1]);\n    unaff_s2 = pcVar13;\n    if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }\n    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);\n    if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(iVar4 + 0xc);\n    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);\n    if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);\n    if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);\n    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();\n    piVar12 = (int *)0x0;\n    if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    piVar16 = &local_90;\n    piVar3 = param_1;\n    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);\n    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }\n    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);\n  }\n  if (local_8c == **(int **)(local_98 + -0x7a54)) {\n    return iVar4;\n  }\n  pcVar13 = *(code **)(local_98 + -0x7a80);\n  pcVar22 = FUN_000d193c;\n  iVar10 = local_8c;\n  (*pcVar13)();\n  iStack_d4 = **(int **)(pcVar13 + 0xbe590);\n  iVar15 = *(int *)(iVar10 + 0x74);\n  puVar19 = *(undefined4 **)(iVar10 + 0x14);\n  iStack_d0 = iVar4;\n  piStack_cc = piVar11;\n  pcStack_c8 = unaff_s2;\n  piStack_c4 = param_1;\n  piStack_c0 = unaff_s4;\n  puStack_bc = unaff_s5;\n  pcStack_b8 = unaff_s6;\n  pcStack_b4 = unaff_s7;\n  uStack_b0 = unaff_s8;\n  pcStack_ac = pcVar22;\n  (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))();\n  iVar4 = *(int *)(iVar10 + 0x28);\n  piVar11 = (int *)(uint)*(ushort *)(iVar10 + 0x30);\n  if ((uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38))) {\n    iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }\n  if (piVar3 < piVar11) {\n    piVar17 = piVar16;\n    if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }\n    if (local_98 == (undefined *)0x0) {\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }\n    else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }\n    piVar12 = (int *)((int)piVar12 + (int)piVar17);\n    piVar16 = (int *)((int)piVar16 - (int)piVar17);\n    uVar2 = 0;\n  }\n  else {\n    uVar2 = (int)piVar3 - (int)piVar11;\n  }\n  iVar15 = 0;\n  if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  iVar15 = puVar19[9];\n  uVar1 = *(ushort *)(iVar10 + 0x30);\n  iStack_dc = (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1);\n  uVar18 = iVar15 - 4;\n  if ((*(byte *)(iVar10 + 1) & 4) == 0) {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;\n    if ((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))) {\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }\n    (**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);\n    *(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;\nLAB_000d1bac:\n    uVar23 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }\n  else {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = uVar2 / uVar18;\n    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);\n    if (iVar4 == 0) goto LAB_000d1bac;\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar2 = uVar2 % uVar18;\n    iStack_dc = iVar4;\nLAB_000d1bb8:\n    iVar14 = uVar23 << 2;\n    iVar4 = *(int *)(pcVar13 + 0xbe21c);\n    iVar5 = *(int *)(pcVar13 + 0xbe21c);\n    iVar6 = *(int *)(pcVar13 + 0xbe21c);\n    iVar7 = *(int *)(pcVar13 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  }\n  iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f);\nLAB_000d1a60:\n  if (iStack_d4 != **(int **)(pcVar13 + 0xbe590)) {\n    pcVar13 = *(code **)(pcVar13 + 0xbe564);\n    iVar4 = iStack_d4;\n    (*pcVar13)();\n    if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }\n    return iVar15;\n  }\n  return iVar15;\n}\n\n" (function_definition "int FUN_000d1340(int *param_1,int *param_2,int *param_3,int *param_4)\n\n{\n  ushort uVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  int *unaff_s1;\n  code *unaff_s2;\n  code *pcVar13;\n  int iVar14;\n  int iVar15;\n  int *unaff_s4;\n  int *piVar16;\n  undefined *unaff_s5;\n  int *piVar17;\n  uint uVar18;\n  code *unaff_s6;\n  undefined4 *puVar19;\n  code *unaff_s7;\n  undefined *puVar20;\n  uint unaff_s8;\n  undefined4 uVar21;\n  code *pcVar22;\n  uint uVar23;\n  int iStack_dc;\n  int iStack_d8;\n  int iStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  code *pcStack_c8;\n  int *piStack_c4;\n  int *piStack_c0;\n  undefined *puStack_bc;\n  code *pcStack_b8;\n  code *pcStack_b4;\n  uint uStack_b0;\n  code *pcStack_ac;\n  undefined *local_98;\n  int local_90;\n  int local_8c;\n  int local_88;\n  int *local_84;\n  code *local_80;\n  int *local_7c;\n  int *local_78;\n  undefined4 local_74;\n  undefined4 local_60;\n  int local_50;\n  int local_4c;\n  int aiStack_48 [7];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  if ((int *)param_1[0xb] < param_2) {\n    local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);\n    piVar11 = param_3;\n    piVar12 = param_4;\n  }\n  else {\n    local_60 = 0;\n    piVar12 = (int *)0x0;\n    piVar11 = &local_50;\n    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();\n    local_88 = local_4c;\n    unaff_s4 = param_4;\n    if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_0018fecc) {\n    return local_88;\n  }\n  uVar21 = 0xd1668;\n  iVar4 = local_2c;\n  puVar20 = PTR___stack_chk_fail_0018fea0;\n  (*(code *)PTR___stack_chk_fail_0018fea0)();\n  local_98 = puVar20 + 0xc62b8;\n  local_8c = **(int **)(puVar20 + 0xbe864);\n  local_90 = 0;\n  piVar16 = piVar11;\n  local_84 = unaff_s1;\n  local_80 = unaff_s2;\n  local_7c = param_1;\n  local_78 = unaff_s4;\n  local_74 = uVar21;\n  if (*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0) {\n    piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);\nLAB_000d187c:\n    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));\n    piVar3 = piVar11;\n    uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);\n    *(undefined4 *)(iVar4 + 8) = uVar21;\n    iVar4 = 1;\n  }\n  else {\n    if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }\n    pcVar13 = *(code **)(puVar20 + 0xbe318);\n    param_1 = (int *)(*pcVar13)(*piVar11);\n    piVar3 = (int *)(*pcVar13)(piVar11[1]);\n    unaff_s2 = pcVar13;\n    if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }\n    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);\n    if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(iVar4 + 0xc);\n    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);\n    if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);\n    if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);\n    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();\n    piVar12 = (int *)0x0;\n    if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    piVar16 = &local_90;\n    piVar3 = param_1;\n    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);\n    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }\n    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);\n  }\n  if (local_8c == **(int **)(local_98 + -0x7a54)) {\n    return iVar4;\n  }\n  pcVar13 = *(code **)(local_98 + -0x7a80);\n  pcVar22 = FUN_000d193c;\n  iVar10 = local_8c;\n  (*pcVar13)();\n  iStack_d4 = **(int **)(pcVar13 + 0xbe590);\n  iVar15 = *(int *)(iVar10 + 0x74);\n  puVar19 = *(undefined4 **)(iVar10 + 0x14);\n  iStack_d0 = iVar4;\n  piStack_cc = piVar11;\n  pcStack_c8 = unaff_s2;\n  piStack_c4 = param_1;\n  piStack_c0 = unaff_s4;\n  puStack_bc = unaff_s5;\n  pcStack_b8 = unaff_s6;\n  pcStack_b4 = unaff_s7;\n  uStack_b0 = unaff_s8;\n  pcStack_ac = pcVar22;\n  (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))();\n  iVar4 = *(int *)(iVar10 + 0x28);\n  piVar11 = (int *)(uint)*(ushort *)(iVar10 + 0x30);\n  if ((uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38))) {\n    iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }\n  if (piVar3 < piVar11) {\n    piVar17 = piVar16;\n    if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }\n    if (local_98 == (undefined *)0x0) {\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }\n    else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }\n    piVar12 = (int *)((int)piVar12 + (int)piVar17);\n    piVar16 = (int *)((int)piVar16 - (int)piVar17);\n    uVar2 = 0;\n  }\n  else {\n    uVar2 = (int)piVar3 - (int)piVar11;\n  }\n  iVar15 = 0;\n  if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  iVar15 = puVar19[9];\n  uVar1 = *(ushort *)(iVar10 + 0x30);\n  iStack_dc = (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1);\n  uVar18 = iVar15 - 4;\n  if ((*(byte *)(iVar10 + 1) & 4) == 0) {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;\n    if ((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))) {\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }\n    (**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);\n    *(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;\nLAB_000d1bac:\n    uVar23 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }\n  else {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = uVar2 / uVar18;\n    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);\n    if (iVar4 == 0) goto LAB_000d1bac;\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar2 = uVar2 % uVar18;\n    iStack_dc = iVar4;\nLAB_000d1bb8:\n    iVar14 = uVar23 << 2;\n    iVar4 = *(int *)(pcVar13 + 0xbe21c);\n    iVar5 = *(int *)(pcVar13 + 0xbe21c);\n    iVar6 = *(int *)(pcVar13 + 0xbe21c);\n    iVar7 = *(int *)(pcVar13 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  }\n  iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f);\nLAB_000d1a60:\n  if (iStack_d4 != **(int **)(pcVar13 + 0xbe590)) {\n    pcVar13 = *(code **)(pcVar13 + 0xbe564);\n    iVar4 = iStack_d4;\n    (*pcVar13)();\n    if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }\n    return iVar15;\n  }\n  return iVar15;\n}" primitive_type (function_declarator "FUN_000d1340(int *param_1,int *param_2,int *param_3,int *param_4)" identifier (parameter_list "(int *param_1,int *param_2,int *param_3,int *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  int *unaff_s1;\n  code *unaff_s2;\n  code *pcVar13;\n  int iVar14;\n  int iVar15;\n  int *unaff_s4;\n  int *piVar16;\n  undefined *unaff_s5;\n  int *piVar17;\n  uint uVar18;\n  code *unaff_s6;\n  undefined4 *puVar19;\n  code *unaff_s7;\n  undefined *puVar20;\n  uint unaff_s8;\n  undefined4 uVar21;\n  code *pcVar22;\n  uint uVar23;\n  int iStack_dc;\n  int iStack_d8;\n  int iStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  code *pcStack_c8;\n  int *piStack_c4;\n  int *piStack_c0;\n  undefined *puStack_bc;\n  code *pcStack_b8;\n  code *pcStack_b4;\n  uint uStack_b0;\n  code *pcStack_ac;\n  undefined *local_98;\n  int local_90;\n  int local_8c;\n  int local_88;\n  int *local_84;\n  code *local_80;\n  int *local_7c;\n  int *local_78;\n  undefined4 local_74;\n  undefined4 local_60;\n  int local_50;\n  int local_4c;\n  int aiStack_48 [7];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  if ((int *)param_1[0xb] < param_2) {\n    local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);\n    piVar11 = param_3;\n    piVar12 = param_4;\n  }\n  else {\n    local_60 = 0;\n    piVar12 = (int *)0x0;\n    piVar11 = &local_50;\n    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();\n    local_88 = local_4c;\n    unaff_s4 = param_4;\n    if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_0018fecc) {\n    return local_88;\n  }\n  uVar21 = 0xd1668;\n  iVar4 = local_2c;\n  puVar20 = PTR___stack_chk_fail_0018fea0;\n  (*(code *)PTR___stack_chk_fail_0018fea0)();\n  local_98 = puVar20 + 0xc62b8;\n  local_8c = **(int **)(puVar20 + 0xbe864);\n  local_90 = 0;\n  piVar16 = piVar11;\n  local_84 = unaff_s1;\n  local_80 = unaff_s2;\n  local_7c = param_1;\n  local_78 = unaff_s4;\n  local_74 = uVar21;\n  if (*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0) {\n    piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);\nLAB_000d187c:\n    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));\n    piVar3 = piVar11;\n    uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);\n    *(undefined4 *)(iVar4 + 8) = uVar21;\n    iVar4 = 1;\n  }\n  else {\n    if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }\n    pcVar13 = *(code **)(puVar20 + 0xbe318);\n    param_1 = (int *)(*pcVar13)(*piVar11);\n    piVar3 = (int *)(*pcVar13)(piVar11[1]);\n    unaff_s2 = pcVar13;\n    if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }\n    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);\n    if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(iVar4 + 0xc);\n    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);\n    if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);\n    if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);\n    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();\n    piVar12 = (int *)0x0;\n    if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    piVar16 = &local_90;\n    piVar3 = param_1;\n    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);\n    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }\n    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);\n  }\n  if (local_8c == **(int **)(local_98 + -0x7a54)) {\n    return iVar4;\n  }\n  pcVar13 = *(code **)(local_98 + -0x7a80);\n  pcVar22 = FUN_000d193c;\n  iVar10 = local_8c;\n  (*pcVar13)();\n  iStack_d4 = **(int **)(pcVar13 + 0xbe590);\n  iVar15 = *(int *)(iVar10 + 0x74);\n  puVar19 = *(undefined4 **)(iVar10 + 0x14);\n  iStack_d0 = iVar4;\n  piStack_cc = piVar11;\n  pcStack_c8 = unaff_s2;\n  piStack_c4 = param_1;\n  piStack_c0 = unaff_s4;\n  puStack_bc = unaff_s5;\n  pcStack_b8 = unaff_s6;\n  pcStack_b4 = unaff_s7;\n  uStack_b0 = unaff_s8;\n  pcStack_ac = pcVar22;\n  (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))();\n  iVar4 = *(int *)(iVar10 + 0x28);\n  piVar11 = (int *)(uint)*(ushort *)(iVar10 + 0x30);\n  if ((uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38))) {\n    iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }\n  if (piVar3 < piVar11) {\n    piVar17 = piVar16;\n    if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }\n    if (local_98 == (undefined *)0x0) {\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }\n    else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }\n    piVar12 = (int *)((int)piVar12 + (int)piVar17);\n    piVar16 = (int *)((int)piVar16 - (int)piVar17);\n    uVar2 = 0;\n  }\n  else {\n    uVar2 = (int)piVar3 - (int)piVar11;\n  }\n  iVar15 = 0;\n  if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  iVar15 = puVar19[9];\n  uVar1 = *(ushort *)(iVar10 + 0x30);\n  iStack_dc = (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1);\n  uVar18 = iVar15 - 4;\n  if ((*(byte *)(iVar10 + 1) & 4) == 0) {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;\n    if ((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))) {\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }\n    (**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);\n    *(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;\nLAB_000d1bac:\n    uVar23 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }\n  else {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = uVar2 / uVar18;\n    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);\n    if (iVar4 == 0) goto LAB_000d1bac;\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar2 = uVar2 % uVar18;\n    iStack_dc = iVar4;\nLAB_000d1bb8:\n    iVar14 = uVar23 << 2;\n    iVar4 = *(int *)(pcVar13 + 0xbe21c);\n    iVar5 = *(int *)(pcVar13 + 0xbe21c);\n    iVar6 = *(int *)(pcVar13 + 0xbe21c);\n    iVar7 = *(int *)(pcVar13 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  }\n  iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f);\nLAB_000d1a60:\n  if (iStack_d4 != **(int **)(pcVar13 + 0xbe590)) {\n    pcVar13 = *(code **)(pcVar13 + 0xbe564);\n    iVar4 = iStack_d4;\n    (*pcVar13)();\n    if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }\n    return iVar15;\n  }\n  return iVar15;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int *unaff_s1;" primitive_type (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "code *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "code *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "code *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uint unaff_s8;" type_identifier identifier ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int iStack_dc;" primitive_type identifier ;) (declaration "int iStack_d8;" primitive_type identifier ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "int *piStack_cc;" primitive_type (pointer_declarator "*piStack_cc" * identifier) ;) (declaration "code *pcStack_c8;" type_identifier (pointer_declarator "*pcStack_c8" * identifier) ;) (declaration "int *piStack_c4;" primitive_type (pointer_declarator "*piStack_c4" * identifier) ;) (declaration "int *piStack_c0;" primitive_type (pointer_declarator "*piStack_c0" * identifier) ;) (declaration "undefined *puStack_bc;" type_identifier (pointer_declarator "*puStack_bc" * identifier) ;) (declaration "code *pcStack_b8;" type_identifier (pointer_declarator "*pcStack_b8" * identifier) ;) (declaration "code *pcStack_b4;" type_identifier (pointer_declarator "*pcStack_b4" * identifier) ;) (declaration "uint uStack_b0;" type_identifier identifier ;) (declaration "code *pcStack_ac;" type_identifier (pointer_declarator "*pcStack_ac" * identifier) ;) (declaration "undefined *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "int local_90;" primitive_type identifier ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "int local_88;" primitive_type identifier ;) (declaration "int *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "code *local_80;" type_identifier (pointer_declarator "*local_80" * identifier) ;) (declaration "int *local_7c;" primitive_type (pointer_declarator "*local_7c" * identifier) ;) (declaration "int *local_78;" primitive_type (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined4 local_74;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int aiStack_48 [7];" primitive_type (array_declarator "aiStack_48 [7]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0018fecc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0018fecc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0018fecc" * (cast_expression "(int *)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((int *)param_1[0xb] < param_2) {\n    local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);\n    piVar11 = param_3;\n    piVar12 = param_4;\n  }\n  else {\n    local_60 = 0;\n    piVar12 = (int *)0x0;\n    piVar11 = &local_50;\n    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();\n    local_88 = local_4c;\n    unaff_s4 = param_4;\n    if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }\n  }" if (parenthesized_expression "((int *)param_1[0xb] < param_2)" ( (binary_expression "(int *)param_1[0xb] < param_2" (cast_expression "(int *)param_1[0xb]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xb]" identifier [ number_literal ])) < identifier) )) (compound_statement "{\n    local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);\n    piVar11 = param_3;\n    piVar12 = param_4;\n  }" { (expression_statement "local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);" (assignment_expression "local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6)" identifier = (call_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3b28))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbf4 + 0x3b28)" * (cast_expression "(code *)(PTR_LAB_0018fbf4 + 0x3b28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbf4 + 0x3b28)" ( (binary_expression "PTR_LAB_0018fbf4 + 0x3b28" identifier + number_literal) )))) )) (argument_list "(0x119d6)" ( number_literal )))) ;) (expression_statement "piVar11 = param_3;" (assignment_expression "piVar11 = param_3" identifier = identifier) ;) (expression_statement "piVar12 = param_4;" (assignment_expression "piVar12 = param_4" identifier = identifier) ;) }) (else_clause "else {\n    local_60 = 0;\n    piVar12 = (int *)0x0;\n    piVar11 = &local_50;\n    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();\n    local_88 = local_4c;\n    unaff_s4 = param_4;\n    if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }\n  }" else (compound_statement "{\n    local_60 = 0;\n    piVar12 = (int *)0x0;\n    piVar11 = &local_50;\n    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();\n    local_88 = local_4c;\n    unaff_s4 = param_4;\n    if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }\n  }" { (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar11 = &local_50;" (assignment_expression "piVar11 = &local_50" identifier = (pointer_expression "&local_50" & identifier)) ;) (expression_statement "local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();" (assignment_expression "local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))()" identifier = (call_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x46c4))()" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x46c4))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbf4 + 0x46c4)" * (cast_expression "(code *)(PTR_LAB_0018fbf4 + 0x46c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbf4 + 0x46c4)" ( (binary_expression "PTR_LAB_0018fbf4 + 0x46c4" identifier + number_literal) )))) )) (argument_list "()" ( )))) ;) (expression_statement "local_88 = local_4c;" (assignment_expression "local_88 = local_4c" identifier = identifier) ;) (expression_statement "unaff_s4 = param_4;" (assignment_expression "unaff_s4 = param_4" identifier = identifier) ;) (if_statement "if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }" if (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) (compound_statement "{\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }" { (if_statement "if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }" if (parenthesized_expression "(*(char *)(local_50 + 1) == '\0')" ( (binary_expression "*(char *)(local_50 + 1) == '\0'" (pointer_expression "*(char *)(local_50 + 1)" * (cast_expression "(char *)(local_50 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 1)" ( (binary_expression "local_50 + 1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }" { (expression_statement "*(undefined1 *)(local_50 + 1) = 1;" (assignment_expression "*(undefined1 *)(local_50 + 1) = 1" (pointer_expression "*(undefined1 *)(local_50 + 1)" * (cast_expression "(undefined1 *)(local_50 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 1)" ( (binary_expression "local_50 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar20 = PTR_LAB_0018fbb4;" (assignment_expression "puVar20 = PTR_LAB_0018fbb4" identifier = identifier) ;) (expression_statement "uVar2 = (uint)*(ushort *)(local_50 + 0x16);" (assignment_expression "uVar2 = (uint)*(ushort *)(local_50 + 0x16)" identifier = (binary_expression "(uint)*(ushort *)(local_50 + 0x16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(local_50 + 0x16)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x16)" ( (binary_expression "local_50 + 0x16" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8 = (uint)*(byte *)(local_50 + 9);" (assignment_expression "unaff_s8 = (uint)*(byte *)(local_50 + 9)" identifier = (binary_expression "(uint)*(byte *)(local_50 + 9)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_50 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 9)" ( (binary_expression "local_50 + 9" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }" { (expression_statement "unaff_s2 = (code *)0x0;" (assignment_expression "unaff_s2 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);" (assignment_expression "unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220)" identifier = (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x2220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x2220)" ( (binary_expression "PTR_LAB_0018fb58 + 0x2220" identifier + number_literal) )))) ;) (expression_statement "unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);" (assignment_expression "unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340)" identifier = (cast_expression "(code *)(PTR_LAB_0018fbb4 + 0x1340)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbb4 + 0x1340)" ( (binary_expression "PTR_LAB_0018fbb4 + 0x1340" identifier + number_literal) )))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);" do (compound_statement "{\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));" (assignment_expression "unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)))" identifier = (cast_expression "(int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)))" ( (binary_expression "*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18))" (pointer_expression "*(int *)(local_50 + 0x38)" * (cast_expression "(int *)(local_50 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x38)" ( (binary_expression "local_50 + 0x38" identifier + number_literal) )))) + (call_expression "(uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18))" ( (binary_expression "*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)" (pointer_expression "*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40))" * (cast_expression "(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40))" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s2 + *(int *)(local_50 + 0x40))" ( (binary_expression "unaff_s2 + *(int *)(local_50 + 0x40)" identifier + (pointer_expression "*(int *)(local_50 + 0x40)" * (cast_expression "(int *)(local_50 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x40)" ( (binary_expression "local_50 + 0x40" identifier + number_literal) ))))) )))) & (pointer_expression "*(ushort *)(local_50 + 0x18)" * (cast_expression "(ushort *)(local_50 + 0x18)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x18)" ( (binary_expression "local_50 + 0x18" identifier + number_literal) ))))) )))) )))) ;) (expression_statement "unaff_s5 = puVar20;" (assignment_expression "unaff_s5 = puVar20" identifier = identifier) ;) (if_statement "if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }" if (parenthesized_expression "(*(char *)(local_50 + 8) == '\0')" ( (binary_expression "*(char *)(local_50 + 8) == '\0'" (pointer_expression "*(char *)(local_50 + 8)" * (cast_expression "(char *)(local_50 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 8)" ( (binary_expression "local_50 + 8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }" { (expression_statement "param_2 = (int *)(*unaff_s7)(unaff_s1);" (assignment_expression "param_2 = (int *)(*unaff_s7)(unaff_s1)" identifier = (cast_expression "(int *)(*unaff_s7)(unaff_s1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*unaff_s7)(unaff_s1)" (parenthesized_expression "(*unaff_s7)" ( (pointer_expression "*unaff_s7" * identifier) )) (argument_list "(unaff_s1)" ( identifier ))))) ;) (expression_statement "piVar11 = (int *)0x1;" (assignment_expression "piVar11 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar12 = param_4;" (assignment_expression "piVar12 = param_4" identifier = identifier) ;) (expression_statement "local_4c = (*unaff_s6)(param_1,param_2,1,param_4);" (assignment_expression "local_4c = (*unaff_s6)(param_1,param_2,1,param_4)" identifier = (call_expression "(*unaff_s6)(param_1,param_2,1,param_4)" (parenthesized_expression "(*unaff_s6)" ( (pointer_expression "*unaff_s6" * identifier) )) (argument_list "(param_1,param_2,1,param_4)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (local_4c != 0) goto LAB_000d1454;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1454;" goto statement_identifier ;)) })) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "piVar11 = aiStack_48;" (assignment_expression "piVar11 = aiStack_48" identifier = identifier) ;) (expression_statement "param_2 = unaff_s1;" (assignment_expression "param_2 = unaff_s1" identifier = identifier) ;) (expression_statement "local_4c = FUN_000ce738(local_50);" (assignment_expression "local_4c = FUN_000ce738(local_50)" identifier = (call_expression "FUN_000ce738(local_50)" identifier (argument_list "(local_50)" ( identifier )))) ;) (if_statement "if (local_4c != 0) goto LAB_000d1454;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1454;" goto statement_identifier ;)) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar2 = (uint)*(ushort *)(local_50 + 0x16);" (assignment_expression "uVar2 = (uint)*(ushort *)(local_50 + 0x16)" identifier = (binary_expression "(uint)*(ushort *)(local_50 + 0x16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(local_50 + 0x16)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x16)" ( (binary_expression "local_50 + 0x16" identifier + number_literal) ))))) ;) (expression_statement "unaff_s2 = unaff_s2 + 2;" (assignment_expression "unaff_s2 = unaff_s2 + 2" identifier = (binary_expression "unaff_s2 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 < (int)uVar2)" ( (binary_expression "iVar4 < (int)uVar2" identifier < (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }" if (parenthesized_expression "(*(char *)(local_50 + 8) == '\0')" ( (binary_expression "*(char *)(local_50 + 8) == '\0'" (pointer_expression "*(char *)(local_50 + 8)" * (cast_expression "(char *)(local_50 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 8)" ( (binary_expression "local_50 + 8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }" { (expression_statement "param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);" (assignment_expression "param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8)" identifier = (cast_expression "(int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fb58 + 0x2220))" ( (pointer_expression "*(code *)(PTR_LAB_0018fb58 + 0x2220)" * (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x2220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x2220)" ( (binary_expression "PTR_LAB_0018fb58 + 0x2220" identifier + number_literal) )))) )) (argument_list "(*(int *)(local_50 + 0x38) + unaff_s8 + 8)" ( (binary_expression "*(int *)(local_50 + 0x38) + unaff_s8 + 8" (binary_expression "*(int *)(local_50 + 0x38) + unaff_s8" (pointer_expression "*(int *)(local_50 + 0x38)" * (cast_expression "(int *)(local_50 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x38)" ( (binary_expression "local_50 + 0x38" identifier + number_literal) )))) + identifier) + number_literal) ))))) ;) (expression_statement "piVar11 = (int *)0x1;" (assignment_expression "piVar11 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar12 = param_4;" (assignment_expression "piVar12 = param_4" identifier = identifier) ;) (expression_statement "local_4c = FUN_000d1340(param_1,param_2,1,param_4);" (assignment_expression "local_4c = FUN_000d1340(param_1,param_2,1,param_4)" identifier = (call_expression "FUN_000d1340(param_1,param_2,1,param_4)" identifier (argument_list "(param_1,param_2,1,param_4)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (local_4c != 0) goto LAB_000d1454;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1454;" goto statement_identifier ;)) }) (else_clause "else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }" else (if_statement "if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *param_4 = *param_4 + uVar2;\n        }" { (expression_statement "*param_4 = *param_4 + uVar2;" (assignment_expression "*param_4 = *param_4 + uVar2" (pointer_expression "*param_4" * identifier) = (binary_expression "*param_4 + uVar2" (pointer_expression "*param_4" * identifier) + identifier)) ;) })))) (if_statement "if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }" { (expression_statement "local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));" (assignment_expression "local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48))" identifier = (call_expression "FUN_000c6d30(*(undefined4 *)(local_50 + 0x48))" identifier (argument_list "(*(undefined4 *)(local_50 + 0x48))" ( (pointer_expression "*(undefined4 *)(local_50 + 0x48)" * (cast_expression "(undefined4 *)(local_50 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x48)" ( (binary_expression "local_50 + 0x48" identifier + number_literal) )))) )))) ;) (if_statement "if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }" if (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) (compound_statement "{\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }" { (expression_statement "param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);" (assignment_expression "param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8)" identifier = (cast_expression "(int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8)" ( (binary_expression "*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8" (pointer_expression "*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8)" * (cast_expression "(byte *)(*(int *)(local_50 + 0x38) + unaff_s8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_50 + 0x38) + unaff_s8)" ( (binary_expression "*(int *)(local_50 + 0x38) + unaff_s8" (pointer_expression "*(int *)(local_50 + 0x38)" * (cast_expression "(int *)(local_50 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x38)" ( (binary_expression "local_50 + 0x38" identifier + number_literal) )))) + identifier) )))) | number_literal) )))) ;) (expression_statement "(*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();" (call_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3c90))()" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3c90))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbf4 + 0x3c90)" * (cast_expression "(code *)(PTR_LAB_0018fbf4 + 0x3c90)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbf4 + 0x3c90)" ( (binary_expression "PTR_LAB_0018fbf4 + 0x3c90" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }" else (compound_statement "{\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }" { (expression_statement "param_2 = &local_4c;" (assignment_expression "param_2 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "FUN_000ce9ec(local_50);" (call_expression "FUN_000ce9ec(local_50)" identifier (argument_list "(local_50)" ( identifier ))) ;) }))) }) (else_clause "else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }" else (compound_statement "{\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }" { (expression_statement "local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);" (assignment_expression "local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db)" identifier = (call_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3b28))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbf4 + 0x3b28)" * (cast_expression "(code *)(PTR_LAB_0018fbf4 + 0x3b28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbf4 + 0x3b28)" ( (binary_expression "PTR_LAB_0018fbf4 + 0x3b28" identifier + number_literal) )))) )) (argument_list "(0x119db)" ( number_literal )))) ;) }))) (labeled_statement "LAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;" statement_identifier : (expression_statement "*(undefined1 *)(local_50 + 1) = 0;" (assignment_expression "*(undefined1 *)(local_50 + 1) = 0" (pointer_expression "*(undefined1 *)(local_50 + 1)" * (cast_expression "(undefined1 *)(local_50 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 1)" ( (binary_expression "local_50 + 1" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "(*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);" (call_expression "(*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fb58 + 0x5aac))" ( (pointer_expression "*(code *)(PTR_LAB_0018fb58 + 0x5aac)" * (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x5aac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x5aac)" ( (binary_expression "PTR_LAB_0018fb58 + 0x5aac" identifier + number_literal) )))) )) (argument_list "(local_50)" ( identifier ))) ;) (expression_statement "local_88 = local_4c;" (assignment_expression "local_88 = local_4c" identifier = identifier) ;) })) }))) (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_0018fecc) {\n    return local_88;\n  }" if (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_0018fecc)" ( (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_0018fecc" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_0018fecc" * (cast_expression "(int *)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return local_88;\n  }" { (return_statement "return local_88;" return identifier ;) })) (expression_statement "uVar21 = 0xd1668;" (assignment_expression "uVar21 = 0xd1668" identifier = number_literal) ;) (expression_statement "iVar4 = local_2c;" (assignment_expression "iVar4 = local_2c" identifier = identifier) ;) (expression_statement "puVar20 = PTR___stack_chk_fail_0018fea0;" (assignment_expression "puVar20 = PTR___stack_chk_fail_0018fea0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0018fea0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0018fea0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0018fea0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0018fea0" * (cast_expression "(code *)PTR___stack_chk_fail_0018fea0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_98 = puVar20 + 0xc62b8;" (assignment_expression "local_98 = puVar20 + 0xc62b8" identifier = (binary_expression "puVar20 + 0xc62b8" identifier + number_literal)) ;) (expression_statement "local_8c = **(int **)(puVar20 + 0xbe864);" (assignment_expression "local_8c = **(int **)(puVar20 + 0xbe864)" identifier = (pointer_expression "**(int **)(puVar20 + 0xbe864)" * (pointer_expression "*(int **)(puVar20 + 0xbe864)" * (cast_expression "(int **)(puVar20 + 0xbe864)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0xbe864)" ( (binary_expression "puVar20 + 0xbe864" identifier + number_literal) )))))) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "piVar16 = piVar11;" (assignment_expression "piVar16 = piVar11" identifier = identifier) ;) (expression_statement "local_84 = unaff_s1;" (assignment_expression "local_84 = unaff_s1" identifier = identifier) ;) (expression_statement "local_80 = unaff_s2;" (assignment_expression "local_80 = unaff_s2" identifier = identifier) ;) (expression_statement "local_7c = param_1;" (assignment_expression "local_7c = param_1" identifier = identifier) ;) (expression_statement "local_78 = unaff_s4;" (assignment_expression "local_78 = unaff_s4" identifier = identifier) ;) (expression_statement "local_74 = uVar21;" (assignment_expression "local_74 = uVar21" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0) {\n    piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);\nLAB_000d187c:\n    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));\n    piVar3 = piVar11;\n    uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);\n    *(undefined4 *)(iVar4 + 8) = uVar21;\n    iVar4 = 1;\n  }\n  else {\n    if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }\n    pcVar13 = *(code **)(puVar20 + 0xbe318);\n    param_1 = (int *)(*pcVar13)(*piVar11);\n    piVar3 = (int *)(*pcVar13)(piVar11[1]);\n    unaff_s2 = pcVar13;\n    if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }\n    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);\n    if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(iVar4 + 0xc);\n    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);\n    if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);\n    if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);\n    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();\n    piVar12 = (int *)0x0;\n    if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    piVar16 = &local_90;\n    piVar3 = param_1;\n    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);\n    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }\n    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0)" ( (binary_expression "*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0" (binary_expression "*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3" (pointer_expression "*(int *)(*(int *)(iVar4 + 0xc) + 0x24)" * (cast_expression "(int *)(*(int *)(iVar4 + 0xc) + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0xc) + 0x24)" ( (binary_expression "*(int *)(iVar4 + 0xc) + 0x24" (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n    piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);\nLAB_000d187c:\n    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));\n    piVar3 = piVar11;\n    uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);\n    *(undefined4 *)(iVar4 + 8) = uVar21;\n    iVar4 = 1;\n  }" { (expression_statement "piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);" (assignment_expression "piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564)" identifier = (cast_expression "(int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar20 + 0xbe2f4) + -0x4564)" ( (binary_expression "*(int *)(puVar20 + 0xbe2f4) + -0x4564" (pointer_expression "*(int *)(puVar20 + 0xbe2f4)" * (cast_expression "(int *)(puVar20 + 0xbe2f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0xbe2f4)" ( (binary_expression "puVar20 + 0xbe2f4" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_000d187c:\n    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));" statement_identifier : (expression_statement "(**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));" (call_expression "(**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8))" (parenthesized_expression "(**(code **)(local_98 + -0x7fa8))" ( (pointer_expression "**(code **)(local_98 + -0x7fa8)" * (pointer_expression "*(code **)(local_98 + -0x7fa8)" * (cast_expression "(code **)(local_98 + -0x7fa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_98 + -0x7fa8)" ( (binary_expression "local_98 + -0x7fa8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar4 + 8))" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) ))) ;)) (expression_statement "piVar3 = piVar11;" (assignment_expression "piVar3 = piVar11" identifier = identifier) ;) (expression_statement "uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);" (assignment_expression "uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0)" identifier = (call_expression "sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0)" identifier (argument_list "(*(int *)(local_98 + -0x7fc4) + -0x60a0)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x60a0" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*(undefined4 *)(iVar4 + 8) = uVar21;" (assignment_expression "*(undefined4 *)(iVar4 + 8) = uVar21" (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n    if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }\n    pcVar13 = *(code **)(puVar20 + 0xbe318);\n    param_1 = (int *)(*pcVar13)(*piVar11);\n    piVar3 = (int *)(*pcVar13)(piVar11[1]);\n    unaff_s2 = pcVar13;\n    if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }\n    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);\n    if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(iVar4 + 0xc);\n    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);\n    if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);\n    if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);\n    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();\n    piVar12 = (int *)0x0;\n    if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    piVar16 = &local_90;\n    piVar3 = param_1;\n    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);\n    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }\n    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);\n  }" else (compound_statement "{\n    if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }\n    pcVar13 = *(code **)(puVar20 + 0xbe318);\n    param_1 = (int *)(*pcVar13)(*piVar11);\n    piVar3 = (int *)(*pcVar13)(piVar11[1]);\n    unaff_s2 = pcVar13;\n    if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }\n    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);\n    if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(iVar4 + 0xc);\n    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);\n    if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);\n    if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);\n    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();\n    piVar12 = (int *)0x0;\n    if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    piVar16 = &local_90;\n    piVar3 = param_1;\n    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);\n    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }\n    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);\n  }" { (if_statement "if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(param_2 == (int *)0x1)" ( (binary_expression "param_2 == (int *)0x1" identifier == (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);" (assignment_expression "piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558)" identifier = (cast_expression "(int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar20 + 0xbe2f4) + -0x4558)" ( (binary_expression "*(int *)(puVar20 + 0xbe2f4) + -0x4558" (pointer_expression "*(int *)(puVar20 + 0xbe2f4)" * (cast_expression "(int *)(puVar20 + 0xbe2f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0xbe2f4)" ( (binary_expression "puVar20 + 0xbe2f4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "pcVar13 = *(code **)(puVar20 + 0xbe318);" (assignment_expression "pcVar13 = *(code **)(puVar20 + 0xbe318)" identifier = (pointer_expression "*(code **)(puVar20 + 0xbe318)" * (cast_expression "(code **)(puVar20 + 0xbe318)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0xbe318)" ( (binary_expression "puVar20 + 0xbe318" identifier + number_literal) ))))) ;) (expression_statement "param_1 = (int *)(*pcVar13)(*piVar11);" (assignment_expression "param_1 = (int *)(*pcVar13)(*piVar11)" identifier = (cast_expression "(int *)(*pcVar13)(*piVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar13)(*piVar11)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(*piVar11)" ( (pointer_expression "*piVar11" * identifier) ))))) ;) (expression_statement "piVar3 = (int *)(*pcVar13)(piVar11[1]);" (assignment_expression "piVar3 = (int *)(*pcVar13)(piVar11[1])" identifier = (cast_expression "(int *)(*pcVar13)(piVar11[1])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar13)(piVar11[1])" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(piVar11[1])" ( (subscript_expression "piVar11[1]" identifier [ number_literal ]) ))))) ;) (expression_statement "unaff_s2 = pcVar13;" (assignment_expression "unaff_s2 = pcVar13" identifier = identifier) ;) (if_statement "if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(param_1 != piVar3)" ( (binary_expression "param_1 != piVar3" identifier != identifier) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538)" identifier = (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4538)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4538)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4538" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);" (assignment_expression "iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4])" identifier = (call_expression "(**(code **)(local_98 + -0x7fa4))(piVar11[4])" (parenthesized_expression "(**(code **)(local_98 + -0x7fa4))" ( (pointer_expression "**(code **)(local_98 + -0x7fa4)" * (pointer_expression "*(code **)(local_98 + -0x7fa4)" * (cast_expression "(code **)(local_98 + -0x7fa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_98 + -0x7fa4)" ( (binary_expression "local_98 + -0x7fa4" identifier + number_literal) ))))) )) (argument_list "(piVar11[4])" ( (subscript_expression "piVar11[4]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548)" identifier = (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4548)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4548)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4548" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "unaff_s2 = *(code **)(iVar4 + 0xc);" (assignment_expression "unaff_s2 = *(code **)(iVar4 + 0xc)" identifier = (pointer_expression "*(code **)(iVar4 + 0xc)" * (cast_expression "(code **)(iVar4 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);" (assignment_expression "iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10)" identifier = (call_expression "(*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10)" (parenthesized_expression "(*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))" ( (pointer_expression "*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c)" * (cast_expression "(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7d64) + -0x6d2c)" ( (binary_expression "*(int *)(local_98 + -0x7d64) + -0x6d2c" (pointer_expression "*(int *)(local_98 + -0x7d64)" * (cast_expression "(int *)(local_98 + -0x7d64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7d64)" ( (binary_expression "local_98 + -0x7d64" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(unaff_s2,iVar10)" ( identifier , identifier )))) ;) (if_statement "if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(iVar10 < 0)" ( (binary_expression "iVar10 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548)" identifier = (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4548)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4548)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4548" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (if_statement "if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" identifier = (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4584)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4584" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);" (assignment_expression "unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4)" identifier = (pointer_expression "*(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4)" * (cast_expression "(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4)" ( (binary_expression "*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4" (binary_expression "*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10" (pointer_expression "*(int *)(unaff_s2 + 0x10)" * (cast_expression "(int *)(unaff_s2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s2 + 0x10)" ( (binary_expression "unaff_s2 + 0x10" identifier + number_literal) )))) + (binary_expression "iVar10 * 0x10" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(unaff_s2 == (code *)0x0)" ( (binary_expression "unaff_s2 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" identifier = (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4584)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4584" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (if_statement "if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1)" ( (binary_expression "*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1" (pointer_expression "*(int **)(*(int *)(unaff_s2 + 4) + 0x2c)" * (cast_expression "(int **)(*(int *)(unaff_s2 + 4) + 0x2c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(unaff_s2 + 4) + 0x2c)" ( (binary_expression "*(int *)(unaff_s2 + 4) + 0x2c" (pointer_expression "*(int *)(unaff_s2 + 4)" * (cast_expression "(int *)(unaff_s2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s2 + 4)" ( (binary_expression "unaff_s2 + 4" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" identifier = (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4584)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4584" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (if_statement "if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04')" ( (binary_expression "*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04'" (pointer_expression "*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0)" * (cast_expression "(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0)" ( (binary_expression "(*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0" (binary_expression "(*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4)" (parenthesized_expression "(*(ushort *)(piVar11[3] + 8) & 0x1f)" ( (binary_expression "*(ushort *)(piVar11[3] + 8) & 0x1f" (pointer_expression "*(ushort *)(piVar11[3] + 8)" * (cast_expression "(ushort *)(piVar11[3] + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[3] + 8)" ( (binary_expression "piVar11[3] + 8" (subscript_expression "piVar11[3]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) + (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) ))))) + number_literal) )))) != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574)" identifier = (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4574)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4574)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4574" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);" (assignment_expression "unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20)" identifier = (pointer_expression "*(int **)(*(int *)(unaff_s2 + 4) + 0x20)" * (cast_expression "(int **)(*(int *)(unaff_s2 + 4) + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(unaff_s2 + 4) + 0x20)" ( (binary_expression "*(int *)(unaff_s2 + 4) + 0x20" (pointer_expression "*(int *)(unaff_s2 + 4)" * (cast_expression "(int *)(unaff_s2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s2 + 4)" ( (binary_expression "unaff_s2 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();" (assignment_expression "piVar3 = (int *)(**(code **)(local_98 + -0x7f60))()" identifier = (cast_expression "(int *)(**(code **)(local_98 + -0x7f60))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_98 + -0x7f60))()" (parenthesized_expression "(**(code **)(local_98 + -0x7f60))" ( (pointer_expression "**(code **)(local_98 + -0x7f60)" * (pointer_expression "*(code **)(local_98 + -0x7f60)" * (cast_expression "(code **)(local_98 + -0x7f60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_98 + -0x7f60)" ( (binary_expression "local_98 + -0x7f60" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(piVar3 != unaff_s4)" ( (binary_expression "piVar3 != unaff_s4" identifier != identifier) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574)" identifier = (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4574)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4574)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4574" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "piVar16 = &local_90;" (assignment_expression "piVar16 = &local_90" identifier = (pointer_expression "&local_90" & identifier)) ;) (expression_statement "piVar3 = param_1;" (assignment_expression "piVar3 = param_1" identifier = identifier) ;) (expression_statement "iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);" (assignment_expression "iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0)" identifier = (call_expression "(*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0)" (parenthesized_expression "(*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))" ( (pointer_expression "*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c)" * (cast_expression "(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7dc8) + 0x491c)" ( (binary_expression "*(int *)(local_98 + -0x7dc8) + 0x491c" (pointer_expression "*(int *)(local_98 + -0x7dc8)" * (cast_expression "(int *)(local_98 + -0x7dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7dc8)" ( (binary_expression "local_98 + -0x7dc8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0)" ( (pointer_expression "**(undefined4 **)(unaff_s2 + 4)" * (pointer_expression "*(undefined4 **)(unaff_s2 + 4)" * (cast_expression "(undefined4 **)(unaff_s2 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s2 + 4)" ( (binary_expression "unaff_s2 + 4" identifier + number_literal) ))))) , identifier , identifier , number_literal )))) ;) (if_statement "if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }" if (parenthesized_expression "((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0))" ( (binary_expression "(iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar4 = FUN_000c6d30(local_90), iVar4 == 0)" ( (comma_expression "iVar4 = FUN_000c6d30(local_90), iVar4 == 0" (assignment_expression "iVar4 = FUN_000c6d30(local_90)" identifier = (call_expression "FUN_000c6d30(local_90)" identifier (argument_list "(local_90)" ( identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }" { (expression_statement "unaff_s2 = *(code **)(local_90 + 4);" (assignment_expression "unaff_s2 = *(code **)(local_90 + 4)" identifier = (pointer_expression "*(code **)(local_90 + 4)" * (cast_expression "(code **)(local_90 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_90 + 4)" ( (binary_expression "local_90 + 4" identifier + number_literal) ))))) ;) (expression_statement "piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);" (assignment_expression "piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3])" identifier = (cast_expression "(int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_98 + -0x7f5c))(piVar11[3])" (parenthesized_expression "(**(code **)(local_98 + -0x7f5c))" ( (pointer_expression "**(code **)(local_98 + -0x7f5c)" * (pointer_expression "*(code **)(local_98 + -0x7f5c)" * (cast_expression "(code **)(local_98 + -0x7f5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_98 + -0x7f5c)" ( (binary_expression "local_98 + -0x7f5c" identifier + number_literal) ))))) )) (argument_list "(piVar11[3])" ( (subscript_expression "piVar11[3]" identifier [ number_literal ]) ))))) ;) (expression_statement "piVar16 = unaff_s4;" (assignment_expression "piVar16 = unaff_s4" identifier = identifier) ;) (expression_statement "(**(code **)(local_98 + -0x7a4c))(unaff_s2);" (call_expression "(**(code **)(local_98 + -0x7a4c))(unaff_s2)" (parenthesized_expression "(**(code **)(local_98 + -0x7a4c))" ( (pointer_expression "**(code **)(local_98 + -0x7a4c)" * (pointer_expression "*(code **)(local_98 + -0x7a4c)" * (cast_expression "(code **)(local_98 + -0x7a4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_98 + -0x7a4c)" ( (binary_expression "local_98 + -0x7a4c" identifier + number_literal) ))))) )) (argument_list "(unaff_s2)" ( identifier ))) ;) })) (expression_statement "(*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);" (call_expression "(*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90)" (parenthesized_expression "(*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))" ( (pointer_expression "*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec)" * (cast_expression "(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7dc8) + 0x49ec)" ( (binary_expression "*(int *)(local_98 + -0x7dc8) + 0x49ec" (pointer_expression "*(int *)(local_98 + -0x7dc8)" * (cast_expression "(int *)(local_98 + -0x7dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7dc8)" ( (binary_expression "local_98 + -0x7dc8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(local_90)" ( identifier ))) ;) }))) (if_statement "if (local_8c == **(int **)(local_98 + -0x7a54)) {\n    return iVar4;\n  }" if (parenthesized_expression "(local_8c == **(int **)(local_98 + -0x7a54))" ( (binary_expression "local_8c == **(int **)(local_98 + -0x7a54)" identifier == (pointer_expression "**(int **)(local_98 + -0x7a54)" * (pointer_expression "*(int **)(local_98 + -0x7a54)" * (cast_expression "(int **)(local_98 + -0x7a54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_98 + -0x7a54)" ( (binary_expression "local_98 + -0x7a54" identifier + number_literal) )))))) )) (compound_statement "{\n    return iVar4;\n  }" { (return_statement "return iVar4;" return identifier ;) })) (expression_statement "pcVar13 = *(code **)(local_98 + -0x7a80);" (assignment_expression "pcVar13 = *(code **)(local_98 + -0x7a80)" identifier = (pointer_expression "*(code **)(local_98 + -0x7a80)" * (cast_expression "(code **)(local_98 + -0x7a80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_98 + -0x7a80)" ( (binary_expression "local_98 + -0x7a80" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = FUN_000d193c;" (assignment_expression "pcVar22 = FUN_000d193c" identifier = identifier) ;) (expression_statement "iVar10 = local_8c;" (assignment_expression "iVar10 = local_8c" identifier = identifier) ;) (expression_statement "(*pcVar13)();" (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_d4 = **(int **)(pcVar13 + 0xbe590);" (assignment_expression "iStack_d4 = **(int **)(pcVar13 + 0xbe590)" identifier = (pointer_expression "**(int **)(pcVar13 + 0xbe590)" * (pointer_expression "*(int **)(pcVar13 + 0xbe590)" * (cast_expression "(int **)(pcVar13 + 0xbe590)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbe590)" ( (binary_expression "pcVar13 + 0xbe590" identifier + number_literal) )))))) ;) (expression_statement "iVar15 = *(int *)(iVar10 + 0x74);" (assignment_expression "iVar15 = *(int *)(iVar10 + 0x74)" identifier = (pointer_expression "*(int *)(iVar10 + 0x74)" * (cast_expression "(int *)(iVar10 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x74)" ( (binary_expression "iVar10 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "puVar19 = *(undefined4 **)(iVar10 + 0x14);" (assignment_expression "puVar19 = *(undefined4 **)(iVar10 + 0x14)" identifier = (pointer_expression "*(undefined4 **)(iVar10 + 0x14)" * (cast_expression "(undefined4 **)(iVar10 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iStack_d0 = iVar4;" (assignment_expression "iStack_d0 = iVar4" identifier = identifier) ;) (expression_statement "piStack_cc = piVar11;" (assignment_expression "piStack_cc = piVar11" identifier = identifier) ;) (expression_statement "pcStack_c8 = unaff_s2;" (assignment_expression "pcStack_c8 = unaff_s2" identifier = identifier) ;) (expression_statement "piStack_c4 = param_1;" (assignment_expression "piStack_c4 = param_1" identifier = identifier) ;) (expression_statement "piStack_c0 = unaff_s4;" (assignment_expression "piStack_c0 = unaff_s4" identifier = identifier) ;) (expression_statement "puStack_bc = unaff_s5;" (assignment_expression "puStack_bc = unaff_s5" identifier = identifier) ;) (expression_statement "pcStack_b8 = unaff_s6;" (assignment_expression "pcStack_b8 = unaff_s6" identifier = identifier) ;) (expression_statement "pcStack_b4 = unaff_s7;" (assignment_expression "pcStack_b4 = unaff_s7" identifier = identifier) ;) (expression_statement "uStack_b0 = unaff_s8;" (assignment_expression "uStack_b0 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_ac = pcVar22;" (assignment_expression "pcStack_ac = pcVar22" identifier = identifier) ;) (expression_statement "(*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))();" (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))()" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))" ( (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00)" * (cast_expression "(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0xbe21c) + 0x5c00)" ( (binary_expression "*(int *)(pcVar13 + 0xbe21c) + 0x5c00" (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" * (cast_expression "(int *)(pcVar13 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe21c)" ( (binary_expression "pcVar13 + 0xbe21c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = *(int *)(iVar10 + 0x28);" (assignment_expression "iVar4 = *(int *)(iVar10 + 0x28)" identifier = (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "piVar11 = (int *)(uint)*(ushort *)(iVar10 + 0x30);" (assignment_expression "piVar11 = (int *)(uint)*(ushort *)(iVar10 + 0x30)" identifier = (binary_expression "(int *)(uint)*(ushort *)(iVar10 + 0x30)" (cast_expression "(int *)(uint)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(iVar10 + 0x30)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if ((uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38))) {\n    iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }" if (parenthesized_expression "((uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38)))" ( (binary_expression "(uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38))" (call_expression "(uint)(puVar19[9] - (int)piVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar19[9] - (int)piVar11)" ( (binary_expression "puVar19[9] - (int)piVar11" (subscript_expression "puVar19[9]" identifier [ number_literal ]) - (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)(iVar4 - *(int *)(iVar15 + 0x38))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 - *(int *)(iVar15 + 0x38))" ( (binary_expression "iVar4 - *(int *)(iVar15 + 0x38)" identifier - (pointer_expression "*(int *)(iVar15 + 0x38)" * (cast_expression "(int *)(iVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x38)" ( (binary_expression "iVar15 + 0x38" identifier + number_literal) ))))) )))) )) (compound_statement "{\n    iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }" { (expression_statement "iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);" (assignment_expression "iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be)" identifier = (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be)" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))" ( (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" * (cast_expression "(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" ( (binary_expression "*(int *)(pcVar13 + 0xbe2b8) + 0x3b28" (pointer_expression "*(int *)(pcVar13 + 0xbe2b8)" * (cast_expression "(int *)(pcVar13 + 0xbe2b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe2b8)" ( (binary_expression "pcVar13 + 0xbe2b8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(0x108be)" ( number_literal )))) ;) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;) })) (if_statement "if (piVar3 < piVar11) {\n    piVar17 = piVar16;\n    if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }\n    if (local_98 == (undefined *)0x0) {\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }\n    else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }\n    piVar12 = (int *)((int)piVar12 + (int)piVar17);\n    piVar16 = (int *)((int)piVar16 - (int)piVar17);\n    uVar2 = 0;\n  }\n  else {\n    uVar2 = (int)piVar3 - (int)piVar11;\n  }" if (parenthesized_expression "(piVar3 < piVar11)" ( (binary_expression "piVar3 < piVar11" identifier < identifier) )) (compound_statement "{\n    piVar17 = piVar16;\n    if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }\n    if (local_98 == (undefined *)0x0) {\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }\n    else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }\n    piVar12 = (int *)((int)piVar12 + (int)piVar17);\n    piVar16 = (int *)((int)piVar16 - (int)piVar17);\n    uVar2 = 0;\n  }" { (expression_statement "piVar17 = piVar16;" (assignment_expression "piVar17 = piVar16" identifier = identifier) ;) (if_statement "if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }" if (parenthesized_expression "(piVar11 < (int *)((int)piVar3 + (int)piVar16))" ( (binary_expression "piVar11 < (int *)((int)piVar3 + (int)piVar16)" identifier < (cast_expression "(int *)((int)piVar3 + (int)piVar16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + (int)piVar16)" ( (binary_expression "(int)piVar3 + (int)piVar16" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }" { (expression_statement "piVar17 = (int *)((int)piVar11 - (int)piVar3);" (assignment_expression "piVar17 = (int *)((int)piVar11 - (int)piVar3)" identifier = (cast_expression "(int *)((int)piVar11 - (int)piVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 - (int)piVar3)" ( (binary_expression "(int)piVar11 - (int)piVar3" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (if_statement "if (local_98 == (undefined *)0x0) {\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }\n    else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }" if (parenthesized_expression "(local_98 == (undefined *)0x0)" ( (binary_expression "local_98 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }" { (expression_statement "(**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);" (call_expression "(**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbe598))" ( (pointer_expression "**(code **)(pcVar13 + 0xbe598)" * (pointer_expression "*(code **)(pcVar13 + 0xbe598)" * (cast_expression "(code **)(pcVar13 + 0xbe598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbe598)" ( (binary_expression "pcVar13 + 0xbe598" identifier + number_literal) ))))) )) (argument_list "(piVar12,iVar4 + (int)piVar3,piVar17)" ( identifier , (binary_expression "iVar4 + (int)piVar3" identifier + (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier ))) ;) }) (else_clause "else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }" else (compound_statement "{\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }" { (expression_statement "iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));" (assignment_expression "iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48))" identifier = (call_expression "FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48))" identifier (argument_list "(*(undefined4 *)(iVar15 + 0x48))" ( (pointer_expression "*(undefined4 *)(iVar15 + 0x48)" * (cast_expression "(undefined4 *)(iVar15 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x48)" ( (binary_expression "iVar15 + 0x48" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar15 != 0) goto LAB_000d1a60;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);" (call_expression "(**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbe598))" ( (pointer_expression "**(code **)(pcVar13 + 0xbe598)" * (pointer_expression "*(code **)(pcVar13 + 0xbe598)" * (cast_expression "(code **)(pcVar13 + 0xbe598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbe598)" ( (binary_expression "pcVar13 + 0xbe598" identifier + number_literal) ))))) )) (argument_list "(iVar4 + (int)piVar3,piVar12,piVar17)" ( (binary_expression "iVar4 + (int)piVar3" identifier + (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , identifier ))) ;) }))) (expression_statement "piVar12 = (int *)((int)piVar12 + (int)piVar17);" (assignment_expression "piVar12 = (int *)((int)piVar12 + (int)piVar17)" identifier = (cast_expression "(int *)((int)piVar12 + (int)piVar17)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + (int)piVar17)" ( (binary_expression "(int)piVar12 + (int)piVar17" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar16 = (int *)((int)piVar16 - (int)piVar17);" (assignment_expression "piVar16 = (int *)((int)piVar16 - (int)piVar17)" identifier = (cast_expression "(int *)((int)piVar16 - (int)piVar17)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 - (int)piVar17)" ( (binary_expression "(int)piVar16 - (int)piVar17" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    uVar2 = (int)piVar3 - (int)piVar11;\n  }" else (compound_statement "{\n    uVar2 = (int)piVar3 - (int)piVar11;\n  }" { (expression_statement "uVar2 = (int)piVar3 - (int)piVar11;" (assignment_expression "uVar2 = (int)piVar3 - (int)piVar11" identifier = (binary_expression "(int)piVar3 - (int)piVar11" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }))) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (if_statement "if (piVar16 == (int *)0x0) goto LAB_000d1a60;" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;)) (expression_statement "iVar15 = puVar19[9];" (assignment_expression "iVar15 = puVar19[9]" identifier = (subscript_expression "puVar19[9]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = *(ushort *)(iVar10 + 0x30);" (assignment_expression "uVar1 = *(ushort *)(iVar10 + 0x30)" identifier = (pointer_expression "*(ushort *)(iVar10 + 0x30)" * (cast_expression "(ushort *)(iVar10 + 0x30)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "iStack_dc = (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1);" (assignment_expression "iStack_dc = (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1)" identifier = (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1)" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))" ( (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220)" * (cast_expression "(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0xbe21c) + 0x2220)" ( (binary_expression "*(int *)(pcVar13 + 0xbe21c) + 0x2220" (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" * (cast_expression "(int *)(pcVar13 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe21c)" ( (binary_expression "pcVar13 + 0xbe21c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(iVar4 + (uint)uVar1)" ( (binary_expression "iVar4 + (uint)uVar1" identifier + (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "uVar18 = iVar15 - 4;" (assignment_expression "uVar18 = iVar15 - 4" identifier = (binary_expression "iVar15 - 4" identifier - number_literal)) ;) (if_statement "if ((*(byte *)(iVar10 + 1) & 4) == 0) {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;\n    if ((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))) {\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }\n    (**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);\n    *(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;\nLAB_000d1bac:\n    uVar23 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }\n  else {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = uVar2 / uVar18;\n    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);\n    if (iVar4 == 0) goto LAB_000d1bac;\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar2 = uVar2 % uVar18;\n    iStack_dc = iVar4;\nLAB_000d1bb8:\n    iVar14 = uVar23 << 2;\n    iVar4 = *(int *)(pcVar13 + 0xbe21c);\n    iVar5 = *(int *)(pcVar13 + 0xbe21c);\n    iVar6 = *(int *)(pcVar13 + 0xbe21c);\n    iVar7 = *(int *)(pcVar13 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  }" if (parenthesized_expression "((*(byte *)(iVar10 + 1) & 4) == 0)" ( (binary_expression "(*(byte *)(iVar10 + 1) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar10 + 1) & 4)" ( (binary_expression "*(byte *)(iVar10 + 1) & 4" (pointer_expression "*(byte *)(iVar10 + 1)" * (cast_expression "(byte *)(iVar10 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 1)" ( (binary_expression "iVar10 + 1" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;\n    if ((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))) {\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }\n    (**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);\n    *(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;\nLAB_000d1bac:\n    uVar23 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }" { (if_statement "if (uVar18 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;" (assignment_expression "uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18" identifier = (binary_expression "((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18" (parenthesized_expression "((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1)" ( (binary_expression "(*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1" (parenthesized_expression "(*(int *)(iVar10 + 0x2c) + -1 + uVar18)" ( (binary_expression "*(int *)(iVar10 + 0x2c) + -1 + uVar18" (binary_expression "*(int *)(iVar10 + 0x2c) + -1" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) + number_literal) + identifier) )) - (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) )) / identifier)) ;) (if_statement "if ((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))) {\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }" if (parenthesized_expression "((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2)))" ( (binary_expression "(*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))" (parenthesized_expression "(*(int *)(iVar10 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar10 + 0xc) == 0" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))" ( (comma_expression "iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2)" (assignment_expression "iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))()" identifier = (call_expression "(*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))()" (parenthesized_expression "(*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))" ( (pointer_expression "*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c))" * (cast_expression "(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c))" ( (binary_expression "&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)" (pointer_expression "&DAT_00001030" & identifier) + (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" * (cast_expression "(int *)(pcVar13 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe21c)" ( (binary_expression "pcVar13 + 0xbe21c" identifier + number_literal) ))))) )))) )) (argument_list "()" ( )))) , (binary_expression "iVar4 < (int)(uVar23 << 2)" identifier < (cast_expression "(int)(uVar23 << 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar23 << 2)" ( (binary_expression "uVar23 << 2" identifier << number_literal) ))))) ))) )) (compound_statement "{\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }" { (expression_statement "iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));" (assignment_expression "iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc))" identifier = (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc))" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))" ( (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944)" * (cast_expression "(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0xbe2c8) + 0x5944)" ( (binary_expression "*(int *)(pcVar13 + 0xbe2c8) + 0x5944" (pointer_expression "*(int *)(pcVar13 + 0xbe2c8)" * (cast_expression "(int *)(pcVar13 + 0xbe2c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe2c8)" ( (binary_expression "pcVar13 + 0xbe2c8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(*(undefined4 *)(iVar10 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" * (cast_expression "(undefined4 *)(iVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }" { (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;) })) (expression_statement "*(int *)(iVar10 + 0xc) = iVar4;" (assignment_expression "*(int *)(iVar10 + 0xc) = iVar4" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "(**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);" (call_expression "(**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbe4c4))" ( (pointer_expression "**(code **)(pcVar13 + 0xbe4c4)" * (pointer_expression "*(code **)(pcVar13 + 0xbe4c4)" * (cast_expression "(code **)(pcVar13 + 0xbe4c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbe4c4)" ( (binary_expression "pcVar13 + 0xbe4c4" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2)" ( (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" * (cast_expression "(undefined4 *)(iVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) , number_literal , (binary_expression "uVar23 << 2" identifier << number_literal) ))) ;) (expression_statement "*(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;" (assignment_expression "*(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4" (pointer_expression "*(byte *)(iVar10 + 1)" * (cast_expression "(byte *)(iVar10 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 1)" ( (binary_expression "iVar10 + 1" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar10 + 1) | 4" (pointer_expression "*(byte *)(iVar10 + 1)" * (cast_expression "(byte *)(iVar10 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 1)" ( (binary_expression "iVar10 + 1" identifier + number_literal) )))) | number_literal)) ;) (labeled_statement "LAB_000d1bac:\n    uVar23 = 0;" statement_identifier : (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;)) (if_statement "if (iStack_dc != 0) goto LAB_000d1bb8;" if (parenthesized_expression "(iStack_dc != 0)" ( (binary_expression "iStack_dc != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1bb8;" goto statement_identifier ;)) }) (else_clause "else {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = uVar2 / uVar18;\n    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);\n    if (iVar4 == 0) goto LAB_000d1bac;\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar2 = uVar2 % uVar18;\n    iStack_dc = iVar4;\nLAB_000d1bb8:\n    iVar14 = uVar23 << 2;\n    iVar4 = *(int *)(pcVar13 + 0xbe21c);\n    iVar5 = *(int *)(pcVar13 + 0xbe21c);\n    iVar6 = *(int *)(pcVar13 + 0xbe21c);\n    iVar7 = *(int *)(pcVar13 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  }" else (compound_statement "{\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = uVar2 / uVar18;\n    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);\n    if (iVar4 == 0) goto LAB_000d1bac;\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar2 = uVar2 % uVar18;\n    iStack_dc = iVar4;\nLAB_000d1bb8:\n    iVar14 = uVar23 << 2;\n    iVar4 = *(int *)(pcVar13 + 0xbe21c);\n    iVar5 = *(int *)(pcVar13 + 0xbe21c);\n    iVar6 = *(int *)(pcVar13 + 0xbe21c);\n    iVar7 = *(int *)(pcVar13 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  }" { (if_statement "if (uVar18 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar23 = uVar2 / uVar18;" (assignment_expression "uVar23 = uVar2 / uVar18" identifier = (binary_expression "uVar2 / uVar18" identifier / identifier)) ;) (expression_statement "iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);" (assignment_expression "iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4)" * (cast_expression "(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0xc) + uVar23 * 4)" ( (binary_expression "*(int *)(iVar10 + 0xc) + uVar23 * 4" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) + (binary_expression "uVar23 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000d1bac;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000d1bac;" goto statement_identifier ;)) (if_statement "if (uVar18 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar2 = uVar2 % uVar18;" (assignment_expression "uVar2 = uVar2 % uVar18" identifier = (binary_expression "uVar2 % uVar18" identifier % identifier)) ;) (expression_statement "iStack_dc = iVar4;" (assignment_expression "iStack_dc = iVar4" identifier = identifier) ;) (labeled_statement "LAB_000d1bb8:\n    iVar14 = uVar23 << 2;" statement_identifier : (expression_statement "iVar14 = uVar23 << 2;" (assignment_expression "iVar14 = uVar23 << 2" identifier = (binary_expression "uVar23 << 2" identifier << number_literal)) ;)) (expression_statement "iVar4 = *(int *)(pcVar13 + 0xbe21c);" (assignment_expression "iVar4 = *(int *)(pcVar13 + 0xbe21c)" identifier = (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" * (cast_expression "(int *)(pcVar13 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe21c)" ( (binary_expression "pcVar13 + 0xbe21c" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(pcVar13 + 0xbe21c);" (assignment_expression "iVar5 = *(int *)(pcVar13 + 0xbe21c)" identifier = (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" * (cast_expression "(int *)(pcVar13 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe21c)" ( (binary_expression "pcVar13 + 0xbe21c" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar13 + 0xbe21c);" (assignment_expression "iVar6 = *(int *)(pcVar13 + 0xbe21c)" identifier = (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" * (cast_expression "(int *)(pcVar13 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe21c)" ( (binary_expression "pcVar13 + 0xbe21c" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar13 + 0xbe2b8);" (assignment_expression "iVar7 = *(int *)(pcVar13 + 0xbe2b8)" identifier = (pointer_expression "*(int *)(pcVar13 + 0xbe2b8)" * (cast_expression "(int *)(pcVar13 + 0xbe2b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe2b8)" ( (binary_expression "pcVar13 + 0xbe2b8" identifier + number_literal) ))))) ;) (do_statement "do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);" do (compound_statement "{\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    }" { (expression_statement "*(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;" (assignment_expression "*(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc" (pointer_expression "*(int *)(*(int *)(iVar10 + 0xc) + iVar14)" * (cast_expression "(int *)(*(int *)(iVar10 + 0xc) + iVar14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0xc) + iVar14)" ( (binary_expression "*(int *)(iVar10 + 0xc) + iVar14" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) + identifier) )))) = identifier) ;) (if_statement "if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }" if (parenthesized_expression "(uVar2 < uVar18)" ( (binary_expression "uVar2 < uVar18" identifier < identifier) )) (compound_statement "{\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }" { (expression_statement "piVar11 = piVar16;" (assignment_expression "piVar11 = piVar16" identifier = identifier) ;) (if_statement "if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }" if (parenthesized_expression "(uVar18 < uVar2 + (int)piVar16)" ( (binary_expression "uVar18 < uVar2 + (int)piVar16" identifier < (binary_expression "uVar2 + (int)piVar16" identifier + (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n          piVar11 = (int *)(uVar18 - uVar2);\n        }" { (expression_statement "piVar11 = (int *)(uVar18 - uVar2);" (assignment_expression "piVar11 = (int *)(uVar18 - uVar2)" identifier = (cast_expression "(int *)(uVar18 - uVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar18 - uVar2)" ( (binary_expression "uVar18 - uVar2" identifier - identifier) )))) ;) })) (if_statement "if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }" if (parenthesized_expression "(local_98 == (undefined *)0x0)" ( (binary_expression "local_98 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }" { (expression_statement "iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);" (assignment_expression "iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2)" identifier = (call_expression "(*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2)" (parenthesized_expression "(*(code *)(iVar4 + 0x491c))" ( (pointer_expression "*(code *)(iVar4 + 0x491c)" * (cast_expression "(code *)(iVar4 + 0x491c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x491c)" ( (binary_expression "iVar4 + 0x491c" identifier + number_literal) )))) )) (argument_list "(*puVar19,iStack_dc,&iStack_d8,2)" ( (pointer_expression "*puVar19" * identifier) , identifier , (pointer_expression "&iStack_d8" & identifier) , number_literal )))) ;) (if_statement "if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }" { (expression_statement "iVar8 = *(int *)(iStack_d8 + 4);" (assignment_expression "iVar8 = *(int *)(iStack_d8 + 4)" identifier = (pointer_expression "*(int *)(iStack_d8 + 4)" * (cast_expression "(int *)(iStack_d8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_d8 + 4)" ( (binary_expression "iStack_d8 + 4" identifier + number_literal) ))))) ;) (expression_statement "iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);" (assignment_expression "iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8)" identifier = (call_expression "(*(code *)(iVar5 + 0x2220))(iVar8)" (parenthesized_expression "(*(code *)(iVar5 + 0x2220))" ( (pointer_expression "*(code *)(iVar5 + 0x2220)" * (cast_expression "(code *)(iVar5 + 0x2220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2220)" ( (binary_expression "iVar5 + 0x2220" identifier + number_literal) )))) )) (argument_list "(iVar8)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);" (call_expression "(**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbe598))" ( (pointer_expression "**(code **)(pcVar13 + 0xbe598)" * (pointer_expression "*(code **)(pcVar13 + 0xbe598)" * (cast_expression "(code **)(pcVar13 + 0xbe598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbe598)" ( (binary_expression "pcVar13 + 0xbe598" identifier + number_literal) ))))) )) (argument_list "(piVar12,iVar8 + uVar2 + 4,piVar11)" ( identifier , (binary_expression "iVar8 + uVar2 + 4" (binary_expression "iVar8 + uVar2" identifier + identifier) + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000d1dcc;" goto statement_identifier ;) })) }) (else_clause "else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }" else (compound_statement "{\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }" { (expression_statement "iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);" (assignment_expression "iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0)" identifier = (call_expression "(*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0)" (parenthesized_expression "(*(code *)(iVar4 + 0x491c))" ( (pointer_expression "*(code *)(iVar4 + 0x491c)" * (cast_expression "(code *)(iVar4 + 0x491c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x491c)" ( (binary_expression "iVar4 + 0x491c" identifier + number_literal) )))) )) (argument_list "(*puVar19,iStack_dc,&iStack_d8,0)" ( (pointer_expression "*puVar19" * identifier) , identifier , (pointer_expression "&iStack_d8" & identifier) , number_literal )))) ;) (expression_statement "iVar8 = iStack_d8;" (assignment_expression "iVar8 = iStack_d8" identifier = identifier) ;) (if_statement "if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }" { (expression_statement "iVar9 = *(int *)(iStack_d8 + 4);" (assignment_expression "iVar9 = *(int *)(iStack_d8 + 4)" identifier = (pointer_expression "*(int *)(iStack_d8 + 4)" * (cast_expression "(int *)(iStack_d8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_d8 + 4)" ( (binary_expression "iStack_d8 + 4" identifier + number_literal) ))))) ;) (expression_statement "iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);" (assignment_expression "iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9)" identifier = (call_expression "(*(code *)(iVar5 + 0x2220))(iVar9)" (parenthesized_expression "(*(code *)(iVar5 + 0x2220))" ( (pointer_expression "*(code *)(iVar5 + 0x2220)" * (cast_expression "(code *)(iVar5 + 0x2220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2220)" ( (binary_expression "iVar5 + 0x2220" identifier + number_literal) )))) )) (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "iVar15 = FUN_000c6d30(iVar8);" (assignment_expression "iVar15 = FUN_000c6d30(iVar8)" identifier = (call_expression "FUN_000c6d30(iVar8)" identifier (argument_list "(iVar8)" ( identifier )))) ;) (if_statement "if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }" { (expression_statement "(**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);" (call_expression "(**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbe598))" ( (pointer_expression "**(code **)(pcVar13 + 0xbe598)" * (pointer_expression "*(code **)(pcVar13 + 0xbe598)" * (cast_expression "(code **)(pcVar13 + 0xbe598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbe598)" ( (binary_expression "pcVar13 + 0xbe598" identifier + number_literal) ))))) )) (argument_list "(iVar9 + uVar2 + 4,piVar12,piVar11)" ( (binary_expression "iVar9 + uVar2 + 4" (binary_expression "iVar9 + uVar2" identifier + identifier) + number_literal) , identifier , identifier ))) ;) })) (labeled_statement "LAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);" statement_identifier : (expression_statement "(*(code *)(iVar6 + 0x49ec))(iStack_d8);" (call_expression "(*(code *)(iVar6 + 0x49ec))(iStack_d8)" (parenthesized_expression "(*(code *)(iVar6 + 0x49ec))" ( (pointer_expression "*(code *)(iVar6 + 0x49ec)" * (cast_expression "(code *)(iVar6 + 0x49ec)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x49ec)" ( (binary_expression "iVar6 + 0x49ec" identifier + number_literal) )))) )) (argument_list "(iStack_d8)" ( identifier ))) ;)) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) })) }))) (expression_statement "piVar16 = (int *)((int)piVar16 - (int)piVar11);" (assignment_expression "piVar16 = (int *)((int)piVar16 - (int)piVar11)" identifier = (cast_expression "(int *)((int)piVar16 - (int)piVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 - (int)piVar11)" ( (binary_expression "(int)piVar16 - (int)piVar11" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar12 = (int *)((int)piVar12 + (int)piVar11);" (assignment_expression "piVar12 = (int *)((int)piVar12 + (int)piVar11)" identifier = (cast_expression "(int *)((int)piVar12 + (int)piVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + (int)piVar11)" ( (binary_expression "(int)piVar12 + (int)piVar11" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (piVar16 == (int *)0x0) goto LAB_000d1a60;" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;)) }) (else_clause "else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }" else (compound_statement "{\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }" { (expression_statement "iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);" (assignment_expression "iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4)" identifier = (pointer_expression "*(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4)" * (cast_expression "(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0xc) + iVar14 + 4)" ( (binary_expression "*(int *)(iVar10 + 0xc) + iVar14 + 4" (binary_expression "*(int *)(iVar10 + 0xc) + iVar14" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) + identifier) + number_literal) ))))) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (if_statement "if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }" { (expression_statement "iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);" (assignment_expression "iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc)" identifier = (call_expression "(*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc)" (parenthesized_expression "(*(code *)(iVar7 + 0x43f4))" ( (pointer_expression "*(code *)(iVar7 + 0x43f4)" * (cast_expression "(code *)(iVar7 + 0x43f4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x43f4)" ( (binary_expression "iVar7 + 0x43f4" identifier + number_literal) )))) )) (argument_list "(puVar19,iStack_dc,0,&iStack_dc)" ( identifier , identifier , number_literal , (pointer_expression "&iStack_dc" & identifier) )))) ;) (expression_statement "iVar8 = iStack_dc;" (assignment_expression "iVar8 = iStack_dc" identifier = identifier) ;) })) (expression_statement "iStack_dc = iVar8;" (assignment_expression "iStack_dc = iVar8" identifier = identifier) ;) (expression_statement "uVar2 = uVar2 - uVar18;" (assignment_expression "uVar2 = uVar2 - uVar18" identifier = (binary_expression "uVar2 - uVar18" identifier - identifier)) ;) }))) (if_statement "if (iVar15 != 0) goto LAB_000d1a60;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;)) (expression_statement "iVar14 = iVar14 + 4;" (assignment_expression "iVar14 = iVar14 + 4" identifier = (binary_expression "iVar14 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_dc != 0)" ( (binary_expression "iStack_dc != 0" identifier != number_literal) )) ;) (if_statement "if (piVar16 == (int *)0x0) goto LAB_000d1a60;" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;)) }))) (expression_statement "iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f);" (assignment_expression "iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f)" identifier = (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f)" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))" ( (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" * (cast_expression "(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" ( (binary_expression "*(int *)(pcVar13 + 0xbe2b8) + 0x3b28" (pointer_expression "*(int *)(pcVar13 + 0xbe2b8)" * (cast_expression "(int *)(pcVar13 + 0xbe2b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe2b8)" ( (binary_expression "pcVar13 + 0xbe2b8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(0x1094f)" ( number_literal )))) ;) (labeled_statement "LAB_000d1a60:\n  if (iStack_d4 != **(int **)(pcVar13 + 0xbe590)) {\n    pcVar13 = *(code **)(pcVar13 + 0xbe564);\n    iVar4 = iStack_d4;\n    (*pcVar13)();\n    if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }\n    return iVar15;\n  }" statement_identifier : (if_statement "if (iStack_d4 != **(int **)(pcVar13 + 0xbe590)) {\n    pcVar13 = *(code **)(pcVar13 + 0xbe564);\n    iVar4 = iStack_d4;\n    (*pcVar13)();\n    if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }\n    return iVar15;\n  }" if (parenthesized_expression "(iStack_d4 != **(int **)(pcVar13 + 0xbe590))" ( (binary_expression "iStack_d4 != **(int **)(pcVar13 + 0xbe590)" identifier != (pointer_expression "**(int **)(pcVar13 + 0xbe590)" * (pointer_expression "*(int **)(pcVar13 + 0xbe590)" * (cast_expression "(int **)(pcVar13 + 0xbe590)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbe590)" ( (binary_expression "pcVar13 + 0xbe590" identifier + number_literal) )))))) )) (compound_statement "{\n    pcVar13 = *(code **)(pcVar13 + 0xbe564);\n    iVar4 = iStack_d4;\n    (*pcVar13)();\n    if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }\n    return iVar15;\n  }" { (expression_statement "pcVar13 = *(code **)(pcVar13 + 0xbe564);" (assignment_expression "pcVar13 = *(code **)(pcVar13 + 0xbe564)" identifier = (pointer_expression "*(code **)(pcVar13 + 0xbe564)" * (cast_expression "(code **)(pcVar13 + 0xbe564)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbe564)" ( (binary_expression "pcVar13 + 0xbe564" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = iStack_d4;" (assignment_expression "iVar4 = iStack_d4" identifier = identifier) ;) (expression_statement "(*pcVar13)();" (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }" if (parenthesized_expression "(*(char *)(iVar4 + 0x45) == '\0')" ( (binary_expression "*(char *)(iVar4 + 0x45) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x45)" * (cast_expression "(char *)(iVar4 + 0x45)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x45)" ( (binary_expression "iVar4 + 0x45" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }" { (expression_statement "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();" (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))()" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))" ( (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" * (cast_expression "(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" ( (binary_expression "*(int *)(pcVar13 + 0xbdd3c) + 0x5c00" (pointer_expression "*(int *)(pcVar13 + 0xbdd3c)" * (cast_expression "(int *)(pcVar13 + 0xbdd3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbdd3c)" ( (binary_expression "pcVar13 + 0xbdd3c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar2 = *(uint *)(iVar4 + 0x2c);" (assignment_expression "uVar2 = *(uint *)(iVar4 + 0x2c)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x2c)" * (cast_expression "(uint *)(iVar4 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2c)" ( (binary_expression "iVar4 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x38) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x38)" * (cast_expression "(undefined4 *)(iVar4 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(iVar4 + 0x3c) = uVar2;" (assignment_expression "*(uint *)(iVar4 + 0x3c) = uVar2" (pointer_expression "*(uint *)(iVar4 + 0x3c)" * (cast_expression "(uint *)(iVar4 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x3c)" ( (binary_expression "iVar4 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);" (assignment_expression "iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2)" identifier = (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2)" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))" ( (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068)" * (cast_expression "(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0xbdd3c) + 0x1068)" ( (binary_expression "*(int *)(pcVar13 + 0xbdd3c) + 0x1068" (pointer_expression "*(int *)(pcVar13 + 0xbdd3c)" * (cast_expression "(int *)(pcVar13 + 0xbdd3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbdd3c)" ( (binary_expression "pcVar13 + 0xbdd3c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar2 + 0x11 < uVar2)" ( (binary_expression "uVar2 + 0x11 < uVar2" (binary_expression "uVar2 + 0x11" identifier + number_literal) < identifier) )))) ;) (if_statement "if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar15 = 7;\n      }" { (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" identifier = number_literal) ;) }) (else_clause "else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }" else (compound_statement "{\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }" { (expression_statement "iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);" (assignment_expression "iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0)" identifier = (call_expression "FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0)" identifier (argument_list "(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar4 + 0x3c)" * (cast_expression "(undefined4 *)(iVar4 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x3c)" ( (binary_expression "iVar4 + 0x3c" identifier + number_literal) )))) , identifier , number_literal )))) ;) (if_statement "if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }" { (expression_statement "(**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);" (call_expression "(**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbdfe4))" ( (pointer_expression "**(code **)(pcVar13 + 0xbdfe4)" * (pointer_expression "*(code **)(pcVar13 + 0xbdfe4)" * (cast_expression "(code **)(pcVar13 + 0xbdfe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbdfe4)" ( (binary_expression "pcVar13 + 0xbdfe4" identifier + number_literal) ))))) )) (argument_list "(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11)" ( (binary_expression "iVar10 + *(int *)(iVar4 + 0x3c)" identifier + (pointer_expression "*(int *)(iVar4 + 0x3c)" * (cast_expression "(int *)(iVar4 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x3c)" ( (binary_expression "iVar4 + 0x3c" identifier + number_literal) ))))) , number_literal , number_literal ))) ;) (expression_statement "*(int *)(iVar4 + 0x10) = iVar10;" (assignment_expression "*(int *)(iVar4 + 0x10) = iVar10" (pointer_expression "*(int *)(iVar4 + 0x10)" * (cast_expression "(int *)(iVar4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }" else (compound_statement "{\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }" { (expression_statement "(**(code **)(pcVar13 + 0xbdb5c))(iVar10);" (call_expression "(**(code **)(pcVar13 + 0xbdb5c))(iVar10)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbdb5c))" ( (pointer_expression "**(code **)(pcVar13 + 0xbdb5c)" * (pointer_expression "*(code **)(pcVar13 + 0xbdb5c)" * (cast_expression "(code **)(pcVar13 + 0xbdb5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbdb5c)" ( (binary_expression "pcVar13 + 0xbdb5c" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier ))) ;) }))) }))) }) (else_clause "else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }" else (compound_statement "{\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }" { (expression_statement "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();" (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))()" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))" ( (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" * (cast_expression "(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" ( (binary_expression "*(int *)(pcVar13 + 0xbdd3c) + 0x5c00" (pointer_expression "*(int *)(pcVar13 + 0xbdd3c)" * (cast_expression "(int *)(pcVar13 + 0xbdd3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbdd3c)" ( (binary_expression "pcVar13 + 0xbdd3c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);" (assignment_expression "*(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24)" (pointer_expression "*(undefined4 *)(iVar4 + 0x3c)" * (cast_expression "(undefined4 *)(iVar4 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x3c)" ( (binary_expression "iVar4 + 0x3c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar4 + 0x24)" * (cast_expression "(undefined4 *)(iVar4 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x24)" ( (binary_expression "iVar4 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);" (assignment_expression "*(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20)" (pointer_expression "*(undefined4 *)(iVar4 + 0x38)" * (cast_expression "(undefined4 *)(iVar4 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" * (cast_expression "(undefined4 *)(iVar4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) }))) (return_statement "return iVar15;" return identifier ;) }))) (return_statement "return iVar15;" return identifier ;) })))
(translation_unit "int clearDatabasePage(BtShared *pBt,Pgno pgno,int freePageFlag,int *pnChange)\n\n{\n  ushort uVar1;\n  PgHdr *pPg;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  PgHdr **ppPVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uchar *pBuf;\n  BtCursor *pCur;\n  CellInfo *pInfo;\n  int *unaff_s1;\n  int iVar11;\n  int unaff_s2;\n  int iVar12;\n  void *pvVar13;\n  int iVar14;\n  int iVar15;\n  int *unaff_s4;\n  PgHdr **ppPVar16;\n  undefined4 unaff_s5;\n  code *unaff_s6;\n  undefined4 *puVar17;\n  code *unaff_s7;\n  int in_t9;\n  code *pcVar18;\n  uint unaff_s8;\n  code *pcVar19;\n  uint uVar20;\n  int iStack_dc;\n  PgHdr *pPStack_d8;\n  BtCursor *pBStack_d4;\n  int iStack_d0;\n  CellInfo *pCStack_cc;\n  void *pvStack_c8;\n  uint uStack_c4;\n  PgHdr **ppPStack_c0;\n  undefined4 uStack_bc;\n  code *pcStack_b8;\n  code *pcStack_b4;\n  uint uStack_b0;\n  code *pcStack_ac;\n  code *pcStack_98;\n  PgHdr *pPStack_90;\n  int iStack_8c;\n  int iStack_88;\n  int *piStack_84;\n  int iStack_80;\n  BtShared *pBStack_7c;\n  int *piStack_78;\n  code *pcStack_74;\n  undefined4 uStack_60;\n  int iStack_58;\n  MemPage *pPage;\n  int rc;\n  CellInfo info;\n  \n  iStack_58 = in_t9 + 0xc65e0;\n  iVar2 = **(int **)(&LAB_000beb8c + in_t9);\n  if (pBt->nPage < pgno) {\n    iStack_88 = (*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x3b28))(0x119d6);\n    pInfo = (CellInfo *)freePageFlag;\n  }\n  else {\n    uStack_60 = 0;\n    pInfo = (CellInfo *)&pPage;\n    rc = (*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x46c4))();\n    iStack_88 = rc;\n    unaff_s4 = pnChange;\n    if (rc == 0) {\n      if (pPage->bBusy == '\0') {\n        pPage->bBusy = '\x01';\n        uVar3 = (uint)pPage->nCell;\n        unaff_s8 = (uint)pPage->hdrOffset;\n        if (uVar3 != 0) {\n          unaff_s2 = 0;\n          unaff_s7 = (code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220);\n          unaff_s6 = (code *)(*(int *)(iStack_58 + -0x7d6c) + 0x1340);\n          unaff_s5 = *(undefined4 *)(iStack_58 + -0x7d6c);\n          iVar11 = 0;\n          do {\n            rc = 0;\n            unaff_s1 = (int *)(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage));\n            if (pPage->leaf == '\0') {\n              pgno = (*unaff_s7)(unaff_s1);\n              pInfo = (CellInfo *)0x1;\n              rc = (*unaff_s6)(pBt,pgno,1,pnChange);\n              if (rc != 0) goto LAB_000d1454;\n            }\n            rc = 0;\n            pInfo = &info;\n            pgno = (Pgno)unaff_s1;\n            rc = clearCell(pPage,(uchar *)unaff_s1,pInfo);\n            if (rc != 0) goto LAB_000d1454;\n            iVar11 = iVar11 + 1;\n            uVar3 = (uint)pPage->nCell;\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar11 < (int)uVar3);\n        }\n        if (pPage->leaf == '\0') {\n          pgno = (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220))(pPage->aData + unaff_s8 + 8);\n          pInfo = (CellInfo *)0x1;\n          rc = clearDatabasePage(pBt,pgno,1,pnChange);\n          if (rc != 0) goto LAB_000d1454;\n        }\n        else if (pnChange != (int *)0x0) {\n          *pnChange = *pnChange + uVar3;\n        }\n        if (freePageFlag == 0) {\n          rc = sqlite3PagerWrite(pPage->pDbPage);\n          if (rc == 0) {\n            pgno = pPage->aData[unaff_s8] | 8;\n            (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))();\n          }\n        }\n        else {\n          pgno = (Pgno)&rc;\n          freePage(pPage,(int *)pgno);\n        }\n      }\n      else {\n        rc = (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      pPage->bBusy = '\0';\n      (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x5aac))(pPage);\n      iStack_88 = rc;\n    }\n  }\n  if (iVar2 == **(int **)(iStack_58 + -0x7a54)) {\n    return iStack_88;\n  }\n  pcVar18 = *(code **)(iStack_58 + -0x7a80);\n  pcVar19 = dbpageUpdate;\n  (*pcVar18)();\n  pcStack_98 = pcVar18 + 0xc62b8;\n  iStack_8c = **(int **)(pcVar18 + 0xbe864);\n  pPStack_90 = (PgHdr *)0x0;\n  piStack_84 = unaff_s1;\n  iStack_80 = unaff_s2;\n  pBStack_7c = pBt;\n  piStack_78 = unaff_s4;\n  pcStack_74 = pcVar19;\n  if (*(int *)(*(int *)(iVar2 + 0xc) + 0x24) << 3 < 0) {\n    iVar11 = *(int *)(pcVar18 + 0xbe2f4) + -0x4564;\nLAB_000d187c:\n    (**(code **)(pcStack_98 + -0x7fa8))(*(undefined4 *)(iVar2 + 8));\n                    /* WARNING: Subroutine does not return */\n    sqlite3_mprintf((char *)(*(int *)(pcStack_98 + -0x7fc4) + -0x60a0),iVar11);\n  }\n  if ((int *)pgno == (int *)0x1) {\n    iVar11 = *(int *)(pcVar18 + 0xbe2f4) + -0x4558;\n    goto LAB_000d187c;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0xbe318);\n  uVar3 = (*pcVar18)(*(undefined4 *)&pInfo->nKey);\n  uVar4 = (*pcVar18)((int)pInfo->nKey);\n  if (uVar3 != uVar4) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4538;\n    goto LAB_000d187c;\n  }\n  uVar10._0_2_ = pInfo->nLocal;\n  uVar10._2_2_ = pInfo->nSize;\n  iVar11 = (**(code **)(pcStack_98 + -0x7fa4))(uVar10);\n  if (iVar11 == 0) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4548;\n    goto LAB_000d187c;\n  }\n  iVar12 = *(int *)(iVar2 + 0xc);\n  iVar11 = (*(code *)(*(int *)(pcStack_98 + -0x7d64) + -0x6d2c))(iVar12,iVar11);\n  if (iVar11 < 0) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4548;\n    goto LAB_000d187c;\n  }\n  if (uVar3 == 0) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;\n    goto LAB_000d187c;\n  }\n  pvVar13 = *(void **)(*(int *)(iVar12 + 0x10) + iVar11 * 0x10 + 4);\n  if (pvVar13 == (void *)0x0) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;\n    goto LAB_000d187c;\n  }\n  if (*(uint *)(*(int *)((int)pvVar13 + 4) + 0x2c) < uVar3) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;\n    goto LAB_000d187c;\n  }\n  if (*(char *)((*(ushort *)(pInfo->nPayload + 8) & 0x1f) + *(int *)(pcStack_98 + -0x7fc4) + 0x65d0)\n      != '\x04') {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4574;\n    goto LAB_000d187c;\n  }\n  ppPVar16 = *(PgHdr ***)(*(int *)((int)pvVar13 + 4) + 0x20);\n  ppPVar5 = (PgHdr **)(**(code **)(pcStack_98 + -0x7f60))();\n  iVar11 = 0;\n  if (ppPVar5 != ppPVar16) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4574;\n    goto LAB_000d187c;\n  }\n  ppPVar5 = &pPStack_90;\n  uVar4 = uVar3;\n  iVar2 = (*(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x491c))\n                    (**(undefined4 **)((int)pvVar13 + 4),uVar3,ppPVar5,0);\n  if ((iVar2 == 0) && (iVar2 = sqlite3PagerWrite(pPStack_90), iVar2 == 0)) {\n    pvVar13 = pPStack_90->pData;\n    uVar4 = (**(code **)(pcStack_98 + -0x7f5c))(pInfo->nPayload);\n    ppPVar5 = ppPVar16;\n    (**(code **)(pcStack_98 + -0x7a4c))(pvVar13);\n  }\n  (*(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x49ec))(pPStack_90);\n  if (iStack_8c == **(int **)(pcStack_98 + -0x7a54)) {\n    return iVar2;\n  }\n  pcVar18 = *(code **)(pcStack_98 + -0x7a80);\n  pcVar19 = accessPayload;\n  iVar12 = iStack_8c;\n  (*pcVar18)();\n  pBStack_d4 = (BtCursor *)**(undefined4 **)(pcVar18 + 0xbe590);\n  iVar15 = *(int *)(iVar12 + 0x74);\n  puVar17 = *(undefined4 **)(iVar12 + 0x14);\n  iStack_d0 = iVar2;\n  pCStack_cc = pInfo;\n  pvStack_c8 = pvVar13;\n  uStack_c4 = uVar3;\n  ppPStack_c0 = ppPVar16;\n  uStack_bc = unaff_s5;\n  pcStack_b8 = unaff_s6;\n  pcStack_b4 = unaff_s7;\n  uStack_b0 = unaff_s8;\n  pcStack_ac = pcVar19;\n  (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x5c00))();\n  iVar2 = *(int *)(iVar12 + 0x28);\n  uVar3 = (uint)*(ushort *)(iVar12 + 0x30);\n  if (puVar17[9] - uVar3 < (uint)(iVar2 - *(int *)(iVar15 + 0x38))) {\n    iVar15 = (*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }\n  if (uVar4 < uVar3) {\n    ppPVar16 = ppPVar5;\n    if (uVar3 < uVar4 + (int)ppPVar5) {\n      ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n    }\n    if (pcStack_98 == (code *)0x0) {\n      (**(code **)(pcVar18 + 0xbe598))(iVar11,iVar2 + uVar4,ppPVar16);\n    }\n    else {\n      iVar15 = sqlite3PagerWrite(*(PgHdr **)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar18 + 0xbe598))(iVar2 + uVar4,iVar11,ppPVar16);\n    }\n    iVar11 = iVar11 + (int)ppPVar16;\n    ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);\n    uVar4 = 0;\n  }\n  else {\n    uVar4 = uVar4 - uVar3;\n  }\n  iVar15 = 0;\n  if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n  iVar15 = puVar17[9];\n  uVar1 = *(ushort *)(iVar12 + 0x30);\n  iStack_dc = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x2220))(iVar2 + (uint)uVar1);\n  uVar3 = iVar15 - 4;\n  if ((*(byte *)(iVar12 + 1) & 4) == 0) {\n    if (uVar3 == 0) {\n      trap(7);\n    }\n    uVar20 = ((*(int *)(iVar12 + 0x2c) + -1 + uVar3) - (uint)uVar1) / uVar3;\n    if ((*(int *)(iVar12 + 0xc) == 0) ||\n       (iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x1030))(), iVar2 < (int)(uVar20 << 2))) {\n      iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar12 + 0xc));\n      if (iVar2 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar12 + 0xc) = iVar2;\n    }\n    (**(code **)(pcVar18 + 0xbe4c4))(*(undefined4 *)(iVar12 + 0xc),0,uVar20 << 2);\n    *(byte *)(iVar12 + 1) = *(byte *)(iVar12 + 1) | 4;\nLAB_000d1bac:\n    uVar20 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }\n  else {\n    if (uVar3 == 0) {\n      trap(7);\n    }\n    uVar20 = uVar4 / uVar3;\n    iVar2 = *(int *)(*(int *)(iVar12 + 0xc) + uVar20 * 4);\n    if (iVar2 == 0) goto LAB_000d1bac;\n    if (uVar3 == 0) {\n      trap(7);\n    }\n    uVar4 = uVar4 % uVar3;\n    iStack_dc = iVar2;\nLAB_000d1bb8:\n    iVar14 = uVar20 << 2;\n    iVar2 = *(int *)(pcVar18 + 0xbe21c);\n    iVar6 = *(int *)(pcVar18 + 0xbe21c);\n    iVar7 = *(int *)(pcVar18 + 0xbe21c);\n    iVar8 = *(int *)(pcVar18 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar12 + 0xc) + iVar14) = iStack_dc;\n      if (uVar4 < uVar3) {\n        ppPVar16 = ppPVar5;\n        if (uVar3 < uVar4 + (int)ppPVar5) {\n          ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n        }\n        if (pcStack_98 == (code *)0x0) {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,2);\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            (**(code **)(pcVar18 + 0xbe598))(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,0);\n          pPg = pPStack_d8;\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            iVar15 = sqlite3PagerWrite(pPg);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar7 + 0x49ec))(pPStack_d8);\n            uVar4 = 0;\n          }\n        }\n        ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);\n        iVar11 = iVar11 + (int)ppPVar16;\n        if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar9 = *(int *)(*(int *)(iVar12 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar9 == 0) {\n          iVar15 = (*(code *)(iVar8 + 0x43f4))(puVar17,iStack_dc,0,&iStack_dc);\n          iVar9 = iStack_dc;\n        }\n        iStack_dc = iVar9;\n        uVar4 = uVar4 - uVar3;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n  }\n  iVar15 = (*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))(0x1094f);\nLAB_000d1a60:\n  if (pBStack_d4 != (BtCursor *)**(int **)(pcVar18 + 0xbe590)) {\n    pcVar18 = *(code **)(pcVar18 + 0xbe564);\n    pCur = pBStack_d4;\n    (*pcVar18)();\n    if (pCur->curIntKey == '\0') {\n      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();\n      uVar3 = (pCur->info).nPayload;\n      *(undefined4 *)&pCur->nKey = 0;\n      *(uint *)((int)&pCur->nKey + 4) = uVar3;\n      pBuf = (uchar *)(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x1068))(uVar3 + 0x11 < uVar3);\n      if (pBuf == (uchar *)0x0) {\n        iVar2 = 7;\n      }\n      else {\n        iVar2 = accessPayload(pCur,0,(u32)pCur->nKey,pBuf,0);\n        if (iVar2 == 0) {\n          (**(code **)(pcVar18 + 0xbdfe4))(pBuf + (int)pCur->nKey,0,0x11);\n          pCur->pKey = pBuf;\n        }\n        else {\n          (**(code **)(pcVar18 + 0xbdb5c))(pBuf);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();\n      uVar10 = *(undefined4 *)&(pCur->info).nKey;\n      *(int *)((int)&pCur->nKey + 4) = (int)(pCur->info).nKey;\n      *(undefined4 *)&pCur->nKey = uVar10;\n      iVar2 = 0;\n    }\n    return iVar2;\n  }\n  return iVar15;\n}\n\n" (function_definition "int clearDatabasePage(BtShared *pBt,Pgno pgno,int freePageFlag,int *pnChange)\n\n{\n  ushort uVar1;\n  PgHdr *pPg;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  PgHdr **ppPVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uchar *pBuf;\n  BtCursor *pCur;\n  CellInfo *pInfo;\n  int *unaff_s1;\n  int iVar11;\n  int unaff_s2;\n  int iVar12;\n  void *pvVar13;\n  int iVar14;\n  int iVar15;\n  int *unaff_s4;\n  PgHdr **ppPVar16;\n  undefined4 unaff_s5;\n  code *unaff_s6;\n  undefined4 *puVar17;\n  code *unaff_s7;\n  int in_t9;\n  code *pcVar18;\n  uint unaff_s8;\n  code *pcVar19;\n  uint uVar20;\n  int iStack_dc;\n  PgHdr *pPStack_d8;\n  BtCursor *pBStack_d4;\n  int iStack_d0;\n  CellInfo *pCStack_cc;\n  void *pvStack_c8;\n  uint uStack_c4;\n  PgHdr **ppPStack_c0;\n  undefined4 uStack_bc;\n  code *pcStack_b8;\n  code *pcStack_b4;\n  uint uStack_b0;\n  code *pcStack_ac;\n  code *pcStack_98;\n  PgHdr *pPStack_90;\n  int iStack_8c;\n  int iStack_88;\n  int *piStack_84;\n  int iStack_80;\n  BtShared *pBStack_7c;\n  int *piStack_78;\n  code *pcStack_74;\n  undefined4 uStack_60;\n  int iStack_58;\n  MemPage *pPage;\n  int rc;\n  CellInfo info;\n  \n  iStack_58 = in_t9 + 0xc65e0;\n  iVar2 = **(int **)(&LAB_000beb8c + in_t9);\n  if (pBt->nPage < pgno) {\n    iStack_88 = (*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x3b28))(0x119d6);\n    pInfo = (CellInfo *)freePageFlag;\n  }\n  else {\n    uStack_60 = 0;\n    pInfo = (CellInfo *)&pPage;\n    rc = (*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x46c4))();\n    iStack_88 = rc;\n    unaff_s4 = pnChange;\n    if (rc == 0) {\n      if (pPage->bBusy == '\0') {\n        pPage->bBusy = '\x01';\n        uVar3 = (uint)pPage->nCell;\n        unaff_s8 = (uint)pPage->hdrOffset;\n        if (uVar3 != 0) {\n          unaff_s2 = 0;\n          unaff_s7 = (code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220);\n          unaff_s6 = (code *)(*(int *)(iStack_58 + -0x7d6c) + 0x1340);\n          unaff_s5 = *(undefined4 *)(iStack_58 + -0x7d6c);\n          iVar11 = 0;\n          do {\n            rc = 0;\n            unaff_s1 = (int *)(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage));\n            if (pPage->leaf == '\0') {\n              pgno = (*unaff_s7)(unaff_s1);\n              pInfo = (CellInfo *)0x1;\n              rc = (*unaff_s6)(pBt,pgno,1,pnChange);\n              if (rc != 0) goto LAB_000d1454;\n            }\n            rc = 0;\n            pInfo = &info;\n            pgno = (Pgno)unaff_s1;\n            rc = clearCell(pPage,(uchar *)unaff_s1,pInfo);\n            if (rc != 0) goto LAB_000d1454;\n            iVar11 = iVar11 + 1;\n            uVar3 = (uint)pPage->nCell;\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar11 < (int)uVar3);\n        }\n        if (pPage->leaf == '\0') {\n          pgno = (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220))(pPage->aData + unaff_s8 + 8);\n          pInfo = (CellInfo *)0x1;\n          rc = clearDatabasePage(pBt,pgno,1,pnChange);\n          if (rc != 0) goto LAB_000d1454;\n        }\n        else if (pnChange != (int *)0x0) {\n          *pnChange = *pnChange + uVar3;\n        }\n        if (freePageFlag == 0) {\n          rc = sqlite3PagerWrite(pPage->pDbPage);\n          if (rc == 0) {\n            pgno = pPage->aData[unaff_s8] | 8;\n            (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))();\n          }\n        }\n        else {\n          pgno = (Pgno)&rc;\n          freePage(pPage,(int *)pgno);\n        }\n      }\n      else {\n        rc = (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      pPage->bBusy = '\0';\n      (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x5aac))(pPage);\n      iStack_88 = rc;\n    }\n  }\n  if (iVar2 == **(int **)(iStack_58 + -0x7a54)) {\n    return iStack_88;\n  }\n  pcVar18 = *(code **)(iStack_58 + -0x7a80);\n  pcVar19 = dbpageUpdate;\n  (*pcVar18)();\n  pcStack_98 = pcVar18 + 0xc62b8;\n  iStack_8c = **(int **)(pcVar18 + 0xbe864);\n  pPStack_90 = (PgHdr *)0x0;\n  piStack_84 = unaff_s1;\n  iStack_80 = unaff_s2;\n  pBStack_7c = pBt;\n  piStack_78 = unaff_s4;\n  pcStack_74 = pcVar19;\n  if (*(int *)(*(int *)(iVar2 + 0xc) + 0x24) << 3 < 0) {\n    iVar11 = *(int *)(pcVar18 + 0xbe2f4) + -0x4564;\nLAB_000d187c:\n    (**(code **)(pcStack_98 + -0x7fa8))(*(undefined4 *)(iVar2 + 8));\n                    /* WARNING: Subroutine does not return */\n    sqlite3_mprintf((char *)(*(int *)(pcStack_98 + -0x7fc4) + -0x60a0),iVar11);\n  }\n  if ((int *)pgno == (int *)0x1) {\n    iVar11 = *(int *)(pcVar18 + 0xbe2f4) + -0x4558;\n    goto LAB_000d187c;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0xbe318);\n  uVar3 = (*pcVar18)(*(undefined4 *)&pInfo->nKey);\n  uVar4 = (*pcVar18)((int)pInfo->nKey);\n  if (uVar3 != uVar4) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4538;\n    goto LAB_000d187c;\n  }\n  uVar10._0_2_ = pInfo->nLocal;\n  uVar10._2_2_ = pInfo->nSize;\n  iVar11 = (**(code **)(pcStack_98 + -0x7fa4))(uVar10);\n  if (iVar11 == 0) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4548;\n    goto LAB_000d187c;\n  }\n  iVar12 = *(int *)(iVar2 + 0xc);\n  iVar11 = (*(code *)(*(int *)(pcStack_98 + -0x7d64) + -0x6d2c))(iVar12,iVar11);\n  if (iVar11 < 0) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4548;\n    goto LAB_000d187c;\n  }\n  if (uVar3 == 0) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;\n    goto LAB_000d187c;\n  }\n  pvVar13 = *(void **)(*(int *)(iVar12 + 0x10) + iVar11 * 0x10 + 4);\n  if (pvVar13 == (void *)0x0) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;\n    goto LAB_000d187c;\n  }\n  if (*(uint *)(*(int *)((int)pvVar13 + 4) + 0x2c) < uVar3) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;\n    goto LAB_000d187c;\n  }\n  if (*(char *)((*(ushort *)(pInfo->nPayload + 8) & 0x1f) + *(int *)(pcStack_98 + -0x7fc4) + 0x65d0)\n      != '\x04') {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4574;\n    goto LAB_000d187c;\n  }\n  ppPVar16 = *(PgHdr ***)(*(int *)((int)pvVar13 + 4) + 0x20);\n  ppPVar5 = (PgHdr **)(**(code **)(pcStack_98 + -0x7f60))();\n  iVar11 = 0;\n  if (ppPVar5 != ppPVar16) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4574;\n    goto LAB_000d187c;\n  }\n  ppPVar5 = &pPStack_90;\n  uVar4 = uVar3;\n  iVar2 = (*(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x491c))\n                    (**(undefined4 **)((int)pvVar13 + 4),uVar3,ppPVar5,0);\n  if ((iVar2 == 0) && (iVar2 = sqlite3PagerWrite(pPStack_90), iVar2 == 0)) {\n    pvVar13 = pPStack_90->pData;\n    uVar4 = (**(code **)(pcStack_98 + -0x7f5c))(pInfo->nPayload);\n    ppPVar5 = ppPVar16;\n    (**(code **)(pcStack_98 + -0x7a4c))(pvVar13);\n  }\n  (*(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x49ec))(pPStack_90);\n  if (iStack_8c == **(int **)(pcStack_98 + -0x7a54)) {\n    return iVar2;\n  }\n  pcVar18 = *(code **)(pcStack_98 + -0x7a80);\n  pcVar19 = accessPayload;\n  iVar12 = iStack_8c;\n  (*pcVar18)();\n  pBStack_d4 = (BtCursor *)**(undefined4 **)(pcVar18 + 0xbe590);\n  iVar15 = *(int *)(iVar12 + 0x74);\n  puVar17 = *(undefined4 **)(iVar12 + 0x14);\n  iStack_d0 = iVar2;\n  pCStack_cc = pInfo;\n  pvStack_c8 = pvVar13;\n  uStack_c4 = uVar3;\n  ppPStack_c0 = ppPVar16;\n  uStack_bc = unaff_s5;\n  pcStack_b8 = unaff_s6;\n  pcStack_b4 = unaff_s7;\n  uStack_b0 = unaff_s8;\n  pcStack_ac = pcVar19;\n  (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x5c00))();\n  iVar2 = *(int *)(iVar12 + 0x28);\n  uVar3 = (uint)*(ushort *)(iVar12 + 0x30);\n  if (puVar17[9] - uVar3 < (uint)(iVar2 - *(int *)(iVar15 + 0x38))) {\n    iVar15 = (*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }\n  if (uVar4 < uVar3) {\n    ppPVar16 = ppPVar5;\n    if (uVar3 < uVar4 + (int)ppPVar5) {\n      ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n    }\n    if (pcStack_98 == (code *)0x0) {\n      (**(code **)(pcVar18 + 0xbe598))(iVar11,iVar2 + uVar4,ppPVar16);\n    }\n    else {\n      iVar15 = sqlite3PagerWrite(*(PgHdr **)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar18 + 0xbe598))(iVar2 + uVar4,iVar11,ppPVar16);\n    }\n    iVar11 = iVar11 + (int)ppPVar16;\n    ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);\n    uVar4 = 0;\n  }\n  else {\n    uVar4 = uVar4 - uVar3;\n  }\n  iVar15 = 0;\n  if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n  iVar15 = puVar17[9];\n  uVar1 = *(ushort *)(iVar12 + 0x30);\n  iStack_dc = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x2220))(iVar2 + (uint)uVar1);\n  uVar3 = iVar15 - 4;\n  if ((*(byte *)(iVar12 + 1) & 4) == 0) {\n    if (uVar3 == 0) {\n      trap(7);\n    }\n    uVar20 = ((*(int *)(iVar12 + 0x2c) + -1 + uVar3) - (uint)uVar1) / uVar3;\n    if ((*(int *)(iVar12 + 0xc) == 0) ||\n       (iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x1030))(), iVar2 < (int)(uVar20 << 2))) {\n      iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar12 + 0xc));\n      if (iVar2 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar12 + 0xc) = iVar2;\n    }\n    (**(code **)(pcVar18 + 0xbe4c4))(*(undefined4 *)(iVar12 + 0xc),0,uVar20 << 2);\n    *(byte *)(iVar12 + 1) = *(byte *)(iVar12 + 1) | 4;\nLAB_000d1bac:\n    uVar20 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }\n  else {\n    if (uVar3 == 0) {\n      trap(7);\n    }\n    uVar20 = uVar4 / uVar3;\n    iVar2 = *(int *)(*(int *)(iVar12 + 0xc) + uVar20 * 4);\n    if (iVar2 == 0) goto LAB_000d1bac;\n    if (uVar3 == 0) {\n      trap(7);\n    }\n    uVar4 = uVar4 % uVar3;\n    iStack_dc = iVar2;\nLAB_000d1bb8:\n    iVar14 = uVar20 << 2;\n    iVar2 = *(int *)(pcVar18 + 0xbe21c);\n    iVar6 = *(int *)(pcVar18 + 0xbe21c);\n    iVar7 = *(int *)(pcVar18 + 0xbe21c);\n    iVar8 = *(int *)(pcVar18 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar12 + 0xc) + iVar14) = iStack_dc;\n      if (uVar4 < uVar3) {\n        ppPVar16 = ppPVar5;\n        if (uVar3 < uVar4 + (int)ppPVar5) {\n          ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n        }\n        if (pcStack_98 == (code *)0x0) {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,2);\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            (**(code **)(pcVar18 + 0xbe598))(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,0);\n          pPg = pPStack_d8;\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            iVar15 = sqlite3PagerWrite(pPg);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar7 + 0x49ec))(pPStack_d8);\n            uVar4 = 0;\n          }\n        }\n        ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);\n        iVar11 = iVar11 + (int)ppPVar16;\n        if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar9 = *(int *)(*(int *)(iVar12 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar9 == 0) {\n          iVar15 = (*(code *)(iVar8 + 0x43f4))(puVar17,iStack_dc,0,&iStack_dc);\n          iVar9 = iStack_dc;\n        }\n        iStack_dc = iVar9;\n        uVar4 = uVar4 - uVar3;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n  }\n  iVar15 = (*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))(0x1094f);\nLAB_000d1a60:\n  if (pBStack_d4 != (BtCursor *)**(int **)(pcVar18 + 0xbe590)) {\n    pcVar18 = *(code **)(pcVar18 + 0xbe564);\n    pCur = pBStack_d4;\n    (*pcVar18)();\n    if (pCur->curIntKey == '\0') {\n      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();\n      uVar3 = (pCur->info).nPayload;\n      *(undefined4 *)&pCur->nKey = 0;\n      *(uint *)((int)&pCur->nKey + 4) = uVar3;\n      pBuf = (uchar *)(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x1068))(uVar3 + 0x11 < uVar3);\n      if (pBuf == (uchar *)0x0) {\n        iVar2 = 7;\n      }\n      else {\n        iVar2 = accessPayload(pCur,0,(u32)pCur->nKey,pBuf,0);\n        if (iVar2 == 0) {\n          (**(code **)(pcVar18 + 0xbdfe4))(pBuf + (int)pCur->nKey,0,0x11);\n          pCur->pKey = pBuf;\n        }\n        else {\n          (**(code **)(pcVar18 + 0xbdb5c))(pBuf);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();\n      uVar10 = *(undefined4 *)&(pCur->info).nKey;\n      *(int *)((int)&pCur->nKey + 4) = (int)(pCur->info).nKey;\n      *(undefined4 *)&pCur->nKey = uVar10;\n      iVar2 = 0;\n    }\n    return iVar2;\n  }\n  return iVar15;\n}" primitive_type (function_declarator "clearDatabasePage(BtShared *pBt,Pgno pgno,int freePageFlag,int *pnChange)" identifier (parameter_list "(BtShared *pBt,Pgno pgno,int freePageFlag,int *pnChange)" ( (parameter_declaration "BtShared *pBt" type_identifier (pointer_declarator "*pBt" * identifier)) , (parameter_declaration "Pgno pgno" type_identifier identifier) , (parameter_declaration "int freePageFlag" primitive_type identifier) , (parameter_declaration "int *pnChange" primitive_type (pointer_declarator "*pnChange" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  PgHdr *pPg;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  PgHdr **ppPVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  uchar *pBuf;\n  BtCursor *pCur;\n  CellInfo *pInfo;\n  int *unaff_s1;\n  int iVar11;\n  int unaff_s2;\n  int iVar12;\n  void *pvVar13;\n  int iVar14;\n  int iVar15;\n  int *unaff_s4;\n  PgHdr **ppPVar16;\n  undefined4 unaff_s5;\n  code *unaff_s6;\n  undefined4 *puVar17;\n  code *unaff_s7;\n  int in_t9;\n  code *pcVar18;\n  uint unaff_s8;\n  code *pcVar19;\n  uint uVar20;\n  int iStack_dc;\n  PgHdr *pPStack_d8;\n  BtCursor *pBStack_d4;\n  int iStack_d0;\n  CellInfo *pCStack_cc;\n  void *pvStack_c8;\n  uint uStack_c4;\n  PgHdr **ppPStack_c0;\n  undefined4 uStack_bc;\n  code *pcStack_b8;\n  code *pcStack_b4;\n  uint uStack_b0;\n  code *pcStack_ac;\n  code *pcStack_98;\n  PgHdr *pPStack_90;\n  int iStack_8c;\n  int iStack_88;\n  int *piStack_84;\n  int iStack_80;\n  BtShared *pBStack_7c;\n  int *piStack_78;\n  code *pcStack_74;\n  undefined4 uStack_60;\n  int iStack_58;\n  MemPage *pPage;\n  int rc;\n  CellInfo info;\n  \n  iStack_58 = in_t9 + 0xc65e0;\n  iVar2 = **(int **)(&LAB_000beb8c + in_t9);\n  if (pBt->nPage < pgno) {\n    iStack_88 = (*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x3b28))(0x119d6);\n    pInfo = (CellInfo *)freePageFlag;\n  }\n  else {\n    uStack_60 = 0;\n    pInfo = (CellInfo *)&pPage;\n    rc = (*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x46c4))();\n    iStack_88 = rc;\n    unaff_s4 = pnChange;\n    if (rc == 0) {\n      if (pPage->bBusy == '\0') {\n        pPage->bBusy = '\x01';\n        uVar3 = (uint)pPage->nCell;\n        unaff_s8 = (uint)pPage->hdrOffset;\n        if (uVar3 != 0) {\n          unaff_s2 = 0;\n          unaff_s7 = (code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220);\n          unaff_s6 = (code *)(*(int *)(iStack_58 + -0x7d6c) + 0x1340);\n          unaff_s5 = *(undefined4 *)(iStack_58 + -0x7d6c);\n          iVar11 = 0;\n          do {\n            rc = 0;\n            unaff_s1 = (int *)(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage));\n            if (pPage->leaf == '\0') {\n              pgno = (*unaff_s7)(unaff_s1);\n              pInfo = (CellInfo *)0x1;\n              rc = (*unaff_s6)(pBt,pgno,1,pnChange);\n              if (rc != 0) goto LAB_000d1454;\n            }\n            rc = 0;\n            pInfo = &info;\n            pgno = (Pgno)unaff_s1;\n            rc = clearCell(pPage,(uchar *)unaff_s1,pInfo);\n            if (rc != 0) goto LAB_000d1454;\n            iVar11 = iVar11 + 1;\n            uVar3 = (uint)pPage->nCell;\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar11 < (int)uVar3);\n        }\n        if (pPage->leaf == '\0') {\n          pgno = (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220))(pPage->aData + unaff_s8 + 8);\n          pInfo = (CellInfo *)0x1;\n          rc = clearDatabasePage(pBt,pgno,1,pnChange);\n          if (rc != 0) goto LAB_000d1454;\n        }\n        else if (pnChange != (int *)0x0) {\n          *pnChange = *pnChange + uVar3;\n        }\n        if (freePageFlag == 0) {\n          rc = sqlite3PagerWrite(pPage->pDbPage);\n          if (rc == 0) {\n            pgno = pPage->aData[unaff_s8] | 8;\n            (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))();\n          }\n        }\n        else {\n          pgno = (Pgno)&rc;\n          freePage(pPage,(int *)pgno);\n        }\n      }\n      else {\n        rc = (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      pPage->bBusy = '\0';\n      (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x5aac))(pPage);\n      iStack_88 = rc;\n    }\n  }\n  if (iVar2 == **(int **)(iStack_58 + -0x7a54)) {\n    return iStack_88;\n  }\n  pcVar18 = *(code **)(iStack_58 + -0x7a80);\n  pcVar19 = dbpageUpdate;\n  (*pcVar18)();\n  pcStack_98 = pcVar18 + 0xc62b8;\n  iStack_8c = **(int **)(pcVar18 + 0xbe864);\n  pPStack_90 = (PgHdr *)0x0;\n  piStack_84 = unaff_s1;\n  iStack_80 = unaff_s2;\n  pBStack_7c = pBt;\n  piStack_78 = unaff_s4;\n  pcStack_74 = pcVar19;\n  if (*(int *)(*(int *)(iVar2 + 0xc) + 0x24) << 3 < 0) {\n    iVar11 = *(int *)(pcVar18 + 0xbe2f4) + -0x4564;\nLAB_000d187c:\n    (**(code **)(pcStack_98 + -0x7fa8))(*(undefined4 *)(iVar2 + 8));\n                    /* WARNING: Subroutine does not return */\n    sqlite3_mprintf((char *)(*(int *)(pcStack_98 + -0x7fc4) + -0x60a0),iVar11);\n  }\n  if ((int *)pgno == (int *)0x1) {\n    iVar11 = *(int *)(pcVar18 + 0xbe2f4) + -0x4558;\n    goto LAB_000d187c;\n  }\n  pcVar18 = *(code **)(pcVar18 + 0xbe318);\n  uVar3 = (*pcVar18)(*(undefined4 *)&pInfo->nKey);\n  uVar4 = (*pcVar18)((int)pInfo->nKey);\n  if (uVar3 != uVar4) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4538;\n    goto LAB_000d187c;\n  }\n  uVar10._0_2_ = pInfo->nLocal;\n  uVar10._2_2_ = pInfo->nSize;\n  iVar11 = (**(code **)(pcStack_98 + -0x7fa4))(uVar10);\n  if (iVar11 == 0) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4548;\n    goto LAB_000d187c;\n  }\n  iVar12 = *(int *)(iVar2 + 0xc);\n  iVar11 = (*(code *)(*(int *)(pcStack_98 + -0x7d64) + -0x6d2c))(iVar12,iVar11);\n  if (iVar11 < 0) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4548;\n    goto LAB_000d187c;\n  }\n  if (uVar3 == 0) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;\n    goto LAB_000d187c;\n  }\n  pvVar13 = *(void **)(*(int *)(iVar12 + 0x10) + iVar11 * 0x10 + 4);\n  if (pvVar13 == (void *)0x0) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;\n    goto LAB_000d187c;\n  }\n  if (*(uint *)(*(int *)((int)pvVar13 + 4) + 0x2c) < uVar3) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;\n    goto LAB_000d187c;\n  }\n  if (*(char *)((*(ushort *)(pInfo->nPayload + 8) & 0x1f) + *(int *)(pcStack_98 + -0x7fc4) + 0x65d0)\n      != '\x04') {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4574;\n    goto LAB_000d187c;\n  }\n  ppPVar16 = *(PgHdr ***)(*(int *)((int)pvVar13 + 4) + 0x20);\n  ppPVar5 = (PgHdr **)(**(code **)(pcStack_98 + -0x7f60))();\n  iVar11 = 0;\n  if (ppPVar5 != ppPVar16) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4574;\n    goto LAB_000d187c;\n  }\n  ppPVar5 = &pPStack_90;\n  uVar4 = uVar3;\n  iVar2 = (*(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x491c))\n                    (**(undefined4 **)((int)pvVar13 + 4),uVar3,ppPVar5,0);\n  if ((iVar2 == 0) && (iVar2 = sqlite3PagerWrite(pPStack_90), iVar2 == 0)) {\n    pvVar13 = pPStack_90->pData;\n    uVar4 = (**(code **)(pcStack_98 + -0x7f5c))(pInfo->nPayload);\n    ppPVar5 = ppPVar16;\n    (**(code **)(pcStack_98 + -0x7a4c))(pvVar13);\n  }\n  (*(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x49ec))(pPStack_90);\n  if (iStack_8c == **(int **)(pcStack_98 + -0x7a54)) {\n    return iVar2;\n  }\n  pcVar18 = *(code **)(pcStack_98 + -0x7a80);\n  pcVar19 = accessPayload;\n  iVar12 = iStack_8c;\n  (*pcVar18)();\n  pBStack_d4 = (BtCursor *)**(undefined4 **)(pcVar18 + 0xbe590);\n  iVar15 = *(int *)(iVar12 + 0x74);\n  puVar17 = *(undefined4 **)(iVar12 + 0x14);\n  iStack_d0 = iVar2;\n  pCStack_cc = pInfo;\n  pvStack_c8 = pvVar13;\n  uStack_c4 = uVar3;\n  ppPStack_c0 = ppPVar16;\n  uStack_bc = unaff_s5;\n  pcStack_b8 = unaff_s6;\n  pcStack_b4 = unaff_s7;\n  uStack_b0 = unaff_s8;\n  pcStack_ac = pcVar19;\n  (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x5c00))();\n  iVar2 = *(int *)(iVar12 + 0x28);\n  uVar3 = (uint)*(ushort *)(iVar12 + 0x30);\n  if (puVar17[9] - uVar3 < (uint)(iVar2 - *(int *)(iVar15 + 0x38))) {\n    iVar15 = (*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }\n  if (uVar4 < uVar3) {\n    ppPVar16 = ppPVar5;\n    if (uVar3 < uVar4 + (int)ppPVar5) {\n      ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n    }\n    if (pcStack_98 == (code *)0x0) {\n      (**(code **)(pcVar18 + 0xbe598))(iVar11,iVar2 + uVar4,ppPVar16);\n    }\n    else {\n      iVar15 = sqlite3PagerWrite(*(PgHdr **)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar18 + 0xbe598))(iVar2 + uVar4,iVar11,ppPVar16);\n    }\n    iVar11 = iVar11 + (int)ppPVar16;\n    ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);\n    uVar4 = 0;\n  }\n  else {\n    uVar4 = uVar4 - uVar3;\n  }\n  iVar15 = 0;\n  if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n  iVar15 = puVar17[9];\n  uVar1 = *(ushort *)(iVar12 + 0x30);\n  iStack_dc = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x2220))(iVar2 + (uint)uVar1);\n  uVar3 = iVar15 - 4;\n  if ((*(byte *)(iVar12 + 1) & 4) == 0) {\n    if (uVar3 == 0) {\n      trap(7);\n    }\n    uVar20 = ((*(int *)(iVar12 + 0x2c) + -1 + uVar3) - (uint)uVar1) / uVar3;\n    if ((*(int *)(iVar12 + 0xc) == 0) ||\n       (iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x1030))(), iVar2 < (int)(uVar20 << 2))) {\n      iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar12 + 0xc));\n      if (iVar2 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar12 + 0xc) = iVar2;\n    }\n    (**(code **)(pcVar18 + 0xbe4c4))(*(undefined4 *)(iVar12 + 0xc),0,uVar20 << 2);\n    *(byte *)(iVar12 + 1) = *(byte *)(iVar12 + 1) | 4;\nLAB_000d1bac:\n    uVar20 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }\n  else {\n    if (uVar3 == 0) {\n      trap(7);\n    }\n    uVar20 = uVar4 / uVar3;\n    iVar2 = *(int *)(*(int *)(iVar12 + 0xc) + uVar20 * 4);\n    if (iVar2 == 0) goto LAB_000d1bac;\n    if (uVar3 == 0) {\n      trap(7);\n    }\n    uVar4 = uVar4 % uVar3;\n    iStack_dc = iVar2;\nLAB_000d1bb8:\n    iVar14 = uVar20 << 2;\n    iVar2 = *(int *)(pcVar18 + 0xbe21c);\n    iVar6 = *(int *)(pcVar18 + 0xbe21c);\n    iVar7 = *(int *)(pcVar18 + 0xbe21c);\n    iVar8 = *(int *)(pcVar18 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar12 + 0xc) + iVar14) = iStack_dc;\n      if (uVar4 < uVar3) {\n        ppPVar16 = ppPVar5;\n        if (uVar3 < uVar4 + (int)ppPVar5) {\n          ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n        }\n        if (pcStack_98 == (code *)0x0) {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,2);\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            (**(code **)(pcVar18 + 0xbe598))(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,0);\n          pPg = pPStack_d8;\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            iVar15 = sqlite3PagerWrite(pPg);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar7 + 0x49ec))(pPStack_d8);\n            uVar4 = 0;\n          }\n        }\n        ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);\n        iVar11 = iVar11 + (int)ppPVar16;\n        if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar9 = *(int *)(*(int *)(iVar12 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar9 == 0) {\n          iVar15 = (*(code *)(iVar8 + 0x43f4))(puVar17,iStack_dc,0,&iStack_dc);\n          iVar9 = iStack_dc;\n        }\n        iStack_dc = iVar9;\n        uVar4 = uVar4 - uVar3;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n  }\n  iVar15 = (*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))(0x1094f);\nLAB_000d1a60:\n  if (pBStack_d4 != (BtCursor *)**(int **)(pcVar18 + 0xbe590)) {\n    pcVar18 = *(code **)(pcVar18 + 0xbe564);\n    pCur = pBStack_d4;\n    (*pcVar18)();\n    if (pCur->curIntKey == '\0') {\n      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();\n      uVar3 = (pCur->info).nPayload;\n      *(undefined4 *)&pCur->nKey = 0;\n      *(uint *)((int)&pCur->nKey + 4) = uVar3;\n      pBuf = (uchar *)(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x1068))(uVar3 + 0x11 < uVar3);\n      if (pBuf == (uchar *)0x0) {\n        iVar2 = 7;\n      }\n      else {\n        iVar2 = accessPayload(pCur,0,(u32)pCur->nKey,pBuf,0);\n        if (iVar2 == 0) {\n          (**(code **)(pcVar18 + 0xbdfe4))(pBuf + (int)pCur->nKey,0,0x11);\n          pCur->pKey = pBuf;\n        }\n        else {\n          (**(code **)(pcVar18 + 0xbdb5c))(pBuf);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();\n      uVar10 = *(undefined4 *)&(pCur->info).nKey;\n      *(int *)((int)&pCur->nKey + 4) = (int)(pCur->info).nKey;\n      *(undefined4 *)&pCur->nKey = uVar10;\n      iVar2 = 0;\n    }\n    return iVar2;\n  }\n  return iVar15;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "PgHdr *pPg;" type_identifier (pointer_declarator "*pPg" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "PgHdr **ppPVar5;" type_identifier (pointer_declarator "**ppPVar5" * (pointer_declarator "*ppPVar5" * identifier)) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "uchar *pBuf;" type_identifier (pointer_declarator "*pBuf" * identifier) ;) (declaration "BtCursor *pCur;" type_identifier (pointer_declarator "*pCur" * identifier) ;) (declaration "CellInfo *pInfo;" type_identifier (pointer_declarator "*pInfo" * identifier) ;) (declaration "int *unaff_s1;" primitive_type (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int unaff_s2;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "void *pvVar13;" primitive_type (pointer_declarator "*pvVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "PgHdr **ppPVar16;" type_identifier (pointer_declarator "**ppPVar16" * (pointer_declarator "*ppPVar16" * identifier)) ;) (declaration "undefined4 unaff_s5;" type_identifier identifier ;) (declaration "code *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "code *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "uint unaff_s8;" type_identifier identifier ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "int iStack_dc;" primitive_type identifier ;) (declaration "PgHdr *pPStack_d8;" type_identifier (pointer_declarator "*pPStack_d8" * identifier) ;) (declaration "BtCursor *pBStack_d4;" type_identifier (pointer_declarator "*pBStack_d4" * identifier) ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "CellInfo *pCStack_cc;" type_identifier (pointer_declarator "*pCStack_cc" * identifier) ;) (declaration "void *pvStack_c8;" primitive_type (pointer_declarator "*pvStack_c8" * identifier) ;) (declaration "uint uStack_c4;" type_identifier identifier ;) (declaration "PgHdr **ppPStack_c0;" type_identifier (pointer_declarator "**ppPStack_c0" * (pointer_declarator "*ppPStack_c0" * identifier)) ;) (declaration "undefined4 uStack_bc;" type_identifier identifier ;) (declaration "code *pcStack_b8;" type_identifier (pointer_declarator "*pcStack_b8" * identifier) ;) (declaration "code *pcStack_b4;" type_identifier (pointer_declarator "*pcStack_b4" * identifier) ;) (declaration "uint uStack_b0;" type_identifier identifier ;) (declaration "code *pcStack_ac;" type_identifier (pointer_declarator "*pcStack_ac" * identifier) ;) (declaration "code *pcStack_98;" type_identifier (pointer_declarator "*pcStack_98" * identifier) ;) (declaration "PgHdr *pPStack_90;" type_identifier (pointer_declarator "*pPStack_90" * identifier) ;) (declaration "int iStack_8c;" primitive_type identifier ;) (declaration "int iStack_88;" primitive_type identifier ;) (declaration "int *piStack_84;" primitive_type (pointer_declarator "*piStack_84" * identifier) ;) (declaration "int iStack_80;" primitive_type identifier ;) (declaration "BtShared *pBStack_7c;" type_identifier (pointer_declarator "*pBStack_7c" * identifier) ;) (declaration "int *piStack_78;" primitive_type (pointer_declarator "*piStack_78" * identifier) ;) (declaration "code *pcStack_74;" type_identifier (pointer_declarator "*pcStack_74" * identifier) ;) (declaration "undefined4 uStack_60;" type_identifier identifier ;) (declaration "int iStack_58;" primitive_type identifier ;) (declaration "MemPage *pPage;" type_identifier (pointer_declarator "*pPage" * identifier) ;) (declaration "int rc;" primitive_type identifier ;) (declaration "CellInfo info;" type_identifier identifier ;) (expression_statement "iStack_58 = in_t9 + 0xc65e0;" (assignment_expression "iStack_58 = in_t9 + 0xc65e0" identifier = (binary_expression "in_t9 + 0xc65e0" identifier + number_literal)) ;) (expression_statement "iVar2 = **(int **)(&LAB_000beb8c + in_t9);" (assignment_expression "iVar2 = **(int **)(&LAB_000beb8c + in_t9)" identifier = (pointer_expression "**(int **)(&LAB_000beb8c + in_t9)" * (pointer_expression "*(int **)(&LAB_000beb8c + in_t9)" * (cast_expression "(int **)(&LAB_000beb8c + in_t9)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&LAB_000beb8c + in_t9)" ( (binary_expression "&LAB_000beb8c + in_t9" (pointer_expression "&LAB_000beb8c" & identifier) + identifier) )))))) ;) (if_statement "if (pBt->nPage < pgno) {\n    iStack_88 = (*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x3b28))(0x119d6);\n    pInfo = (CellInfo *)freePageFlag;\n  }\n  else {\n    uStack_60 = 0;\n    pInfo = (CellInfo *)&pPage;\n    rc = (*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x46c4))();\n    iStack_88 = rc;\n    unaff_s4 = pnChange;\n    if (rc == 0) {\n      if (pPage->bBusy == '\0') {\n        pPage->bBusy = '\x01';\n        uVar3 = (uint)pPage->nCell;\n        unaff_s8 = (uint)pPage->hdrOffset;\n        if (uVar3 != 0) {\n          unaff_s2 = 0;\n          unaff_s7 = (code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220);\n          unaff_s6 = (code *)(*(int *)(iStack_58 + -0x7d6c) + 0x1340);\n          unaff_s5 = *(undefined4 *)(iStack_58 + -0x7d6c);\n          iVar11 = 0;\n          do {\n            rc = 0;\n            unaff_s1 = (int *)(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage));\n            if (pPage->leaf == '\0') {\n              pgno = (*unaff_s7)(unaff_s1);\n              pInfo = (CellInfo *)0x1;\n              rc = (*unaff_s6)(pBt,pgno,1,pnChange);\n              if (rc != 0) goto LAB_000d1454;\n            }\n            rc = 0;\n            pInfo = &info;\n            pgno = (Pgno)unaff_s1;\n            rc = clearCell(pPage,(uchar *)unaff_s1,pInfo);\n            if (rc != 0) goto LAB_000d1454;\n            iVar11 = iVar11 + 1;\n            uVar3 = (uint)pPage->nCell;\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar11 < (int)uVar3);\n        }\n        if (pPage->leaf == '\0') {\n          pgno = (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220))(pPage->aData + unaff_s8 + 8);\n          pInfo = (CellInfo *)0x1;\n          rc = clearDatabasePage(pBt,pgno,1,pnChange);\n          if (rc != 0) goto LAB_000d1454;\n        }\n        else if (pnChange != (int *)0x0) {\n          *pnChange = *pnChange + uVar3;\n        }\n        if (freePageFlag == 0) {\n          rc = sqlite3PagerWrite(pPage->pDbPage);\n          if (rc == 0) {\n            pgno = pPage->aData[unaff_s8] | 8;\n            (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))();\n          }\n        }\n        else {\n          pgno = (Pgno)&rc;\n          freePage(pPage,(int *)pgno);\n        }\n      }\n      else {\n        rc = (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      pPage->bBusy = '\0';\n      (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x5aac))(pPage);\n      iStack_88 = rc;\n    }\n  }" if (parenthesized_expression "(pBt->nPage < pgno)" ( (binary_expression "pBt->nPage < pgno" (field_expression "pBt->nPage" identifier -> field_identifier) < identifier) )) (compound_statement "{\n    iStack_88 = (*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x3b28))(0x119d6);\n    pInfo = (CellInfo *)freePageFlag;\n  }" { (expression_statement "iStack_88 = (*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x3b28))(0x119d6);" (assignment_expression "iStack_88 = (*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x3b28))(0x119d6)" identifier = (call_expression "(*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x3b28))(0x119d6)" (parenthesized_expression "(*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x3b28))" ( (pointer_expression "*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x3b28)" * (cast_expression "(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x3b28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(&LAB_000be8b4 + in_t9) + 0x3b28)" ( (binary_expression "*(int *)(&LAB_000be8b4 + in_t9) + 0x3b28" (pointer_expression "*(int *)(&LAB_000be8b4 + in_t9)" * (cast_expression "(int *)(&LAB_000be8b4 + in_t9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&LAB_000be8b4 + in_t9)" ( (binary_expression "&LAB_000be8b4 + in_t9" (pointer_expression "&LAB_000be8b4" & identifier) + identifier) )))) + number_literal) )))) )) (argument_list "(0x119d6)" ( number_literal )))) ;) (expression_statement "pInfo = (CellInfo *)freePageFlag;" (assignment_expression "pInfo = (CellInfo *)freePageFlag" identifier = (cast_expression "(CellInfo *)freePageFlag" ( (type_descriptor "CellInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n    uStack_60 = 0;\n    pInfo = (CellInfo *)&pPage;\n    rc = (*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x46c4))();\n    iStack_88 = rc;\n    unaff_s4 = pnChange;\n    if (rc == 0) {\n      if (pPage->bBusy == '\0') {\n        pPage->bBusy = '\x01';\n        uVar3 = (uint)pPage->nCell;\n        unaff_s8 = (uint)pPage->hdrOffset;\n        if (uVar3 != 0) {\n          unaff_s2 = 0;\n          unaff_s7 = (code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220);\n          unaff_s6 = (code *)(*(int *)(iStack_58 + -0x7d6c) + 0x1340);\n          unaff_s5 = *(undefined4 *)(iStack_58 + -0x7d6c);\n          iVar11 = 0;\n          do {\n            rc = 0;\n            unaff_s1 = (int *)(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage));\n            if (pPage->leaf == '\0') {\n              pgno = (*unaff_s7)(unaff_s1);\n              pInfo = (CellInfo *)0x1;\n              rc = (*unaff_s6)(pBt,pgno,1,pnChange);\n              if (rc != 0) goto LAB_000d1454;\n            }\n            rc = 0;\n            pInfo = &info;\n            pgno = (Pgno)unaff_s1;\n            rc = clearCell(pPage,(uchar *)unaff_s1,pInfo);\n            if (rc != 0) goto LAB_000d1454;\n            iVar11 = iVar11 + 1;\n            uVar3 = (uint)pPage->nCell;\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar11 < (int)uVar3);\n        }\n        if (pPage->leaf == '\0') {\n          pgno = (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220))(pPage->aData + unaff_s8 + 8);\n          pInfo = (CellInfo *)0x1;\n          rc = clearDatabasePage(pBt,pgno,1,pnChange);\n          if (rc != 0) goto LAB_000d1454;\n        }\n        else if (pnChange != (int *)0x0) {\n          *pnChange = *pnChange + uVar3;\n        }\n        if (freePageFlag == 0) {\n          rc = sqlite3PagerWrite(pPage->pDbPage);\n          if (rc == 0) {\n            pgno = pPage->aData[unaff_s8] | 8;\n            (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))();\n          }\n        }\n        else {\n          pgno = (Pgno)&rc;\n          freePage(pPage,(int *)pgno);\n        }\n      }\n      else {\n        rc = (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      pPage->bBusy = '\0';\n      (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x5aac))(pPage);\n      iStack_88 = rc;\n    }\n  }" else (compound_statement "{\n    uStack_60 = 0;\n    pInfo = (CellInfo *)&pPage;\n    rc = (*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x46c4))();\n    iStack_88 = rc;\n    unaff_s4 = pnChange;\n    if (rc == 0) {\n      if (pPage->bBusy == '\0') {\n        pPage->bBusy = '\x01';\n        uVar3 = (uint)pPage->nCell;\n        unaff_s8 = (uint)pPage->hdrOffset;\n        if (uVar3 != 0) {\n          unaff_s2 = 0;\n          unaff_s7 = (code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220);\n          unaff_s6 = (code *)(*(int *)(iStack_58 + -0x7d6c) + 0x1340);\n          unaff_s5 = *(undefined4 *)(iStack_58 + -0x7d6c);\n          iVar11 = 0;\n          do {\n            rc = 0;\n            unaff_s1 = (int *)(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage));\n            if (pPage->leaf == '\0') {\n              pgno = (*unaff_s7)(unaff_s1);\n              pInfo = (CellInfo *)0x1;\n              rc = (*unaff_s6)(pBt,pgno,1,pnChange);\n              if (rc != 0) goto LAB_000d1454;\n            }\n            rc = 0;\n            pInfo = &info;\n            pgno = (Pgno)unaff_s1;\n            rc = clearCell(pPage,(uchar *)unaff_s1,pInfo);\n            if (rc != 0) goto LAB_000d1454;\n            iVar11 = iVar11 + 1;\n            uVar3 = (uint)pPage->nCell;\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar11 < (int)uVar3);\n        }\n        if (pPage->leaf == '\0') {\n          pgno = (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220))(pPage->aData + unaff_s8 + 8);\n          pInfo = (CellInfo *)0x1;\n          rc = clearDatabasePage(pBt,pgno,1,pnChange);\n          if (rc != 0) goto LAB_000d1454;\n        }\n        else if (pnChange != (int *)0x0) {\n          *pnChange = *pnChange + uVar3;\n        }\n        if (freePageFlag == 0) {\n          rc = sqlite3PagerWrite(pPage->pDbPage);\n          if (rc == 0) {\n            pgno = pPage->aData[unaff_s8] | 8;\n            (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))();\n          }\n        }\n        else {\n          pgno = (Pgno)&rc;\n          freePage(pPage,(int *)pgno);\n        }\n      }\n      else {\n        rc = (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      pPage->bBusy = '\0';\n      (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x5aac))(pPage);\n      iStack_88 = rc;\n    }\n  }" { (expression_statement "uStack_60 = 0;" (assignment_expression "uStack_60 = 0" identifier = number_literal) ;) (expression_statement "pInfo = (CellInfo *)&pPage;" (assignment_expression "pInfo = (CellInfo *)&pPage" identifier = (cast_expression "(CellInfo *)&pPage" ( (type_descriptor "CellInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPage" & identifier))) ;) (expression_statement "rc = (*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x46c4))();" (assignment_expression "rc = (*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x46c4))()" identifier = (call_expression "(*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x46c4))()" (parenthesized_expression "(*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x46c4))" ( (pointer_expression "*(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x46c4)" * (cast_expression "(code *)(*(int *)(&LAB_000be8b4 + in_t9) + 0x46c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(&LAB_000be8b4 + in_t9) + 0x46c4)" ( (binary_expression "*(int *)(&LAB_000be8b4 + in_t9) + 0x46c4" (pointer_expression "*(int *)(&LAB_000be8b4 + in_t9)" * (cast_expression "(int *)(&LAB_000be8b4 + in_t9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&LAB_000be8b4 + in_t9)" ( (binary_expression "&LAB_000be8b4 + in_t9" (pointer_expression "&LAB_000be8b4" & identifier) + identifier) )))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (expression_statement "iStack_88 = rc;" (assignment_expression "iStack_88 = rc" identifier = identifier) ;) (expression_statement "unaff_s4 = pnChange;" (assignment_expression "unaff_s4 = pnChange" identifier = identifier) ;) (if_statement "if (rc == 0) {\n      if (pPage->bBusy == '\0') {\n        pPage->bBusy = '\x01';\n        uVar3 = (uint)pPage->nCell;\n        unaff_s8 = (uint)pPage->hdrOffset;\n        if (uVar3 != 0) {\n          unaff_s2 = 0;\n          unaff_s7 = (code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220);\n          unaff_s6 = (code *)(*(int *)(iStack_58 + -0x7d6c) + 0x1340);\n          unaff_s5 = *(undefined4 *)(iStack_58 + -0x7d6c);\n          iVar11 = 0;\n          do {\n            rc = 0;\n            unaff_s1 = (int *)(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage));\n            if (pPage->leaf == '\0') {\n              pgno = (*unaff_s7)(unaff_s1);\n              pInfo = (CellInfo *)0x1;\n              rc = (*unaff_s6)(pBt,pgno,1,pnChange);\n              if (rc != 0) goto LAB_000d1454;\n            }\n            rc = 0;\n            pInfo = &info;\n            pgno = (Pgno)unaff_s1;\n            rc = clearCell(pPage,(uchar *)unaff_s1,pInfo);\n            if (rc != 0) goto LAB_000d1454;\n            iVar11 = iVar11 + 1;\n            uVar3 = (uint)pPage->nCell;\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar11 < (int)uVar3);\n        }\n        if (pPage->leaf == '\0') {\n          pgno = (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220))(pPage->aData + unaff_s8 + 8);\n          pInfo = (CellInfo *)0x1;\n          rc = clearDatabasePage(pBt,pgno,1,pnChange);\n          if (rc != 0) goto LAB_000d1454;\n        }\n        else if (pnChange != (int *)0x0) {\n          *pnChange = *pnChange + uVar3;\n        }\n        if (freePageFlag == 0) {\n          rc = sqlite3PagerWrite(pPage->pDbPage);\n          if (rc == 0) {\n            pgno = pPage->aData[unaff_s8] | 8;\n            (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))();\n          }\n        }\n        else {\n          pgno = (Pgno)&rc;\n          freePage(pPage,(int *)pgno);\n        }\n      }\n      else {\n        rc = (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      pPage->bBusy = '\0';\n      (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x5aac))(pPage);\n      iStack_88 = rc;\n    }" if (parenthesized_expression "(rc == 0)" ( (binary_expression "rc == 0" identifier == number_literal) )) (compound_statement "{\n      if (pPage->bBusy == '\0') {\n        pPage->bBusy = '\x01';\n        uVar3 = (uint)pPage->nCell;\n        unaff_s8 = (uint)pPage->hdrOffset;\n        if (uVar3 != 0) {\n          unaff_s2 = 0;\n          unaff_s7 = (code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220);\n          unaff_s6 = (code *)(*(int *)(iStack_58 + -0x7d6c) + 0x1340);\n          unaff_s5 = *(undefined4 *)(iStack_58 + -0x7d6c);\n          iVar11 = 0;\n          do {\n            rc = 0;\n            unaff_s1 = (int *)(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage));\n            if (pPage->leaf == '\0') {\n              pgno = (*unaff_s7)(unaff_s1);\n              pInfo = (CellInfo *)0x1;\n              rc = (*unaff_s6)(pBt,pgno,1,pnChange);\n              if (rc != 0) goto LAB_000d1454;\n            }\n            rc = 0;\n            pInfo = &info;\n            pgno = (Pgno)unaff_s1;\n            rc = clearCell(pPage,(uchar *)unaff_s1,pInfo);\n            if (rc != 0) goto LAB_000d1454;\n            iVar11 = iVar11 + 1;\n            uVar3 = (uint)pPage->nCell;\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar11 < (int)uVar3);\n        }\n        if (pPage->leaf == '\0') {\n          pgno = (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220))(pPage->aData + unaff_s8 + 8);\n          pInfo = (CellInfo *)0x1;\n          rc = clearDatabasePage(pBt,pgno,1,pnChange);\n          if (rc != 0) goto LAB_000d1454;\n        }\n        else if (pnChange != (int *)0x0) {\n          *pnChange = *pnChange + uVar3;\n        }\n        if (freePageFlag == 0) {\n          rc = sqlite3PagerWrite(pPage->pDbPage);\n          if (rc == 0) {\n            pgno = pPage->aData[unaff_s8] | 8;\n            (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))();\n          }\n        }\n        else {\n          pgno = (Pgno)&rc;\n          freePage(pPage,(int *)pgno);\n        }\n      }\n      else {\n        rc = (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      pPage->bBusy = '\0';\n      (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x5aac))(pPage);\n      iStack_88 = rc;\n    }" { (if_statement "if (pPage->bBusy == '\0') {\n        pPage->bBusy = '\x01';\n        uVar3 = (uint)pPage->nCell;\n        unaff_s8 = (uint)pPage->hdrOffset;\n        if (uVar3 != 0) {\n          unaff_s2 = 0;\n          unaff_s7 = (code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220);\n          unaff_s6 = (code *)(*(int *)(iStack_58 + -0x7d6c) + 0x1340);\n          unaff_s5 = *(undefined4 *)(iStack_58 + -0x7d6c);\n          iVar11 = 0;\n          do {\n            rc = 0;\n            unaff_s1 = (int *)(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage));\n            if (pPage->leaf == '\0') {\n              pgno = (*unaff_s7)(unaff_s1);\n              pInfo = (CellInfo *)0x1;\n              rc = (*unaff_s6)(pBt,pgno,1,pnChange);\n              if (rc != 0) goto LAB_000d1454;\n            }\n            rc = 0;\n            pInfo = &info;\n            pgno = (Pgno)unaff_s1;\n            rc = clearCell(pPage,(uchar *)unaff_s1,pInfo);\n            if (rc != 0) goto LAB_000d1454;\n            iVar11 = iVar11 + 1;\n            uVar3 = (uint)pPage->nCell;\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar11 < (int)uVar3);\n        }\n        if (pPage->leaf == '\0') {\n          pgno = (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220))(pPage->aData + unaff_s8 + 8);\n          pInfo = (CellInfo *)0x1;\n          rc = clearDatabasePage(pBt,pgno,1,pnChange);\n          if (rc != 0) goto LAB_000d1454;\n        }\n        else if (pnChange != (int *)0x0) {\n          *pnChange = *pnChange + uVar3;\n        }\n        if (freePageFlag == 0) {\n          rc = sqlite3PagerWrite(pPage->pDbPage);\n          if (rc == 0) {\n            pgno = pPage->aData[unaff_s8] | 8;\n            (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))();\n          }\n        }\n        else {\n          pgno = (Pgno)&rc;\n          freePage(pPage,(int *)pgno);\n        }\n      }\n      else {\n        rc = (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28))(0x119db);\n      }" if (parenthesized_expression "(pPage->bBusy == '\0')" ( (binary_expression "pPage->bBusy == '\0'" (field_expression "pPage->bBusy" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pPage->bBusy = '\x01';\n        uVar3 = (uint)pPage->nCell;\n        unaff_s8 = (uint)pPage->hdrOffset;\n        if (uVar3 != 0) {\n          unaff_s2 = 0;\n          unaff_s7 = (code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220);\n          unaff_s6 = (code *)(*(int *)(iStack_58 + -0x7d6c) + 0x1340);\n          unaff_s5 = *(undefined4 *)(iStack_58 + -0x7d6c);\n          iVar11 = 0;\n          do {\n            rc = 0;\n            unaff_s1 = (int *)(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage));\n            if (pPage->leaf == '\0') {\n              pgno = (*unaff_s7)(unaff_s1);\n              pInfo = (CellInfo *)0x1;\n              rc = (*unaff_s6)(pBt,pgno,1,pnChange);\n              if (rc != 0) goto LAB_000d1454;\n            }\n            rc = 0;\n            pInfo = &info;\n            pgno = (Pgno)unaff_s1;\n            rc = clearCell(pPage,(uchar *)unaff_s1,pInfo);\n            if (rc != 0) goto LAB_000d1454;\n            iVar11 = iVar11 + 1;\n            uVar3 = (uint)pPage->nCell;\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar11 < (int)uVar3);\n        }\n        if (pPage->leaf == '\0') {\n          pgno = (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220))(pPage->aData + unaff_s8 + 8);\n          pInfo = (CellInfo *)0x1;\n          rc = clearDatabasePage(pBt,pgno,1,pnChange);\n          if (rc != 0) goto LAB_000d1454;\n        }\n        else if (pnChange != (int *)0x0) {\n          *pnChange = *pnChange + uVar3;\n        }\n        if (freePageFlag == 0) {\n          rc = sqlite3PagerWrite(pPage->pDbPage);\n          if (rc == 0) {\n            pgno = pPage->aData[unaff_s8] | 8;\n            (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))();\n          }\n        }\n        else {\n          pgno = (Pgno)&rc;\n          freePage(pPage,(int *)pgno);\n        }\n      }" { (expression_statement "pPage->bBusy = '\x01';" (assignment_expression "pPage->bBusy = '\x01'" (field_expression "pPage->bBusy" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "uVar3 = (uint)pPage->nCell;" (assignment_expression "uVar3 = (uint)pPage->nCell" identifier = (cast_expression "(uint)pPage->nCell" ( (type_descriptor "uint" type_identifier) ) (field_expression "pPage->nCell" identifier -> field_identifier))) ;) (expression_statement "unaff_s8 = (uint)pPage->hdrOffset;" (assignment_expression "unaff_s8 = (uint)pPage->hdrOffset" identifier = (cast_expression "(uint)pPage->hdrOffset" ( (type_descriptor "uint" type_identifier) ) (field_expression "pPage->hdrOffset" identifier -> field_identifier))) ;) (if_statement "if (uVar3 != 0) {\n          unaff_s2 = 0;\n          unaff_s7 = (code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220);\n          unaff_s6 = (code *)(*(int *)(iStack_58 + -0x7d6c) + 0x1340);\n          unaff_s5 = *(undefined4 *)(iStack_58 + -0x7d6c);\n          iVar11 = 0;\n          do {\n            rc = 0;\n            unaff_s1 = (int *)(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage));\n            if (pPage->leaf == '\0') {\n              pgno = (*unaff_s7)(unaff_s1);\n              pInfo = (CellInfo *)0x1;\n              rc = (*unaff_s6)(pBt,pgno,1,pnChange);\n              if (rc != 0) goto LAB_000d1454;\n            }\n            rc = 0;\n            pInfo = &info;\n            pgno = (Pgno)unaff_s1;\n            rc = clearCell(pPage,(uchar *)unaff_s1,pInfo);\n            if (rc != 0) goto LAB_000d1454;\n            iVar11 = iVar11 + 1;\n            uVar3 = (uint)pPage->nCell;\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar11 < (int)uVar3);\n        }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          unaff_s2 = 0;\n          unaff_s7 = (code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220);\n          unaff_s6 = (code *)(*(int *)(iStack_58 + -0x7d6c) + 0x1340);\n          unaff_s5 = *(undefined4 *)(iStack_58 + -0x7d6c);\n          iVar11 = 0;\n          do {\n            rc = 0;\n            unaff_s1 = (int *)(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage));\n            if (pPage->leaf == '\0') {\n              pgno = (*unaff_s7)(unaff_s1);\n              pInfo = (CellInfo *)0x1;\n              rc = (*unaff_s6)(pBt,pgno,1,pnChange);\n              if (rc != 0) goto LAB_000d1454;\n            }\n            rc = 0;\n            pInfo = &info;\n            pgno = (Pgno)unaff_s1;\n            rc = clearCell(pPage,(uchar *)unaff_s1,pInfo);\n            if (rc != 0) goto LAB_000d1454;\n            iVar11 = iVar11 + 1;\n            uVar3 = (uint)pPage->nCell;\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar11 < (int)uVar3);\n        }" { (expression_statement "unaff_s2 = 0;" (assignment_expression "unaff_s2 = 0" identifier = number_literal) ;) (expression_statement "unaff_s7 = (code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220);" (assignment_expression "unaff_s7 = (code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220)" identifier = (cast_expression "(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iStack_58 + -0x7dc8) + 0x2220)" ( (binary_expression "*(int *)(iStack_58 + -0x7dc8) + 0x2220" (pointer_expression "*(int *)(iStack_58 + -0x7dc8)" * (cast_expression "(int *)(iStack_58 + -0x7dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_58 + -0x7dc8)" ( (binary_expression "iStack_58 + -0x7dc8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "unaff_s6 = (code *)(*(int *)(iStack_58 + -0x7d6c) + 0x1340);" (assignment_expression "unaff_s6 = (code *)(*(int *)(iStack_58 + -0x7d6c) + 0x1340)" identifier = (cast_expression "(code *)(*(int *)(iStack_58 + -0x7d6c) + 0x1340)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iStack_58 + -0x7d6c) + 0x1340)" ( (binary_expression "*(int *)(iStack_58 + -0x7d6c) + 0x1340" (pointer_expression "*(int *)(iStack_58 + -0x7d6c)" * (cast_expression "(int *)(iStack_58 + -0x7d6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_58 + -0x7d6c)" ( (binary_expression "iStack_58 + -0x7d6c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "unaff_s5 = *(undefined4 *)(iStack_58 + -0x7d6c);" (assignment_expression "unaff_s5 = *(undefined4 *)(iStack_58 + -0x7d6c)" identifier = (pointer_expression "*(undefined4 *)(iStack_58 + -0x7d6c)" * (cast_expression "(undefined4 *)(iStack_58 + -0x7d6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_58 + -0x7d6c)" ( (binary_expression "iStack_58 + -0x7d6c" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n            rc = 0;\n            unaff_s1 = (int *)(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage));\n            if (pPage->leaf == '\0') {\n              pgno = (*unaff_s7)(unaff_s1);\n              pInfo = (CellInfo *)0x1;\n              rc = (*unaff_s6)(pBt,pgno,1,pnChange);\n              if (rc != 0) goto LAB_000d1454;\n            }\n            rc = 0;\n            pInfo = &info;\n            pgno = (Pgno)unaff_s1;\n            rc = clearCell(pPage,(uchar *)unaff_s1,pInfo);\n            if (rc != 0) goto LAB_000d1454;\n            iVar11 = iVar11 + 1;\n            uVar3 = (uint)pPage->nCell;\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar11 < (int)uVar3);" do (compound_statement "{\n            rc = 0;\n            unaff_s1 = (int *)(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage));\n            if (pPage->leaf == '\0') {\n              pgno = (*unaff_s7)(unaff_s1);\n              pInfo = (CellInfo *)0x1;\n              rc = (*unaff_s6)(pBt,pgno,1,pnChange);\n              if (rc != 0) goto LAB_000d1454;\n            }\n            rc = 0;\n            pInfo = &info;\n            pgno = (Pgno)unaff_s1;\n            rc = clearCell(pPage,(uchar *)unaff_s1,pInfo);\n            if (rc != 0) goto LAB_000d1454;\n            iVar11 = iVar11 + 1;\n            uVar3 = (uint)pPage->nCell;\n            unaff_s2 = unaff_s2 + 2;\n          }" { (expression_statement "rc = 0;" (assignment_expression "rc = 0" identifier = number_literal) ;) (expression_statement "unaff_s1 = (int *)(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage));" (assignment_expression "unaff_s1 = (int *)(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage))" identifier = (cast_expression "(int *)(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage))" ( (binary_expression "pPage->aData +\n                              (*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage)" (field_expression "pPage->aData" identifier -> field_identifier) + (parenthesized_expression "(*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage)" ( (binary_expression "*(ushort *)(pPage->aCellIdx + unaff_s2) & pPage->maskPage" (pointer_expression "*(ushort *)(pPage->aCellIdx + unaff_s2)" * (cast_expression "(ushort *)(pPage->aCellIdx + unaff_s2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pPage->aCellIdx + unaff_s2)" ( (binary_expression "pPage->aCellIdx + unaff_s2" (field_expression "pPage->aCellIdx" identifier -> field_identifier) + identifier) )))) & (field_expression "pPage->maskPage" identifier -> field_identifier)) ))) )))) ;) (if_statement "if (pPage->leaf == '\0') {\n              pgno = (*unaff_s7)(unaff_s1);\n              pInfo = (CellInfo *)0x1;\n              rc = (*unaff_s6)(pBt,pgno,1,pnChange);\n              if (rc != 0) goto LAB_000d1454;\n            }" if (parenthesized_expression "(pPage->leaf == '\0')" ( (binary_expression "pPage->leaf == '\0'" (field_expression "pPage->leaf" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              pgno = (*unaff_s7)(unaff_s1);\n              pInfo = (CellInfo *)0x1;\n              rc = (*unaff_s6)(pBt,pgno,1,pnChange);\n              if (rc != 0) goto LAB_000d1454;\n            }" { (expression_statement "pgno = (*unaff_s7)(unaff_s1);" (assignment_expression "pgno = (*unaff_s7)(unaff_s1)" identifier = (call_expression "(*unaff_s7)(unaff_s1)" (parenthesized_expression "(*unaff_s7)" ( (pointer_expression "*unaff_s7" * identifier) )) (argument_list "(unaff_s1)" ( identifier )))) ;) (expression_statement "pInfo = (CellInfo *)0x1;" (assignment_expression "pInfo = (CellInfo *)0x1" identifier = (cast_expression "(CellInfo *)0x1" ( (type_descriptor "CellInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "rc = (*unaff_s6)(pBt,pgno,1,pnChange);" (assignment_expression "rc = (*unaff_s6)(pBt,pgno,1,pnChange)" identifier = (call_expression "(*unaff_s6)(pBt,pgno,1,pnChange)" (parenthesized_expression "(*unaff_s6)" ( (pointer_expression "*unaff_s6" * identifier) )) (argument_list "(pBt,pgno,1,pnChange)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (rc != 0) goto LAB_000d1454;" if (parenthesized_expression "(rc != 0)" ( (binary_expression "rc != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1454;" goto statement_identifier ;)) })) (expression_statement "rc = 0;" (assignment_expression "rc = 0" identifier = number_literal) ;) (expression_statement "pInfo = &info;" (assignment_expression "pInfo = &info" identifier = (pointer_expression "&info" & identifier)) ;) (expression_statement "pgno = (Pgno)unaff_s1;" (assignment_expression "pgno = (Pgno)unaff_s1" identifier = (cast_expression "(Pgno)unaff_s1" ( (type_descriptor "Pgno" type_identifier) ) identifier)) ;) (expression_statement "rc = clearCell(pPage,(uchar *)unaff_s1,pInfo);" (assignment_expression "rc = clearCell(pPage,(uchar *)unaff_s1,pInfo)" identifier = (call_expression "clearCell(pPage,(uchar *)unaff_s1,pInfo)" identifier (argument_list "(pPage,(uchar *)unaff_s1,pInfo)" ( identifier , (cast_expression "(uchar *)unaff_s1" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (rc != 0) goto LAB_000d1454;" if (parenthesized_expression "(rc != 0)" ( (binary_expression "rc != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1454;" goto statement_identifier ;)) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = (uint)pPage->nCell;" (assignment_expression "uVar3 = (uint)pPage->nCell" identifier = (cast_expression "(uint)pPage->nCell" ( (type_descriptor "uint" type_identifier) ) (field_expression "pPage->nCell" identifier -> field_identifier))) ;) (expression_statement "unaff_s2 = unaff_s2 + 2;" (assignment_expression "unaff_s2 = unaff_s2 + 2" identifier = (binary_expression "unaff_s2 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 < (int)uVar3)" ( (binary_expression "iVar11 < (int)uVar3" identifier < (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (pPage->leaf == '\0') {\n          pgno = (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220))(pPage->aData + unaff_s8 + 8);\n          pInfo = (CellInfo *)0x1;\n          rc = clearDatabasePage(pBt,pgno,1,pnChange);\n          if (rc != 0) goto LAB_000d1454;\n        }\n        else if (pnChange != (int *)0x0) {\n          *pnChange = *pnChange + uVar3;\n        }" if (parenthesized_expression "(pPage->leaf == '\0')" ( (binary_expression "pPage->leaf == '\0'" (field_expression "pPage->leaf" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pgno = (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220))(pPage->aData + unaff_s8 + 8);\n          pInfo = (CellInfo *)0x1;\n          rc = clearDatabasePage(pBt,pgno,1,pnChange);\n          if (rc != 0) goto LAB_000d1454;\n        }" { (expression_statement "pgno = (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220))(pPage->aData + unaff_s8 + 8);" (assignment_expression "pgno = (*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220))(pPage->aData + unaff_s8 + 8)" identifier = (call_expression "(*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220))(pPage->aData + unaff_s8 + 8)" (parenthesized_expression "(*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220))" ( (pointer_expression "*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220)" * (cast_expression "(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x2220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iStack_58 + -0x7dc8) + 0x2220)" ( (binary_expression "*(int *)(iStack_58 + -0x7dc8) + 0x2220" (pointer_expression "*(int *)(iStack_58 + -0x7dc8)" * (cast_expression "(int *)(iStack_58 + -0x7dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_58 + -0x7dc8)" ( (binary_expression "iStack_58 + -0x7dc8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pPage->aData + unaff_s8 + 8)" ( (binary_expression "pPage->aData + unaff_s8 + 8" (binary_expression "pPage->aData + unaff_s8" (field_expression "pPage->aData" identifier -> field_identifier) + identifier) + number_literal) )))) ;) (expression_statement "pInfo = (CellInfo *)0x1;" (assignment_expression "pInfo = (CellInfo *)0x1" identifier = (cast_expression "(CellInfo *)0x1" ( (type_descriptor "CellInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "rc = clearDatabasePage(pBt,pgno,1,pnChange);" (assignment_expression "rc = clearDatabasePage(pBt,pgno,1,pnChange)" identifier = (call_expression "clearDatabasePage(pBt,pgno,1,pnChange)" identifier (argument_list "(pBt,pgno,1,pnChange)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (rc != 0) goto LAB_000d1454;" if (parenthesized_expression "(rc != 0)" ( (binary_expression "rc != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1454;" goto statement_identifier ;)) }) (else_clause "else if (pnChange != (int *)0x0) {\n          *pnChange = *pnChange + uVar3;\n        }" else (if_statement "if (pnChange != (int *)0x0) {\n          *pnChange = *pnChange + uVar3;\n        }" if (parenthesized_expression "(pnChange != (int *)0x0)" ( (binary_expression "pnChange != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *pnChange = *pnChange + uVar3;\n        }" { (expression_statement "*pnChange = *pnChange + uVar3;" (assignment_expression "*pnChange = *pnChange + uVar3" (pointer_expression "*pnChange" * identifier) = (binary_expression "*pnChange + uVar3" (pointer_expression "*pnChange" * identifier) + identifier)) ;) })))) (if_statement "if (freePageFlag == 0) {\n          rc = sqlite3PagerWrite(pPage->pDbPage);\n          if (rc == 0) {\n            pgno = pPage->aData[unaff_s8] | 8;\n            (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))();\n          }\n        }\n        else {\n          pgno = (Pgno)&rc;\n          freePage(pPage,(int *)pgno);\n        }" if (parenthesized_expression "(freePageFlag == 0)" ( (binary_expression "freePageFlag == 0" identifier == number_literal) )) (compound_statement "{\n          rc = sqlite3PagerWrite(pPage->pDbPage);\n          if (rc == 0) {\n            pgno = pPage->aData[unaff_s8] | 8;\n            (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))();\n          }\n        }" { (expression_statement "rc = sqlite3PagerWrite(pPage->pDbPage);" (assignment_expression "rc = sqlite3PagerWrite(pPage->pDbPage)" identifier = (call_expression "sqlite3PagerWrite(pPage->pDbPage)" identifier (argument_list "(pPage->pDbPage)" ( (field_expression "pPage->pDbPage" identifier -> field_identifier) )))) ;) (if_statement "if (rc == 0) {\n            pgno = pPage->aData[unaff_s8] | 8;\n            (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))();\n          }" if (parenthesized_expression "(rc == 0)" ( (binary_expression "rc == 0" identifier == number_literal) )) (compound_statement "{\n            pgno = pPage->aData[unaff_s8] | 8;\n            (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))();\n          }" { (expression_statement "pgno = pPage->aData[unaff_s8] | 8;" (assignment_expression "pgno = pPage->aData[unaff_s8] | 8" identifier = (binary_expression "pPage->aData[unaff_s8] | 8" (subscript_expression "pPage->aData[unaff_s8]" (field_expression "pPage->aData" identifier -> field_identifier) [ identifier ]) | number_literal)) ;) (expression_statement "(*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))();" (call_expression "(*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))()" (parenthesized_expression "(*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90))" ( (pointer_expression "*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90)" * (cast_expression "(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3c90)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iStack_58 + -0x7d2c) + 0x3c90)" ( (binary_expression "*(int *)(iStack_58 + -0x7d2c) + 0x3c90" (pointer_expression "*(int *)(iStack_58 + -0x7d2c)" * (cast_expression "(int *)(iStack_58 + -0x7d2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_58 + -0x7d2c)" ( (binary_expression "iStack_58 + -0x7d2c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n          pgno = (Pgno)&rc;\n          freePage(pPage,(int *)pgno);\n        }" else (compound_statement "{\n          pgno = (Pgno)&rc;\n          freePage(pPage,(int *)pgno);\n        }" { (expression_statement "pgno = (Pgno)&rc;" (assignment_expression "pgno = (Pgno)&rc" identifier = (binary_expression "(Pgno)&rc" (parenthesized_expression "(Pgno)" ( identifier )) & identifier)) ;) (expression_statement "freePage(pPage,(int *)pgno);" (call_expression "freePage(pPage,(int *)pgno)" identifier (argument_list "(pPage,(int *)pgno)" ( identifier , (cast_expression "(int *)pgno" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) }))) }) (else_clause "else {\n        rc = (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28))(0x119db);\n      }" else (compound_statement "{\n        rc = (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28))(0x119db);\n      }" { (expression_statement "rc = (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28))(0x119db);" (assignment_expression "rc = (*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28))(0x119db)" identifier = (call_expression "(*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28))(0x119db)" (parenthesized_expression "(*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28))" ( (pointer_expression "*(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28)" * (cast_expression "(code *)(*(int *)(iStack_58 + -0x7d2c) + 0x3b28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iStack_58 + -0x7d2c) + 0x3b28)" ( (binary_expression "*(int *)(iStack_58 + -0x7d2c) + 0x3b28" (pointer_expression "*(int *)(iStack_58 + -0x7d2c)" * (cast_expression "(int *)(iStack_58 + -0x7d2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_58 + -0x7d2c)" ( (binary_expression "iStack_58 + -0x7d2c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(0x119db)" ( number_literal )))) ;) }))) (labeled_statement "LAB_000d1454:\n      pPage->bBusy = '\0';" statement_identifier : (expression_statement "pPage->bBusy = '\0';" (assignment_expression "pPage->bBusy = '\0'" (field_expression "pPage->bBusy" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "(*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x5aac))(pPage);" (call_expression "(*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x5aac))(pPage)" (parenthesized_expression "(*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x5aac))" ( (pointer_expression "*(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x5aac)" * (cast_expression "(code *)(*(int *)(iStack_58 + -0x7dc8) + 0x5aac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iStack_58 + -0x7dc8) + 0x5aac)" ( (binary_expression "*(int *)(iStack_58 + -0x7dc8) + 0x5aac" (pointer_expression "*(int *)(iStack_58 + -0x7dc8)" * (cast_expression "(int *)(iStack_58 + -0x7dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_58 + -0x7dc8)" ( (binary_expression "iStack_58 + -0x7dc8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pPage)" ( identifier ))) ;) (expression_statement "iStack_88 = rc;" (assignment_expression "iStack_88 = rc" identifier = identifier) ;) })) }))) (if_statement "if (iVar2 == **(int **)(iStack_58 + -0x7a54)) {\n    return iStack_88;\n  }" if (parenthesized_expression "(iVar2 == **(int **)(iStack_58 + -0x7a54))" ( (binary_expression "iVar2 == **(int **)(iStack_58 + -0x7a54)" identifier == (pointer_expression "**(int **)(iStack_58 + -0x7a54)" * (pointer_expression "*(int **)(iStack_58 + -0x7a54)" * (cast_expression "(int **)(iStack_58 + -0x7a54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iStack_58 + -0x7a54)" ( (binary_expression "iStack_58 + -0x7a54" identifier + number_literal) )))))) )) (compound_statement "{\n    return iStack_88;\n  }" { (return_statement "return iStack_88;" return identifier ;) })) (expression_statement "pcVar18 = *(code **)(iStack_58 + -0x7a80);" (assignment_expression "pcVar18 = *(code **)(iStack_58 + -0x7a80)" identifier = (pointer_expression "*(code **)(iStack_58 + -0x7a80)" * (cast_expression "(code **)(iStack_58 + -0x7a80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iStack_58 + -0x7a80)" ( (binary_expression "iStack_58 + -0x7a80" identifier + number_literal) ))))) ;) (expression_statement "pcVar19 = dbpageUpdate;" (assignment_expression "pcVar19 = dbpageUpdate" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_98 = pcVar18 + 0xc62b8;" (assignment_expression "pcStack_98 = pcVar18 + 0xc62b8" identifier = (binary_expression "pcVar18 + 0xc62b8" identifier + number_literal)) ;) (expression_statement "iStack_8c = **(int **)(pcVar18 + 0xbe864);" (assignment_expression "iStack_8c = **(int **)(pcVar18 + 0xbe864)" identifier = (pointer_expression "**(int **)(pcVar18 + 0xbe864)" * (pointer_expression "*(int **)(pcVar18 + 0xbe864)" * (cast_expression "(int **)(pcVar18 + 0xbe864)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0xbe864)" ( (binary_expression "pcVar18 + 0xbe864" identifier + number_literal) )))))) ;) (expression_statement "pPStack_90 = (PgHdr *)0x0;" (assignment_expression "pPStack_90 = (PgHdr *)0x0" identifier = (cast_expression "(PgHdr *)0x0" ( (type_descriptor "PgHdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piStack_84 = unaff_s1;" (assignment_expression "piStack_84 = unaff_s1" identifier = identifier) ;) (expression_statement "iStack_80 = unaff_s2;" (assignment_expression "iStack_80 = unaff_s2" identifier = identifier) ;) (expression_statement "pBStack_7c = pBt;" (assignment_expression "pBStack_7c = pBt" identifier = identifier) ;) (expression_statement "piStack_78 = unaff_s4;" (assignment_expression "piStack_78 = unaff_s4" identifier = identifier) ;) (expression_statement "pcStack_74 = pcVar19;" (assignment_expression "pcStack_74 = pcVar19" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)(iVar2 + 0xc) + 0x24) << 3 < 0) {\n    iVar11 = *(int *)(pcVar18 + 0xbe2f4) + -0x4564;\nLAB_000d187c:\n    (**(code **)(pcStack_98 + -0x7fa8))(*(undefined4 *)(iVar2 + 8));\n                    /* WARNING: Subroutine does not return */\n    sqlite3_mprintf((char *)(*(int *)(pcStack_98 + -0x7fc4) + -0x60a0),iVar11);\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar2 + 0xc) + 0x24) << 3 < 0)" ( (binary_expression "*(int *)(*(int *)(iVar2 + 0xc) + 0x24) << 3 < 0" (binary_expression "*(int *)(*(int *)(iVar2 + 0xc) + 0x24) << 3" (pointer_expression "*(int *)(*(int *)(iVar2 + 0xc) + 0x24)" * (cast_expression "(int *)(*(int *)(iVar2 + 0xc) + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 0xc) + 0x24)" ( (binary_expression "*(int *)(iVar2 + 0xc) + 0x24" (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n    iVar11 = *(int *)(pcVar18 + 0xbe2f4) + -0x4564;\nLAB_000d187c:\n    (**(code **)(pcStack_98 + -0x7fa8))(*(undefined4 *)(iVar2 + 8));\n                    /* WARNING: Subroutine does not return */\n    sqlite3_mprintf((char *)(*(int *)(pcStack_98 + -0x7fc4) + -0x60a0),iVar11);\n  }" { (expression_statement "iVar11 = *(int *)(pcVar18 + 0xbe2f4) + -0x4564;" (assignment_expression "iVar11 = *(int *)(pcVar18 + 0xbe2f4) + -0x4564" identifier = (binary_expression "*(int *)(pcVar18 + 0xbe2f4) + -0x4564" (pointer_expression "*(int *)(pcVar18 + 0xbe2f4)" * (cast_expression "(int *)(pcVar18 + 0xbe2f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0xbe2f4)" ( (binary_expression "pcVar18 + 0xbe2f4" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_000d187c:\n    (**(code **)(pcStack_98 + -0x7fa8))(*(undefined4 *)(iVar2 + 8));" statement_identifier : (expression_statement "(**(code **)(pcStack_98 + -0x7fa8))(*(undefined4 *)(iVar2 + 8));" (call_expression "(**(code **)(pcStack_98 + -0x7fa8))(*(undefined4 *)(iVar2 + 8))" (parenthesized_expression "(**(code **)(pcStack_98 + -0x7fa8))" ( (pointer_expression "**(code **)(pcStack_98 + -0x7fa8)" * (pointer_expression "*(code **)(pcStack_98 + -0x7fa8)" * (cast_expression "(code **)(pcStack_98 + -0x7fa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_98 + -0x7fa8)" ( (binary_expression "pcStack_98 + -0x7fa8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar2 + 8))" ( (pointer_expression "*(undefined4 *)(iVar2 + 8)" * (cast_expression "(undefined4 *)(iVar2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) ))) ;)) comment (expression_statement "sqlite3_mprintf((char *)(*(int *)(pcStack_98 + -0x7fc4) + -0x60a0),iVar11);" (call_expression "sqlite3_mprintf((char *)(*(int *)(pcStack_98 + -0x7fc4) + -0x60a0),iVar11)" identifier (argument_list "((char *)(*(int *)(pcStack_98 + -0x7fc4) + -0x60a0),iVar11)" ( (cast_expression "(char *)(*(int *)(pcStack_98 + -0x7fc4) + -0x60a0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_98 + -0x7fc4) + -0x60a0)" ( (binary_expression "*(int *)(pcStack_98 + -0x7fc4) + -0x60a0" (pointer_expression "*(int *)(pcStack_98 + -0x7fc4)" * (cast_expression "(int *)(pcStack_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_98 + -0x7fc4)" ( (binary_expression "pcStack_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) ))) , identifier ))) ;) })) (if_statement "if ((int *)pgno == (int *)0x1) {\n    iVar11 = *(int *)(pcVar18 + 0xbe2f4) + -0x4558;\n    goto LAB_000d187c;\n  }" if (parenthesized_expression "((int *)pgno == (int *)0x1)" ( (binary_expression "(int *)pgno == (int *)0x1" (cast_expression "(int *)pgno" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar11 = *(int *)(pcVar18 + 0xbe2f4) + -0x4558;\n    goto LAB_000d187c;\n  }" { (expression_statement "iVar11 = *(int *)(pcVar18 + 0xbe2f4) + -0x4558;" (assignment_expression "iVar11 = *(int *)(pcVar18 + 0xbe2f4) + -0x4558" identifier = (binary_expression "*(int *)(pcVar18 + 0xbe2f4) + -0x4558" (pointer_expression "*(int *)(pcVar18 + 0xbe2f4)" * (cast_expression "(int *)(pcVar18 + 0xbe2f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0xbe2f4)" ( (binary_expression "pcVar18 + 0xbe2f4" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "pcVar18 = *(code **)(pcVar18 + 0xbe318);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0xbe318)" identifier = (pointer_expression "*(code **)(pcVar18 + 0xbe318)" * (cast_expression "(code **)(pcVar18 + 0xbe318)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0xbe318)" ( (binary_expression "pcVar18 + 0xbe318" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = (*pcVar18)(*(undefined4 *)&pInfo->nKey);" (assignment_expression "uVar3 = (*pcVar18)(*(undefined4 *)&pInfo->nKey)" identifier = (call_expression "(*pcVar18)(*(undefined4 *)&pInfo->nKey)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(*(undefined4 *)&pInfo->nKey)" ( (pointer_expression "*(undefined4 *)&pInfo->nKey" * (cast_expression "(undefined4 *)&pInfo->nKey" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pInfo->nKey" & (field_expression "pInfo->nKey" identifier -> field_identifier)))) )))) ;) (expression_statement "uVar4 = (*pcVar18)((int)pInfo->nKey);" (assignment_expression "uVar4 = (*pcVar18)((int)pInfo->nKey)" identifier = (call_expression "(*pcVar18)((int)pInfo->nKey)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "((int)pInfo->nKey)" ( (cast_expression "(int)pInfo->nKey" ( (type_descriptor "int" primitive_type) ) (field_expression "pInfo->nKey" identifier -> field_identifier)) )))) ;) (if_statement "if (uVar3 != uVar4) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4538;\n    goto LAB_000d187c;\n  }" if (parenthesized_expression "(uVar3 != uVar4)" ( (binary_expression "uVar3 != uVar4" identifier != identifier) )) (compound_statement "{\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4538;\n    goto LAB_000d187c;\n  }" { (expression_statement "iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4538;" (assignment_expression "iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4538" identifier = (binary_expression "*(int *)(pcStack_98 + -0x7fc4) + -0x4538" (pointer_expression "*(int *)(pcStack_98 + -0x7fc4)" * (cast_expression "(int *)(pcStack_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_98 + -0x7fc4)" ( (binary_expression "pcStack_98 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "uVar10._0_2_ = pInfo->nLocal;" (assignment_expression "uVar10._0_2_ = pInfo->nLocal" (field_expression "uVar10._0_2_" identifier . field_identifier) = (field_expression "pInfo->nLocal" identifier -> field_identifier)) ;) (expression_statement "uVar10._2_2_ = pInfo->nSize;" (assignment_expression "uVar10._2_2_ = pInfo->nSize" (field_expression "uVar10._2_2_" identifier . field_identifier) = (field_expression "pInfo->nSize" identifier -> field_identifier)) ;) (expression_statement "iVar11 = (**(code **)(pcStack_98 + -0x7fa4))(uVar10);" (assignment_expression "iVar11 = (**(code **)(pcStack_98 + -0x7fa4))(uVar10)" identifier = (call_expression "(**(code **)(pcStack_98 + -0x7fa4))(uVar10)" (parenthesized_expression "(**(code **)(pcStack_98 + -0x7fa4))" ( (pointer_expression "**(code **)(pcStack_98 + -0x7fa4)" * (pointer_expression "*(code **)(pcStack_98 + -0x7fa4)" * (cast_expression "(code **)(pcStack_98 + -0x7fa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_98 + -0x7fa4)" ( (binary_expression "pcStack_98 + -0x7fa4" identifier + number_literal) ))))) )) (argument_list "(uVar10)" ( identifier )))) ;) (if_statement "if (iVar11 == 0) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4548;\n    goto LAB_000d187c;\n  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4548;\n    goto LAB_000d187c;\n  }" { (expression_statement "iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4548;" (assignment_expression "iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4548" identifier = (binary_expression "*(int *)(pcStack_98 + -0x7fc4) + -0x4548" (pointer_expression "*(int *)(pcStack_98 + -0x7fc4)" * (cast_expression "(int *)(pcStack_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_98 + -0x7fc4)" ( (binary_expression "pcStack_98 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "iVar12 = *(int *)(iVar2 + 0xc);" (assignment_expression "iVar12 = *(int *)(iVar2 + 0xc)" identifier = (pointer_expression "*(int *)(iVar2 + 0xc)" * (cast_expression "(int *)(iVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = (*(code *)(*(int *)(pcStack_98 + -0x7d64) + -0x6d2c))(iVar12,iVar11);" (assignment_expression "iVar11 = (*(code *)(*(int *)(pcStack_98 + -0x7d64) + -0x6d2c))(iVar12,iVar11)" identifier = (call_expression "(*(code *)(*(int *)(pcStack_98 + -0x7d64) + -0x6d2c))(iVar12,iVar11)" (parenthesized_expression "(*(code *)(*(int *)(pcStack_98 + -0x7d64) + -0x6d2c))" ( (pointer_expression "*(code *)(*(int *)(pcStack_98 + -0x7d64) + -0x6d2c)" * (cast_expression "(code *)(*(int *)(pcStack_98 + -0x7d64) + -0x6d2c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_98 + -0x7d64) + -0x6d2c)" ( (binary_expression "*(int *)(pcStack_98 + -0x7d64) + -0x6d2c" (pointer_expression "*(int *)(pcStack_98 + -0x7d64)" * (cast_expression "(int *)(pcStack_98 + -0x7d64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_98 + -0x7d64)" ( (binary_expression "pcStack_98 + -0x7d64" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(iVar12,iVar11)" ( identifier , identifier )))) ;) (if_statement "if (iVar11 < 0) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4548;\n    goto LAB_000d187c;\n  }" if (parenthesized_expression "(iVar11 < 0)" ( (binary_expression "iVar11 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4548;\n    goto LAB_000d187c;\n  }" { (expression_statement "iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4548;" (assignment_expression "iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4548" identifier = (binary_expression "*(int *)(pcStack_98 + -0x7fc4) + -0x4548" (pointer_expression "*(int *)(pcStack_98 + -0x7fc4)" * (cast_expression "(int *)(pcStack_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_98 + -0x7fc4)" ( (binary_expression "pcStack_98 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (if_statement "if (uVar3 == 0) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;\n    goto LAB_000d187c;\n  }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;\n    goto LAB_000d187c;\n  }" { (expression_statement "iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;" (assignment_expression "iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584" identifier = (binary_expression "*(int *)(pcStack_98 + -0x7fc4) + -0x4584" (pointer_expression "*(int *)(pcStack_98 + -0x7fc4)" * (cast_expression "(int *)(pcStack_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_98 + -0x7fc4)" ( (binary_expression "pcStack_98 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "pvVar13 = *(void **)(*(int *)(iVar12 + 0x10) + iVar11 * 0x10 + 4);" (assignment_expression "pvVar13 = *(void **)(*(int *)(iVar12 + 0x10) + iVar11 * 0x10 + 4)" identifier = (pointer_expression "*(void **)(*(int *)(iVar12 + 0x10) + iVar11 * 0x10 + 4)" * (cast_expression "(void **)(*(int *)(iVar12 + 0x10) + iVar11 * 0x10 + 4)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar12 + 0x10) + iVar11 * 0x10 + 4)" ( (binary_expression "*(int *)(iVar12 + 0x10) + iVar11 * 0x10 + 4" (binary_expression "*(int *)(iVar12 + 0x10) + iVar11 * 0x10" (pointer_expression "*(int *)(iVar12 + 0x10)" * (cast_expression "(int *)(iVar12 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) )))) + (binary_expression "iVar11 * 0x10" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if (pvVar13 == (void *)0x0) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;\n    goto LAB_000d187c;\n  }" if (parenthesized_expression "(pvVar13 == (void *)0x0)" ( (binary_expression "pvVar13 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;\n    goto LAB_000d187c;\n  }" { (expression_statement "iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;" (assignment_expression "iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584" identifier = (binary_expression "*(int *)(pcStack_98 + -0x7fc4) + -0x4584" (pointer_expression "*(int *)(pcStack_98 + -0x7fc4)" * (cast_expression "(int *)(pcStack_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_98 + -0x7fc4)" ( (binary_expression "pcStack_98 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (if_statement "if (*(uint *)(*(int *)((int)pvVar13 + 4) + 0x2c) < uVar3) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;\n    goto LAB_000d187c;\n  }" if (parenthesized_expression "(*(uint *)(*(int *)((int)pvVar13 + 4) + 0x2c) < uVar3)" ( (binary_expression "*(uint *)(*(int *)((int)pvVar13 + 4) + 0x2c) < uVar3" (pointer_expression "*(uint *)(*(int *)((int)pvVar13 + 4) + 0x2c)" * (cast_expression "(uint *)(*(int *)((int)pvVar13 + 4) + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)pvVar13 + 4) + 0x2c)" ( (binary_expression "*(int *)((int)pvVar13 + 4) + 0x2c" (pointer_expression "*(int *)((int)pvVar13 + 4)" * (cast_expression "(int *)((int)pvVar13 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar13 + 4)" ( (binary_expression "(int)pvVar13 + 4" (cast_expression "(int)pvVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;\n    goto LAB_000d187c;\n  }" { (expression_statement "iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584;" (assignment_expression "iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4584" identifier = (binary_expression "*(int *)(pcStack_98 + -0x7fc4) + -0x4584" (pointer_expression "*(int *)(pcStack_98 + -0x7fc4)" * (cast_expression "(int *)(pcStack_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_98 + -0x7fc4)" ( (binary_expression "pcStack_98 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (if_statement "if (*(char *)((*(ushort *)(pInfo->nPayload + 8) & 0x1f) + *(int *)(pcStack_98 + -0x7fc4) + 0x65d0)\n      != '\x04') {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4574;\n    goto LAB_000d187c;\n  }" if (parenthesized_expression "(*(char *)((*(ushort *)(pInfo->nPayload + 8) & 0x1f) + *(int *)(pcStack_98 + -0x7fc4) + 0x65d0)\n      != '\x04')" ( (binary_expression "*(char *)((*(ushort *)(pInfo->nPayload + 8) & 0x1f) + *(int *)(pcStack_98 + -0x7fc4) + 0x65d0)\n      != '\x04'" (pointer_expression "*(char *)((*(ushort *)(pInfo->nPayload + 8) & 0x1f) + *(int *)(pcStack_98 + -0x7fc4) + 0x65d0)" * (cast_expression "(char *)((*(ushort *)(pInfo->nPayload + 8) & 0x1f) + *(int *)(pcStack_98 + -0x7fc4) + 0x65d0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(ushort *)(pInfo->nPayload + 8) & 0x1f) + *(int *)(pcStack_98 + -0x7fc4) + 0x65d0)" ( (binary_expression "(*(ushort *)(pInfo->nPayload + 8) & 0x1f) + *(int *)(pcStack_98 + -0x7fc4) + 0x65d0" (binary_expression "(*(ushort *)(pInfo->nPayload + 8) & 0x1f) + *(int *)(pcStack_98 + -0x7fc4)" (parenthesized_expression "(*(ushort *)(pInfo->nPayload + 8) & 0x1f)" ( (binary_expression "*(ushort *)(pInfo->nPayload + 8) & 0x1f" (pointer_expression "*(ushort *)(pInfo->nPayload + 8)" * (cast_expression "(ushort *)(pInfo->nPayload + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pInfo->nPayload + 8)" ( (binary_expression "pInfo->nPayload + 8" (field_expression "pInfo->nPayload" identifier -> field_identifier) + number_literal) )))) & number_literal) )) + (pointer_expression "*(int *)(pcStack_98 + -0x7fc4)" * (cast_expression "(int *)(pcStack_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_98 + -0x7fc4)" ( (binary_expression "pcStack_98 + -0x7fc4" identifier + number_literal) ))))) + number_literal) )))) != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4574;\n    goto LAB_000d187c;\n  }" { (expression_statement "iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4574;" (assignment_expression "iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4574" identifier = (binary_expression "*(int *)(pcStack_98 + -0x7fc4) + -0x4574" (pointer_expression "*(int *)(pcStack_98 + -0x7fc4)" * (cast_expression "(int *)(pcStack_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_98 + -0x7fc4)" ( (binary_expression "pcStack_98 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "ppPVar16 = *(PgHdr ***)(*(int *)((int)pvVar13 + 4) + 0x20);" (assignment_expression "ppPVar16 = *(PgHdr ***)(*(int *)((int)pvVar13 + 4) + 0x20)" identifier = (pointer_expression "*(PgHdr ***)(*(int *)((int)pvVar13 + 4) + 0x20)" * (cast_expression "(PgHdr ***)(*(int *)((int)pvVar13 + 4) + 0x20)" ( (type_descriptor "PgHdr ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*(int *)((int)pvVar13 + 4) + 0x20)" ( (binary_expression "*(int *)((int)pvVar13 + 4) + 0x20" (pointer_expression "*(int *)((int)pvVar13 + 4)" * (cast_expression "(int *)((int)pvVar13 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar13 + 4)" ( (binary_expression "(int)pvVar13 + 4" (cast_expression "(int)pvVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "ppPVar5 = (PgHdr **)(**(code **)(pcStack_98 + -0x7f60))();" (assignment_expression "ppPVar5 = (PgHdr **)(**(code **)(pcStack_98 + -0x7f60))()" identifier = (cast_expression "(PgHdr **)(**(code **)(pcStack_98 + -0x7f60))()" ( (type_descriptor "PgHdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(pcStack_98 + -0x7f60))()" (parenthesized_expression "(**(code **)(pcStack_98 + -0x7f60))" ( (pointer_expression "**(code **)(pcStack_98 + -0x7f60)" * (pointer_expression "*(code **)(pcStack_98 + -0x7f60)" * (cast_expression "(code **)(pcStack_98 + -0x7f60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_98 + -0x7f60)" ( (binary_expression "pcStack_98 + -0x7f60" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (if_statement "if (ppPVar5 != ppPVar16) {\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4574;\n    goto LAB_000d187c;\n  }" if (parenthesized_expression "(ppPVar5 != ppPVar16)" ( (binary_expression "ppPVar5 != ppPVar16" identifier != identifier) )) (compound_statement "{\n    iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4574;\n    goto LAB_000d187c;\n  }" { (expression_statement "iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4574;" (assignment_expression "iVar11 = *(int *)(pcStack_98 + -0x7fc4) + -0x4574" identifier = (binary_expression "*(int *)(pcStack_98 + -0x7fc4) + -0x4574" (pointer_expression "*(int *)(pcStack_98 + -0x7fc4)" * (cast_expression "(int *)(pcStack_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_98 + -0x7fc4)" ( (binary_expression "pcStack_98 + -0x7fc4" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "ppPVar5 = &pPStack_90;" (assignment_expression "ppPVar5 = &pPStack_90" identifier = (pointer_expression "&pPStack_90" & identifier)) ;) (expression_statement "uVar4 = uVar3;" (assignment_expression "uVar4 = uVar3" identifier = identifier) ;) (expression_statement "iVar2 = (*(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x491c))\n                    (**(undefined4 **)((int)pvVar13 + 4),uVar3,ppPVar5,0);" (assignment_expression "iVar2 = (*(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x491c))\n                    (**(undefined4 **)((int)pvVar13 + 4),uVar3,ppPVar5,0)" identifier = (call_expression "(*(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x491c))\n                    (**(undefined4 **)((int)pvVar13 + 4),uVar3,ppPVar5,0)" (parenthesized_expression "(*(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x491c))" ( (pointer_expression "*(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x491c)" * (cast_expression "(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x491c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_98 + -0x7dc8) + 0x491c)" ( (binary_expression "*(int *)(pcStack_98 + -0x7dc8) + 0x491c" (pointer_expression "*(int *)(pcStack_98 + -0x7dc8)" * (cast_expression "(int *)(pcStack_98 + -0x7dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_98 + -0x7dc8)" ( (binary_expression "pcStack_98 + -0x7dc8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(**(undefined4 **)((int)pvVar13 + 4),uVar3,ppPVar5,0)" ( (pointer_expression "**(undefined4 **)((int)pvVar13 + 4)" * (pointer_expression "*(undefined4 **)((int)pvVar13 + 4)" * (cast_expression "(undefined4 **)((int)pvVar13 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pvVar13 + 4)" ( (binary_expression "(int)pvVar13 + 4" (cast_expression "(int)pvVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , identifier , identifier , number_literal )))) ;) (if_statement "if ((iVar2 == 0) && (iVar2 = sqlite3PagerWrite(pPStack_90), iVar2 == 0)) {\n    pvVar13 = pPStack_90->pData;\n    uVar4 = (**(code **)(pcStack_98 + -0x7f5c))(pInfo->nPayload);\n    ppPVar5 = ppPVar16;\n    (**(code **)(pcStack_98 + -0x7a4c))(pvVar13);\n  }" if (parenthesized_expression "((iVar2 == 0) && (iVar2 = sqlite3PagerWrite(pPStack_90), iVar2 == 0))" ( (binary_expression "(iVar2 == 0) && (iVar2 = sqlite3PagerWrite(pPStack_90), iVar2 == 0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar2 = sqlite3PagerWrite(pPStack_90), iVar2 == 0)" ( (comma_expression "iVar2 = sqlite3PagerWrite(pPStack_90), iVar2 == 0" (assignment_expression "iVar2 = sqlite3PagerWrite(pPStack_90)" identifier = (call_expression "sqlite3PagerWrite(pPStack_90)" identifier (argument_list "(pPStack_90)" ( identifier )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    pvVar13 = pPStack_90->pData;\n    uVar4 = (**(code **)(pcStack_98 + -0x7f5c))(pInfo->nPayload);\n    ppPVar5 = ppPVar16;\n    (**(code **)(pcStack_98 + -0x7a4c))(pvVar13);\n  }" { (expression_statement "pvVar13 = pPStack_90->pData;" (assignment_expression "pvVar13 = pPStack_90->pData" identifier = (field_expression "pPStack_90->pData" identifier -> field_identifier)) ;) (expression_statement "uVar4 = (**(code **)(pcStack_98 + -0x7f5c))(pInfo->nPayload);" (assignment_expression "uVar4 = (**(code **)(pcStack_98 + -0x7f5c))(pInfo->nPayload)" identifier = (call_expression "(**(code **)(pcStack_98 + -0x7f5c))(pInfo->nPayload)" (parenthesized_expression "(**(code **)(pcStack_98 + -0x7f5c))" ( (pointer_expression "**(code **)(pcStack_98 + -0x7f5c)" * (pointer_expression "*(code **)(pcStack_98 + -0x7f5c)" * (cast_expression "(code **)(pcStack_98 + -0x7f5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_98 + -0x7f5c)" ( (binary_expression "pcStack_98 + -0x7f5c" identifier + number_literal) ))))) )) (argument_list "(pInfo->nPayload)" ( (field_expression "pInfo->nPayload" identifier -> field_identifier) )))) ;) (expression_statement "ppPVar5 = ppPVar16;" (assignment_expression "ppPVar5 = ppPVar16" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_98 + -0x7a4c))(pvVar13);" (call_expression "(**(code **)(pcStack_98 + -0x7a4c))(pvVar13)" (parenthesized_expression "(**(code **)(pcStack_98 + -0x7a4c))" ( (pointer_expression "**(code **)(pcStack_98 + -0x7a4c)" * (pointer_expression "*(code **)(pcStack_98 + -0x7a4c)" * (cast_expression "(code **)(pcStack_98 + -0x7a4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_98 + -0x7a4c)" ( (binary_expression "pcStack_98 + -0x7a4c" identifier + number_literal) ))))) )) (argument_list "(pvVar13)" ( identifier ))) ;) })) (expression_statement "(*(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x49ec))(pPStack_90);" (call_expression "(*(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x49ec))(pPStack_90)" (parenthesized_expression "(*(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x49ec))" ( (pointer_expression "*(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x49ec)" * (cast_expression "(code *)(*(int *)(pcStack_98 + -0x7dc8) + 0x49ec)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_98 + -0x7dc8) + 0x49ec)" ( (binary_expression "*(int *)(pcStack_98 + -0x7dc8) + 0x49ec" (pointer_expression "*(int *)(pcStack_98 + -0x7dc8)" * (cast_expression "(int *)(pcStack_98 + -0x7dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_98 + -0x7dc8)" ( (binary_expression "pcStack_98 + -0x7dc8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(pPStack_90)" ( identifier ))) ;) (if_statement "if (iStack_8c == **(int **)(pcStack_98 + -0x7a54)) {\n    return iVar2;\n  }" if (parenthesized_expression "(iStack_8c == **(int **)(pcStack_98 + -0x7a54))" ( (binary_expression "iStack_8c == **(int **)(pcStack_98 + -0x7a54)" identifier == (pointer_expression "**(int **)(pcStack_98 + -0x7a54)" * (pointer_expression "*(int **)(pcStack_98 + -0x7a54)" * (cast_expression "(int **)(pcStack_98 + -0x7a54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_98 + -0x7a54)" ( (binary_expression "pcStack_98 + -0x7a54" identifier + number_literal) )))))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "pcVar18 = *(code **)(pcStack_98 + -0x7a80);" (assignment_expression "pcVar18 = *(code **)(pcStack_98 + -0x7a80)" identifier = (pointer_expression "*(code **)(pcStack_98 + -0x7a80)" * (cast_expression "(code **)(pcStack_98 + -0x7a80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_98 + -0x7a80)" ( (binary_expression "pcStack_98 + -0x7a80" identifier + number_literal) ))))) ;) (expression_statement "pcVar19 = accessPayload;" (assignment_expression "pcVar19 = accessPayload" identifier = identifier) ;) (expression_statement "iVar12 = iStack_8c;" (assignment_expression "iVar12 = iStack_8c" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pBStack_d4 = (BtCursor *)**(undefined4 **)(pcVar18 + 0xbe590);" (assignment_expression "pBStack_d4 = (BtCursor *)**(undefined4 **)(pcVar18 + 0xbe590)" identifier = (cast_expression "(BtCursor *)**(undefined4 **)(pcVar18 + 0xbe590)" ( (type_descriptor "BtCursor *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar18 + 0xbe590)" * (pointer_expression "*(undefined4 **)(pcVar18 + 0xbe590)" * (cast_expression "(undefined4 **)(pcVar18 + 0xbe590)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0xbe590)" ( (binary_expression "pcVar18 + 0xbe590" identifier + number_literal) ))))))) ;) (expression_statement "iVar15 = *(int *)(iVar12 + 0x74);" (assignment_expression "iVar15 = *(int *)(iVar12 + 0x74)" identifier = (pointer_expression "*(int *)(iVar12 + 0x74)" * (cast_expression "(int *)(iVar12 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x74)" ( (binary_expression "iVar12 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "puVar17 = *(undefined4 **)(iVar12 + 0x14);" (assignment_expression "puVar17 = *(undefined4 **)(iVar12 + 0x14)" identifier = (pointer_expression "*(undefined4 **)(iVar12 + 0x14)" * (cast_expression "(undefined4 **)(iVar12 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x14)" ( (binary_expression "iVar12 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iStack_d0 = iVar2;" (assignment_expression "iStack_d0 = iVar2" identifier = identifier) ;) (expression_statement "pCStack_cc = pInfo;" (assignment_expression "pCStack_cc = pInfo" identifier = identifier) ;) (expression_statement "pvStack_c8 = pvVar13;" (assignment_expression "pvStack_c8 = pvVar13" identifier = identifier) ;) (expression_statement "uStack_c4 = uVar3;" (assignment_expression "uStack_c4 = uVar3" identifier = identifier) ;) (expression_statement "ppPStack_c0 = ppPVar16;" (assignment_expression "ppPStack_c0 = ppPVar16" identifier = identifier) ;) (expression_statement "uStack_bc = unaff_s5;" (assignment_expression "uStack_bc = unaff_s5" identifier = identifier) ;) (expression_statement "pcStack_b8 = unaff_s6;" (assignment_expression "pcStack_b8 = unaff_s6" identifier = identifier) ;) (expression_statement "pcStack_b4 = unaff_s7;" (assignment_expression "pcStack_b4 = unaff_s7" identifier = identifier) ;) (expression_statement "uStack_b0 = unaff_s8;" (assignment_expression "uStack_b0 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_ac = pcVar19;" (assignment_expression "pcStack_ac = pcVar19" identifier = identifier) ;) (expression_statement "(*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x5c00))();" (call_expression "(*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x5c00))()" (parenthesized_expression "(*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x5c00))" ( (pointer_expression "*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x5c00)" * (cast_expression "(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x5c00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar18 + 0xbe21c) + 0x5c00)" ( (binary_expression "*(int *)(pcVar18 + 0xbe21c) + 0x5c00" (pointer_expression "*(int *)(pcVar18 + 0xbe21c)" * (cast_expression "(int *)(pcVar18 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0xbe21c)" ( (binary_expression "pcVar18 + 0xbe21c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar2 = *(int *)(iVar12 + 0x28);" (assignment_expression "iVar2 = *(int *)(iVar12 + 0x28)" identifier = (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = (uint)*(ushort *)(iVar12 + 0x30);" (assignment_expression "uVar3 = (uint)*(ushort *)(iVar12 + 0x30)" identifier = (binary_expression "(uint)*(ushort *)(iVar12 + 0x30)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar12 + 0x30)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (puVar17[9] - uVar3 < (uint)(iVar2 - *(int *)(iVar15 + 0x38))) {\n    iVar15 = (*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }" if (parenthesized_expression "(puVar17[9] - uVar3 < (uint)(iVar2 - *(int *)(iVar15 + 0x38)))" ( (binary_expression "puVar17[9] - uVar3 < (uint)(iVar2 - *(int *)(iVar15 + 0x38))" (binary_expression "puVar17[9] - uVar3" (subscript_expression "puVar17[9]" identifier [ number_literal ]) - identifier) < (call_expression "(uint)(iVar2 - *(int *)(iVar15 + 0x38))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 - *(int *)(iVar15 + 0x38))" ( (binary_expression "iVar2 - *(int *)(iVar15 + 0x38)" identifier - (pointer_expression "*(int *)(iVar15 + 0x38)" * (cast_expression "(int *)(iVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x38)" ( (binary_expression "iVar15 + 0x38" identifier + number_literal) ))))) )))) )) (compound_statement "{\n    iVar15 = (*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }" { (expression_statement "iVar15 = (*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))(0x108be);" (assignment_expression "iVar15 = (*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))(0x108be)" identifier = (call_expression "(*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))(0x108be)" (parenthesized_expression "(*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))" ( (pointer_expression "*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28)" * (cast_expression "(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28)" ( (binary_expression "*(int *)(pcVar18 + 0xbe2b8) + 0x3b28" (pointer_expression "*(int *)(pcVar18 + 0xbe2b8)" * (cast_expression "(int *)(pcVar18 + 0xbe2b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0xbe2b8)" ( (binary_expression "pcVar18 + 0xbe2b8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(0x108be)" ( number_literal )))) ;) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;) })) (if_statement "if (uVar4 < uVar3) {\n    ppPVar16 = ppPVar5;\n    if (uVar3 < uVar4 + (int)ppPVar5) {\n      ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n    }\n    if (pcStack_98 == (code *)0x0) {\n      (**(code **)(pcVar18 + 0xbe598))(iVar11,iVar2 + uVar4,ppPVar16);\n    }\n    else {\n      iVar15 = sqlite3PagerWrite(*(PgHdr **)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar18 + 0xbe598))(iVar2 + uVar4,iVar11,ppPVar16);\n    }\n    iVar11 = iVar11 + (int)ppPVar16;\n    ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);\n    uVar4 = 0;\n  }\n  else {\n    uVar4 = uVar4 - uVar3;\n  }" if (parenthesized_expression "(uVar4 < uVar3)" ( (binary_expression "uVar4 < uVar3" identifier < identifier) )) (compound_statement "{\n    ppPVar16 = ppPVar5;\n    if (uVar3 < uVar4 + (int)ppPVar5) {\n      ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n    }\n    if (pcStack_98 == (code *)0x0) {\n      (**(code **)(pcVar18 + 0xbe598))(iVar11,iVar2 + uVar4,ppPVar16);\n    }\n    else {\n      iVar15 = sqlite3PagerWrite(*(PgHdr **)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar18 + 0xbe598))(iVar2 + uVar4,iVar11,ppPVar16);\n    }\n    iVar11 = iVar11 + (int)ppPVar16;\n    ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);\n    uVar4 = 0;\n  }" { (expression_statement "ppPVar16 = ppPVar5;" (assignment_expression "ppPVar16 = ppPVar5" identifier = identifier) ;) (if_statement "if (uVar3 < uVar4 + (int)ppPVar5) {\n      ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n    }" if (parenthesized_expression "(uVar3 < uVar4 + (int)ppPVar5)" ( (binary_expression "uVar3 < uVar4 + (int)ppPVar5" identifier < (binary_expression "uVar4 + (int)ppPVar5" identifier + (cast_expression "(int)ppPVar5" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n      ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n    }" { (expression_statement "ppPVar16 = (PgHdr **)(uVar3 - uVar4);" (assignment_expression "ppPVar16 = (PgHdr **)(uVar3 - uVar4)" identifier = (cast_expression "(PgHdr **)(uVar3 - uVar4)" ( (type_descriptor "PgHdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar3 - uVar4)" ( (binary_expression "uVar3 - uVar4" identifier - identifier) )))) ;) })) (if_statement "if (pcStack_98 == (code *)0x0) {\n      (**(code **)(pcVar18 + 0xbe598))(iVar11,iVar2 + uVar4,ppPVar16);\n    }\n    else {\n      iVar15 = sqlite3PagerWrite(*(PgHdr **)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar18 + 0xbe598))(iVar2 + uVar4,iVar11,ppPVar16);\n    }" if (parenthesized_expression "(pcStack_98 == (code *)0x0)" ( (binary_expression "pcStack_98 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar18 + 0xbe598))(iVar11,iVar2 + uVar4,ppPVar16);\n    }" { (expression_statement "(**(code **)(pcVar18 + 0xbe598))(iVar11,iVar2 + uVar4,ppPVar16);" (call_expression "(**(code **)(pcVar18 + 0xbe598))(iVar11,iVar2 + uVar4,ppPVar16)" (parenthesized_expression "(**(code **)(pcVar18 + 0xbe598))" ( (pointer_expression "**(code **)(pcVar18 + 0xbe598)" * (pointer_expression "*(code **)(pcVar18 + 0xbe598)" * (cast_expression "(code **)(pcVar18 + 0xbe598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0xbe598)" ( (binary_expression "pcVar18 + 0xbe598" identifier + number_literal) ))))) )) (argument_list "(iVar11,iVar2 + uVar4,ppPVar16)" ( identifier , (binary_expression "iVar2 + uVar4" identifier + identifier) , identifier ))) ;) }) (else_clause "else {\n      iVar15 = sqlite3PagerWrite(*(PgHdr **)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar18 + 0xbe598))(iVar2 + uVar4,iVar11,ppPVar16);\n    }" else (compound_statement "{\n      iVar15 = sqlite3PagerWrite(*(PgHdr **)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar18 + 0xbe598))(iVar2 + uVar4,iVar11,ppPVar16);\n    }" { (expression_statement "iVar15 = sqlite3PagerWrite(*(PgHdr **)(iVar15 + 0x48));" (assignment_expression "iVar15 = sqlite3PagerWrite(*(PgHdr **)(iVar15 + 0x48))" identifier = (call_expression "sqlite3PagerWrite(*(PgHdr **)(iVar15 + 0x48))" identifier (argument_list "(*(PgHdr **)(iVar15 + 0x48))" ( (pointer_expression "*(PgHdr **)(iVar15 + 0x48)" * (cast_expression "(PgHdr **)(iVar15 + 0x48)" ( (type_descriptor "PgHdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x48)" ( (binary_expression "iVar15 + 0x48" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar15 != 0) goto LAB_000d1a60;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar18 + 0xbe598))(iVar2 + uVar4,iVar11,ppPVar16);" (call_expression "(**(code **)(pcVar18 + 0xbe598))(iVar2 + uVar4,iVar11,ppPVar16)" (parenthesized_expression "(**(code **)(pcVar18 + 0xbe598))" ( (pointer_expression "**(code **)(pcVar18 + 0xbe598)" * (pointer_expression "*(code **)(pcVar18 + 0xbe598)" * (cast_expression "(code **)(pcVar18 + 0xbe598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0xbe598)" ( (binary_expression "pcVar18 + 0xbe598" identifier + number_literal) ))))) )) (argument_list "(iVar2 + uVar4,iVar11,ppPVar16)" ( (binary_expression "iVar2 + uVar4" identifier + identifier) , identifier , identifier ))) ;) }))) (expression_statement "iVar11 = iVar11 + (int)ppPVar16;" (assignment_expression "iVar11 = iVar11 + (int)ppPVar16" identifier = (binary_expression "iVar11 + (int)ppPVar16" identifier + (cast_expression "(int)ppPVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);" (assignment_expression "ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16)" identifier = (cast_expression "(PgHdr **)((int)ppPVar5 - (int)ppPVar16)" ( (type_descriptor "PgHdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppPVar5 - (int)ppPVar16)" ( (binary_expression "(int)ppPVar5 - (int)ppPVar16" (cast_expression "(int)ppPVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppPVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    uVar4 = uVar4 - uVar3;\n  }" else (compound_statement "{\n    uVar4 = uVar4 - uVar3;\n  }" { (expression_statement "uVar4 = uVar4 - uVar3;" (assignment_expression "uVar4 = uVar4 - uVar3" identifier = (binary_expression "uVar4 - uVar3" identifier - identifier)) ;) }))) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (if_statement "if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;" if (parenthesized_expression "(ppPVar5 == (PgHdr **)0x0)" ( (binary_expression "ppPVar5 == (PgHdr **)0x0" identifier == (cast_expression "(PgHdr **)0x0" ( (type_descriptor "PgHdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;)) (expression_statement "iVar15 = puVar17[9];" (assignment_expression "iVar15 = puVar17[9]" identifier = (subscript_expression "puVar17[9]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = *(ushort *)(iVar12 + 0x30);" (assignment_expression "uVar1 = *(ushort *)(iVar12 + 0x30)" identifier = (pointer_expression "*(ushort *)(iVar12 + 0x30)" * (cast_expression "(ushort *)(iVar12 + 0x30)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "iStack_dc = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x2220))(iVar2 + (uint)uVar1);" (assignment_expression "iStack_dc = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x2220))(iVar2 + (uint)uVar1)" identifier = (call_expression "(*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x2220))(iVar2 + (uint)uVar1)" (parenthesized_expression "(*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x2220))" ( (pointer_expression "*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x2220)" * (cast_expression "(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x2220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar18 + 0xbe21c) + 0x2220)" ( (binary_expression "*(int *)(pcVar18 + 0xbe21c) + 0x2220" (pointer_expression "*(int *)(pcVar18 + 0xbe21c)" * (cast_expression "(int *)(pcVar18 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0xbe21c)" ( (binary_expression "pcVar18 + 0xbe21c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(iVar2 + (uint)uVar1)" ( (binary_expression "iVar2 + (uint)uVar1" identifier + (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "uVar3 = iVar15 - 4;" (assignment_expression "uVar3 = iVar15 - 4" identifier = (binary_expression "iVar15 - 4" identifier - number_literal)) ;) (if_statement "if ((*(byte *)(iVar12 + 1) & 4) == 0) {\n    if (uVar3 == 0) {\n      trap(7);\n    }\n    uVar20 = ((*(int *)(iVar12 + 0x2c) + -1 + uVar3) - (uint)uVar1) / uVar3;\n    if ((*(int *)(iVar12 + 0xc) == 0) ||\n       (iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x1030))(), iVar2 < (int)(uVar20 << 2))) {\n      iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar12 + 0xc));\n      if (iVar2 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar12 + 0xc) = iVar2;\n    }\n    (**(code **)(pcVar18 + 0xbe4c4))(*(undefined4 *)(iVar12 + 0xc),0,uVar20 << 2);\n    *(byte *)(iVar12 + 1) = *(byte *)(iVar12 + 1) | 4;\nLAB_000d1bac:\n    uVar20 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }\n  else {\n    if (uVar3 == 0) {\n      trap(7);\n    }\n    uVar20 = uVar4 / uVar3;\n    iVar2 = *(int *)(*(int *)(iVar12 + 0xc) + uVar20 * 4);\n    if (iVar2 == 0) goto LAB_000d1bac;\n    if (uVar3 == 0) {\n      trap(7);\n    }\n    uVar4 = uVar4 % uVar3;\n    iStack_dc = iVar2;\nLAB_000d1bb8:\n    iVar14 = uVar20 << 2;\n    iVar2 = *(int *)(pcVar18 + 0xbe21c);\n    iVar6 = *(int *)(pcVar18 + 0xbe21c);\n    iVar7 = *(int *)(pcVar18 + 0xbe21c);\n    iVar8 = *(int *)(pcVar18 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar12 + 0xc) + iVar14) = iStack_dc;\n      if (uVar4 < uVar3) {\n        ppPVar16 = ppPVar5;\n        if (uVar3 < uVar4 + (int)ppPVar5) {\n          ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n        }\n        if (pcStack_98 == (code *)0x0) {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,2);\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            (**(code **)(pcVar18 + 0xbe598))(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,0);\n          pPg = pPStack_d8;\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            iVar15 = sqlite3PagerWrite(pPg);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar7 + 0x49ec))(pPStack_d8);\n            uVar4 = 0;\n          }\n        }\n        ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);\n        iVar11 = iVar11 + (int)ppPVar16;\n        if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar9 = *(int *)(*(int *)(iVar12 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar9 == 0) {\n          iVar15 = (*(code *)(iVar8 + 0x43f4))(puVar17,iStack_dc,0,&iStack_dc);\n          iVar9 = iStack_dc;\n        }\n        iStack_dc = iVar9;\n        uVar4 = uVar4 - uVar3;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n  }" if (parenthesized_expression "((*(byte *)(iVar12 + 1) & 4) == 0)" ( (binary_expression "(*(byte *)(iVar12 + 1) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar12 + 1) & 4)" ( (binary_expression "*(byte *)(iVar12 + 1) & 4" (pointer_expression "*(byte *)(iVar12 + 1)" * (cast_expression "(byte *)(iVar12 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 1)" ( (binary_expression "iVar12 + 1" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if (uVar3 == 0) {\n      trap(7);\n    }\n    uVar20 = ((*(int *)(iVar12 + 0x2c) + -1 + uVar3) - (uint)uVar1) / uVar3;\n    if ((*(int *)(iVar12 + 0xc) == 0) ||\n       (iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x1030))(), iVar2 < (int)(uVar20 << 2))) {\n      iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar12 + 0xc));\n      if (iVar2 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar12 + 0xc) = iVar2;\n    }\n    (**(code **)(pcVar18 + 0xbe4c4))(*(undefined4 *)(iVar12 + 0xc),0,uVar20 << 2);\n    *(byte *)(iVar12 + 1) = *(byte *)(iVar12 + 1) | 4;\nLAB_000d1bac:\n    uVar20 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }" { (if_statement "if (uVar3 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar20 = ((*(int *)(iVar12 + 0x2c) + -1 + uVar3) - (uint)uVar1) / uVar3;" (assignment_expression "uVar20 = ((*(int *)(iVar12 + 0x2c) + -1 + uVar3) - (uint)uVar1) / uVar3" identifier = (binary_expression "((*(int *)(iVar12 + 0x2c) + -1 + uVar3) - (uint)uVar1) / uVar3" (parenthesized_expression "((*(int *)(iVar12 + 0x2c) + -1 + uVar3) - (uint)uVar1)" ( (binary_expression "(*(int *)(iVar12 + 0x2c) + -1 + uVar3) - (uint)uVar1" (parenthesized_expression "(*(int *)(iVar12 + 0x2c) + -1 + uVar3)" ( (binary_expression "*(int *)(iVar12 + 0x2c) + -1 + uVar3" (binary_expression "*(int *)(iVar12 + 0x2c) + -1" (pointer_expression "*(int *)(iVar12 + 0x2c)" * (cast_expression "(int *)(iVar12 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) )))) + number_literal) + identifier) )) - (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) )) / identifier)) ;) (if_statement "if ((*(int *)(iVar12 + 0xc) == 0) ||\n       (iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x1030))(), iVar2 < (int)(uVar20 << 2))) {\n      iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar12 + 0xc));\n      if (iVar2 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar12 + 0xc) = iVar2;\n    }" if (parenthesized_expression "((*(int *)(iVar12 + 0xc) == 0) ||\n       (iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x1030))(), iVar2 < (int)(uVar20 << 2)))" ( (binary_expression "(*(int *)(iVar12 + 0xc) == 0) ||\n       (iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x1030))(), iVar2 < (int)(uVar20 << 2))" (parenthesized_expression "(*(int *)(iVar12 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar12 + 0xc) == 0" (pointer_expression "*(int *)(iVar12 + 0xc)" * (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x1030))(), iVar2 < (int)(uVar20 << 2))" ( (comma_expression "iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x1030))(), iVar2 < (int)(uVar20 << 2)" (assignment_expression "iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x1030))()" identifier = (call_expression "(*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x1030))()" (parenthesized_expression "(*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x1030))" ( (pointer_expression "*(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x1030)" * (cast_expression "(code *)(*(int *)(pcVar18 + 0xbe21c) + 0x1030)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar18 + 0xbe21c) + 0x1030)" ( (binary_expression "*(int *)(pcVar18 + 0xbe21c) + 0x1030" (pointer_expression "*(int *)(pcVar18 + 0xbe21c)" * (cast_expression "(int *)(pcVar18 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0xbe21c)" ( (binary_expression "pcVar18 + 0xbe21c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( )))) , (binary_expression "iVar2 < (int)(uVar20 << 2)" identifier < (cast_expression "(int)(uVar20 << 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar20 << 2)" ( (binary_expression "uVar20 << 2" identifier << number_literal) ))))) ))) )) (compound_statement "{\n      iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar12 + 0xc));\n      if (iVar2 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar12 + 0xc) = iVar2;\n    }" { (expression_statement "iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar12 + 0xc));" (assignment_expression "iVar2 = (*(code *)(*(int *)(pcVar18 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar12 + 0xc))" identifier = (call_expression "(*(code *)(*(int *)(pcVar18 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar12 + 0xc))" (parenthesized_expression "(*(code *)(*(int *)(pcVar18 + 0xbe2c8) + 0x5944))" ( (pointer_expression "*(code *)(*(int *)(pcVar18 + 0xbe2c8) + 0x5944)" * (cast_expression "(code *)(*(int *)(pcVar18 + 0xbe2c8) + 0x5944)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar18 + 0xbe2c8) + 0x5944)" ( (binary_expression "*(int *)(pcVar18 + 0xbe2c8) + 0x5944" (pointer_expression "*(int *)(pcVar18 + 0xbe2c8)" * (cast_expression "(int *)(pcVar18 + 0xbe2c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0xbe2c8)" ( (binary_expression "pcVar18 + 0xbe2c8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(*(undefined4 *)(iVar12 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar12 + 0xc)" * (cast_expression "(undefined4 *)(iVar12 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar2 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }" { (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;) })) (expression_statement "*(int *)(iVar12 + 0xc) = iVar2;" (assignment_expression "*(int *)(iVar12 + 0xc) = iVar2" (pointer_expression "*(int *)(iVar12 + 0xc)" * (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "(**(code **)(pcVar18 + 0xbe4c4))(*(undefined4 *)(iVar12 + 0xc),0,uVar20 << 2);" (call_expression "(**(code **)(pcVar18 + 0xbe4c4))(*(undefined4 *)(iVar12 + 0xc),0,uVar20 << 2)" (parenthesized_expression "(**(code **)(pcVar18 + 0xbe4c4))" ( (pointer_expression "**(code **)(pcVar18 + 0xbe4c4)" * (pointer_expression "*(code **)(pcVar18 + 0xbe4c4)" * (cast_expression "(code **)(pcVar18 + 0xbe4c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0xbe4c4)" ( (binary_expression "pcVar18 + 0xbe4c4" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar12 + 0xc),0,uVar20 << 2)" ( (pointer_expression "*(undefined4 *)(iVar12 + 0xc)" * (cast_expression "(undefined4 *)(iVar12 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) , number_literal , (binary_expression "uVar20 << 2" identifier << number_literal) ))) ;) (expression_statement "*(byte *)(iVar12 + 1) = *(byte *)(iVar12 + 1) | 4;" (assignment_expression "*(byte *)(iVar12 + 1) = *(byte *)(iVar12 + 1) | 4" (pointer_expression "*(byte *)(iVar12 + 1)" * (cast_expression "(byte *)(iVar12 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 1)" ( (binary_expression "iVar12 + 1" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar12 + 1) | 4" (pointer_expression "*(byte *)(iVar12 + 1)" * (cast_expression "(byte *)(iVar12 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 1)" ( (binary_expression "iVar12 + 1" identifier + number_literal) )))) | number_literal)) ;) (labeled_statement "LAB_000d1bac:\n    uVar20 = 0;" statement_identifier : (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;)) (if_statement "if (iStack_dc != 0) goto LAB_000d1bb8;" if (parenthesized_expression "(iStack_dc != 0)" ( (binary_expression "iStack_dc != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1bb8;" goto statement_identifier ;)) }) (else_clause "else {\n    if (uVar3 == 0) {\n      trap(7);\n    }\n    uVar20 = uVar4 / uVar3;\n    iVar2 = *(int *)(*(int *)(iVar12 + 0xc) + uVar20 * 4);\n    if (iVar2 == 0) goto LAB_000d1bac;\n    if (uVar3 == 0) {\n      trap(7);\n    }\n    uVar4 = uVar4 % uVar3;\n    iStack_dc = iVar2;\nLAB_000d1bb8:\n    iVar14 = uVar20 << 2;\n    iVar2 = *(int *)(pcVar18 + 0xbe21c);\n    iVar6 = *(int *)(pcVar18 + 0xbe21c);\n    iVar7 = *(int *)(pcVar18 + 0xbe21c);\n    iVar8 = *(int *)(pcVar18 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar12 + 0xc) + iVar14) = iStack_dc;\n      if (uVar4 < uVar3) {\n        ppPVar16 = ppPVar5;\n        if (uVar3 < uVar4 + (int)ppPVar5) {\n          ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n        }\n        if (pcStack_98 == (code *)0x0) {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,2);\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            (**(code **)(pcVar18 + 0xbe598))(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,0);\n          pPg = pPStack_d8;\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            iVar15 = sqlite3PagerWrite(pPg);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar7 + 0x49ec))(pPStack_d8);\n            uVar4 = 0;\n          }\n        }\n        ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);\n        iVar11 = iVar11 + (int)ppPVar16;\n        if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar9 = *(int *)(*(int *)(iVar12 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar9 == 0) {\n          iVar15 = (*(code *)(iVar8 + 0x43f4))(puVar17,iStack_dc,0,&iStack_dc);\n          iVar9 = iStack_dc;\n        }\n        iStack_dc = iVar9;\n        uVar4 = uVar4 - uVar3;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n  }" else (compound_statement "{\n    if (uVar3 == 0) {\n      trap(7);\n    }\n    uVar20 = uVar4 / uVar3;\n    iVar2 = *(int *)(*(int *)(iVar12 + 0xc) + uVar20 * 4);\n    if (iVar2 == 0) goto LAB_000d1bac;\n    if (uVar3 == 0) {\n      trap(7);\n    }\n    uVar4 = uVar4 % uVar3;\n    iStack_dc = iVar2;\nLAB_000d1bb8:\n    iVar14 = uVar20 << 2;\n    iVar2 = *(int *)(pcVar18 + 0xbe21c);\n    iVar6 = *(int *)(pcVar18 + 0xbe21c);\n    iVar7 = *(int *)(pcVar18 + 0xbe21c);\n    iVar8 = *(int *)(pcVar18 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar12 + 0xc) + iVar14) = iStack_dc;\n      if (uVar4 < uVar3) {\n        ppPVar16 = ppPVar5;\n        if (uVar3 < uVar4 + (int)ppPVar5) {\n          ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n        }\n        if (pcStack_98 == (code *)0x0) {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,2);\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            (**(code **)(pcVar18 + 0xbe598))(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,0);\n          pPg = pPStack_d8;\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            iVar15 = sqlite3PagerWrite(pPg);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar7 + 0x49ec))(pPStack_d8);\n            uVar4 = 0;\n          }\n        }\n        ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);\n        iVar11 = iVar11 + (int)ppPVar16;\n        if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar9 = *(int *)(*(int *)(iVar12 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar9 == 0) {\n          iVar15 = (*(code *)(iVar8 + 0x43f4))(puVar17,iStack_dc,0,&iStack_dc);\n          iVar9 = iStack_dc;\n        }\n        iStack_dc = iVar9;\n        uVar4 = uVar4 - uVar3;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n  }" { (if_statement "if (uVar3 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar20 = uVar4 / uVar3;" (assignment_expression "uVar20 = uVar4 / uVar3" identifier = (binary_expression "uVar4 / uVar3" identifier / identifier)) ;) (expression_statement "iVar2 = *(int *)(*(int *)(iVar12 + 0xc) + uVar20 * 4);" (assignment_expression "iVar2 = *(int *)(*(int *)(iVar12 + 0xc) + uVar20 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(iVar12 + 0xc) + uVar20 * 4)" * (cast_expression "(int *)(*(int *)(iVar12 + 0xc) + uVar20 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar12 + 0xc) + uVar20 * 4)" ( (binary_expression "*(int *)(iVar12 + 0xc) + uVar20 * 4" (pointer_expression "*(int *)(iVar12 + 0xc)" * (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) + (binary_expression "uVar20 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar2 == 0) goto LAB_000d1bac;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000d1bac;" goto statement_identifier ;)) (if_statement "if (uVar3 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar4 = uVar4 % uVar3;" (assignment_expression "uVar4 = uVar4 % uVar3" identifier = (binary_expression "uVar4 % uVar3" identifier % identifier)) ;) (expression_statement "iStack_dc = iVar2;" (assignment_expression "iStack_dc = iVar2" identifier = identifier) ;) (labeled_statement "LAB_000d1bb8:\n    iVar14 = uVar20 << 2;" statement_identifier : (expression_statement "iVar14 = uVar20 << 2;" (assignment_expression "iVar14 = uVar20 << 2" identifier = (binary_expression "uVar20 << 2" identifier << number_literal)) ;)) (expression_statement "iVar2 = *(int *)(pcVar18 + 0xbe21c);" (assignment_expression "iVar2 = *(int *)(pcVar18 + 0xbe21c)" identifier = (pointer_expression "*(int *)(pcVar18 + 0xbe21c)" * (cast_expression "(int *)(pcVar18 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0xbe21c)" ( (binary_expression "pcVar18 + 0xbe21c" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar18 + 0xbe21c);" (assignment_expression "iVar6 = *(int *)(pcVar18 + 0xbe21c)" identifier = (pointer_expression "*(int *)(pcVar18 + 0xbe21c)" * (cast_expression "(int *)(pcVar18 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0xbe21c)" ( (binary_expression "pcVar18 + 0xbe21c" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar18 + 0xbe21c);" (assignment_expression "iVar7 = *(int *)(pcVar18 + 0xbe21c)" identifier = (pointer_expression "*(int *)(pcVar18 + 0xbe21c)" * (cast_expression "(int *)(pcVar18 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0xbe21c)" ( (binary_expression "pcVar18 + 0xbe21c" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(pcVar18 + 0xbe2b8);" (assignment_expression "iVar8 = *(int *)(pcVar18 + 0xbe2b8)" identifier = (pointer_expression "*(int *)(pcVar18 + 0xbe2b8)" * (cast_expression "(int *)(pcVar18 + 0xbe2b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0xbe2b8)" ( (binary_expression "pcVar18 + 0xbe2b8" identifier + number_literal) ))))) ;) (do_statement "do {\n      *(int *)(*(int *)(iVar12 + 0xc) + iVar14) = iStack_dc;\n      if (uVar4 < uVar3) {\n        ppPVar16 = ppPVar5;\n        if (uVar3 < uVar4 + (int)ppPVar5) {\n          ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n        }\n        if (pcStack_98 == (code *)0x0) {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,2);\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            (**(code **)(pcVar18 + 0xbe598))(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,0);\n          pPg = pPStack_d8;\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            iVar15 = sqlite3PagerWrite(pPg);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar7 + 0x49ec))(pPStack_d8);\n            uVar4 = 0;\n          }\n        }\n        ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);\n        iVar11 = iVar11 + (int)ppPVar16;\n        if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar9 = *(int *)(*(int *)(iVar12 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar9 == 0) {\n          iVar15 = (*(code *)(iVar8 + 0x43f4))(puVar17,iStack_dc,0,&iStack_dc);\n          iVar9 = iStack_dc;\n        }\n        iStack_dc = iVar9;\n        uVar4 = uVar4 - uVar3;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);" do (compound_statement "{\n      *(int *)(*(int *)(iVar12 + 0xc) + iVar14) = iStack_dc;\n      if (uVar4 < uVar3) {\n        ppPVar16 = ppPVar5;\n        if (uVar3 < uVar4 + (int)ppPVar5) {\n          ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n        }\n        if (pcStack_98 == (code *)0x0) {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,2);\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            (**(code **)(pcVar18 + 0xbe598))(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,0);\n          pPg = pPStack_d8;\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            iVar15 = sqlite3PagerWrite(pPg);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar7 + 0x49ec))(pPStack_d8);\n            uVar4 = 0;\n          }\n        }\n        ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);\n        iVar11 = iVar11 + (int)ppPVar16;\n        if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar9 = *(int *)(*(int *)(iVar12 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar9 == 0) {\n          iVar15 = (*(code *)(iVar8 + 0x43f4))(puVar17,iStack_dc,0,&iStack_dc);\n          iVar9 = iStack_dc;\n        }\n        iStack_dc = iVar9;\n        uVar4 = uVar4 - uVar3;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    }" { (expression_statement "*(int *)(*(int *)(iVar12 + 0xc) + iVar14) = iStack_dc;" (assignment_expression "*(int *)(*(int *)(iVar12 + 0xc) + iVar14) = iStack_dc" (pointer_expression "*(int *)(*(int *)(iVar12 + 0xc) + iVar14)" * (cast_expression "(int *)(*(int *)(iVar12 + 0xc) + iVar14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar12 + 0xc) + iVar14)" ( (binary_expression "*(int *)(iVar12 + 0xc) + iVar14" (pointer_expression "*(int *)(iVar12 + 0xc)" * (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) + identifier) )))) = identifier) ;) (if_statement "if (uVar4 < uVar3) {\n        ppPVar16 = ppPVar5;\n        if (uVar3 < uVar4 + (int)ppPVar5) {\n          ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n        }\n        if (pcStack_98 == (code *)0x0) {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,2);\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            (**(code **)(pcVar18 + 0xbe598))(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,0);\n          pPg = pPStack_d8;\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            iVar15 = sqlite3PagerWrite(pPg);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar7 + 0x49ec))(pPStack_d8);\n            uVar4 = 0;\n          }\n        }\n        ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);\n        iVar11 = iVar11 + (int)ppPVar16;\n        if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar9 = *(int *)(*(int *)(iVar12 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar9 == 0) {\n          iVar15 = (*(code *)(iVar8 + 0x43f4))(puVar17,iStack_dc,0,&iStack_dc);\n          iVar9 = iStack_dc;\n        }\n        iStack_dc = iVar9;\n        uVar4 = uVar4 - uVar3;\n      }" if (parenthesized_expression "(uVar4 < uVar3)" ( (binary_expression "uVar4 < uVar3" identifier < identifier) )) (compound_statement "{\n        ppPVar16 = ppPVar5;\n        if (uVar3 < uVar4 + (int)ppPVar5) {\n          ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n        }\n        if (pcStack_98 == (code *)0x0) {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,2);\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            (**(code **)(pcVar18 + 0xbe598))(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,0);\n          pPg = pPStack_d8;\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            iVar15 = sqlite3PagerWrite(pPg);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar7 + 0x49ec))(pPStack_d8);\n            uVar4 = 0;\n          }\n        }\n        ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);\n        iVar11 = iVar11 + (int)ppPVar16;\n        if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;\n      }" { (expression_statement "ppPVar16 = ppPVar5;" (assignment_expression "ppPVar16 = ppPVar5" identifier = identifier) ;) (if_statement "if (uVar3 < uVar4 + (int)ppPVar5) {\n          ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n        }" if (parenthesized_expression "(uVar3 < uVar4 + (int)ppPVar5)" ( (binary_expression "uVar3 < uVar4 + (int)ppPVar5" identifier < (binary_expression "uVar4 + (int)ppPVar5" identifier + (cast_expression "(int)ppPVar5" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n          ppPVar16 = (PgHdr **)(uVar3 - uVar4);\n        }" { (expression_statement "ppPVar16 = (PgHdr **)(uVar3 - uVar4);" (assignment_expression "ppPVar16 = (PgHdr **)(uVar3 - uVar4)" identifier = (cast_expression "(PgHdr **)(uVar3 - uVar4)" ( (type_descriptor "PgHdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar3 - uVar4)" ( (binary_expression "uVar3 - uVar4" identifier - identifier) )))) ;) })) (if_statement "if (pcStack_98 == (code *)0x0) {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,2);\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            (**(code **)(pcVar18 + 0xbe598))(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,0);\n          pPg = pPStack_d8;\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            iVar15 = sqlite3PagerWrite(pPg);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar7 + 0x49ec))(pPStack_d8);\n            uVar4 = 0;\n          }\n        }" if (parenthesized_expression "(pcStack_98 == (code *)0x0)" ( (binary_expression "pcStack_98 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,2);\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            (**(code **)(pcVar18 + 0xbe598))(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16);\n            goto LAB_000d1dcc;\n          }\n        }" { (expression_statement "iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,2);" (assignment_expression "iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,2)" identifier = (call_expression "(*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,2)" (parenthesized_expression "(*(code *)(iVar2 + 0x491c))" ( (pointer_expression "*(code *)(iVar2 + 0x491c)" * (cast_expression "(code *)(iVar2 + 0x491c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x491c)" ( (binary_expression "iVar2 + 0x491c" identifier + number_literal) )))) )) (argument_list "(*puVar17,iStack_dc,&pPStack_d8,2)" ( (pointer_expression "*puVar17" * identifier) , identifier , (pointer_expression "&pPStack_d8" & identifier) , number_literal )))) ;) (if_statement "if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            (**(code **)(pcVar18 + 0xbe598))(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16);\n            goto LAB_000d1dcc;\n          }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            (**(code **)(pcVar18 + 0xbe598))(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16);\n            goto LAB_000d1dcc;\n          }" { (expression_statement "pvVar13 = pPStack_d8->pData;" (assignment_expression "pvVar13 = pPStack_d8->pData" identifier = (field_expression "pPStack_d8->pData" identifier -> field_identifier)) ;) (expression_statement "iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);" (assignment_expression "iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13)" identifier = (call_expression "(*(code *)(iVar6 + 0x2220))(pvVar13)" (parenthesized_expression "(*(code *)(iVar6 + 0x2220))" ( (pointer_expression "*(code *)(iVar6 + 0x2220)" * (cast_expression "(code *)(iVar6 + 0x2220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2220)" ( (binary_expression "iVar6 + 0x2220" identifier + number_literal) )))) )) (argument_list "(pvVar13)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar18 + 0xbe598))(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16);" (call_expression "(**(code **)(pcVar18 + 0xbe598))(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16)" (parenthesized_expression "(**(code **)(pcVar18 + 0xbe598))" ( (pointer_expression "**(code **)(pcVar18 + 0xbe598)" * (pointer_expression "*(code **)(pcVar18 + 0xbe598)" * (cast_expression "(code **)(pcVar18 + 0xbe598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0xbe598)" ( (binary_expression "pcVar18 + 0xbe598" identifier + number_literal) ))))) )) (argument_list "(iVar11,(int)pvVar13 + uVar4 + 4,ppPVar16)" ( identifier , (binary_expression "(int)pvVar13 + uVar4 + 4" (binary_expression "(int)pvVar13 + uVar4" (cast_expression "(int)pvVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000d1dcc;" goto statement_identifier ;) })) }) (else_clause "else {\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,0);\n          pPg = pPStack_d8;\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            iVar15 = sqlite3PagerWrite(pPg);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar7 + 0x49ec))(pPStack_d8);\n            uVar4 = 0;\n          }\n        }" else (compound_statement "{\n          iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,0);\n          pPg = pPStack_d8;\n          if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            iVar15 = sqlite3PagerWrite(pPg);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar7 + 0x49ec))(pPStack_d8);\n            uVar4 = 0;\n          }\n        }" { (expression_statement "iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,0);" (assignment_expression "iVar15 = (*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,0)" identifier = (call_expression "(*(code *)(iVar2 + 0x491c))(*puVar17,iStack_dc,&pPStack_d8,0)" (parenthesized_expression "(*(code *)(iVar2 + 0x491c))" ( (pointer_expression "*(code *)(iVar2 + 0x491c)" * (cast_expression "(code *)(iVar2 + 0x491c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x491c)" ( (binary_expression "iVar2 + 0x491c" identifier + number_literal) )))) )) (argument_list "(*puVar17,iStack_dc,&pPStack_d8,0)" ( (pointer_expression "*puVar17" * identifier) , identifier , (pointer_expression "&pPStack_d8" & identifier) , number_literal )))) ;) (expression_statement "pPg = pPStack_d8;" (assignment_expression "pPg = pPStack_d8" identifier = identifier) ;) (if_statement "if (iVar15 == 0) {\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            iVar15 = sqlite3PagerWrite(pPg);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar7 + 0x49ec))(pPStack_d8);\n            uVar4 = 0;\n          }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n            pvVar13 = pPStack_d8->pData;\n            iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);\n            iVar15 = sqlite3PagerWrite(pPg);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar7 + 0x49ec))(pPStack_d8);\n            uVar4 = 0;\n          }" { (expression_statement "pvVar13 = pPStack_d8->pData;" (assignment_expression "pvVar13 = pPStack_d8->pData" identifier = (field_expression "pPStack_d8->pData" identifier -> field_identifier)) ;) (expression_statement "iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13);" (assignment_expression "iStack_dc = (*(code *)(iVar6 + 0x2220))(pvVar13)" identifier = (call_expression "(*(code *)(iVar6 + 0x2220))(pvVar13)" (parenthesized_expression "(*(code *)(iVar6 + 0x2220))" ( (pointer_expression "*(code *)(iVar6 + 0x2220)" * (cast_expression "(code *)(iVar6 + 0x2220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2220)" ( (binary_expression "iVar6 + 0x2220" identifier + number_literal) )))) )) (argument_list "(pvVar13)" ( identifier )))) ;) (expression_statement "iVar15 = sqlite3PagerWrite(pPg);" (assignment_expression "iVar15 = sqlite3PagerWrite(pPg)" identifier = (call_expression "sqlite3PagerWrite(pPg)" identifier (argument_list "(pPg)" ( identifier )))) ;) (if_statement "if (iVar15 == 0) {\n              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);\n            }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n              (**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);\n            }" { (expression_statement "(**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16);" (call_expression "(**(code **)(pcVar18 + 0xbe598))((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16)" (parenthesized_expression "(**(code **)(pcVar18 + 0xbe598))" ( (pointer_expression "**(code **)(pcVar18 + 0xbe598)" * (pointer_expression "*(code **)(pcVar18 + 0xbe598)" * (cast_expression "(code **)(pcVar18 + 0xbe598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0xbe598)" ( (binary_expression "pcVar18 + 0xbe598" identifier + number_literal) ))))) )) (argument_list "((int)pvVar13 + uVar4 + 4,iVar11,ppPVar16)" ( (binary_expression "(int)pvVar13 + uVar4 + 4" (binary_expression "(int)pvVar13 + uVar4" (cast_expression "(int)pvVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) , identifier , identifier ))) ;) })) (labeled_statement "LAB_000d1dcc:\n            (*(code *)(iVar7 + 0x49ec))(pPStack_d8);" statement_identifier : (expression_statement "(*(code *)(iVar7 + 0x49ec))(pPStack_d8);" (call_expression "(*(code *)(iVar7 + 0x49ec))(pPStack_d8)" (parenthesized_expression "(*(code *)(iVar7 + 0x49ec))" ( (pointer_expression "*(code *)(iVar7 + 0x49ec)" * (cast_expression "(code *)(iVar7 + 0x49ec)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x49ec)" ( (binary_expression "iVar7 + 0x49ec" identifier + number_literal) )))) )) (argument_list "(pPStack_d8)" ( identifier ))) ;)) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) })) }))) (expression_statement "ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16);" (assignment_expression "ppPVar5 = (PgHdr **)((int)ppPVar5 - (int)ppPVar16)" identifier = (cast_expression "(PgHdr **)((int)ppPVar5 - (int)ppPVar16)" ( (type_descriptor "PgHdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppPVar5 - (int)ppPVar16)" ( (binary_expression "(int)ppPVar5 - (int)ppPVar16" (cast_expression "(int)ppPVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppPVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar11 = iVar11 + (int)ppPVar16;" (assignment_expression "iVar11 = iVar11 + (int)ppPVar16" identifier = (binary_expression "iVar11 + (int)ppPVar16" identifier + (cast_expression "(int)ppPVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;" if (parenthesized_expression "(ppPVar5 == (PgHdr **)0x0)" ( (binary_expression "ppPVar5 == (PgHdr **)0x0" identifier == (cast_expression "(PgHdr **)0x0" ( (type_descriptor "PgHdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;)) }) (else_clause "else {\n        iVar9 = *(int *)(*(int *)(iVar12 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar9 == 0) {\n          iVar15 = (*(code *)(iVar8 + 0x43f4))(puVar17,iStack_dc,0,&iStack_dc);\n          iVar9 = iStack_dc;\n        }\n        iStack_dc = iVar9;\n        uVar4 = uVar4 - uVar3;\n      }" else (compound_statement "{\n        iVar9 = *(int *)(*(int *)(iVar12 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar9 == 0) {\n          iVar15 = (*(code *)(iVar8 + 0x43f4))(puVar17,iStack_dc,0,&iStack_dc);\n          iVar9 = iStack_dc;\n        }\n        iStack_dc = iVar9;\n        uVar4 = uVar4 - uVar3;\n      }" { (expression_statement "iVar9 = *(int *)(*(int *)(iVar12 + 0xc) + iVar14 + 4);" (assignment_expression "iVar9 = *(int *)(*(int *)(iVar12 + 0xc) + iVar14 + 4)" identifier = (pointer_expression "*(int *)(*(int *)(iVar12 + 0xc) + iVar14 + 4)" * (cast_expression "(int *)(*(int *)(iVar12 + 0xc) + iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar12 + 0xc) + iVar14 + 4)" ( (binary_expression "*(int *)(iVar12 + 0xc) + iVar14 + 4" (binary_expression "*(int *)(iVar12 + 0xc) + iVar14" (pointer_expression "*(int *)(iVar12 + 0xc)" * (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) + identifier) + number_literal) ))))) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (if_statement "if (iVar9 == 0) {\n          iVar15 = (*(code *)(iVar8 + 0x43f4))(puVar17,iStack_dc,0,&iStack_dc);\n          iVar9 = iStack_dc;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar15 = (*(code *)(iVar8 + 0x43f4))(puVar17,iStack_dc,0,&iStack_dc);\n          iVar9 = iStack_dc;\n        }" { (expression_statement "iVar15 = (*(code *)(iVar8 + 0x43f4))(puVar17,iStack_dc,0,&iStack_dc);" (assignment_expression "iVar15 = (*(code *)(iVar8 + 0x43f4))(puVar17,iStack_dc,0,&iStack_dc)" identifier = (call_expression "(*(code *)(iVar8 + 0x43f4))(puVar17,iStack_dc,0,&iStack_dc)" (parenthesized_expression "(*(code *)(iVar8 + 0x43f4))" ( (pointer_expression "*(code *)(iVar8 + 0x43f4)" * (cast_expression "(code *)(iVar8 + 0x43f4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x43f4)" ( (binary_expression "iVar8 + 0x43f4" identifier + number_literal) )))) )) (argument_list "(puVar17,iStack_dc,0,&iStack_dc)" ( identifier , identifier , number_literal , (pointer_expression "&iStack_dc" & identifier) )))) ;) (expression_statement "iVar9 = iStack_dc;" (assignment_expression "iVar9 = iStack_dc" identifier = identifier) ;) })) (expression_statement "iStack_dc = iVar9;" (assignment_expression "iStack_dc = iVar9" identifier = identifier) ;) (expression_statement "uVar4 = uVar4 - uVar3;" (assignment_expression "uVar4 = uVar4 - uVar3" identifier = (binary_expression "uVar4 - uVar3" identifier - identifier)) ;) }))) (if_statement "if (iVar15 != 0) goto LAB_000d1a60;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;)) (expression_statement "iVar14 = iVar14 + 4;" (assignment_expression "iVar14 = iVar14 + 4" identifier = (binary_expression "iVar14 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_dc != 0)" ( (binary_expression "iStack_dc != 0" identifier != number_literal) )) ;) (if_statement "if (ppPVar5 == (PgHdr **)0x0) goto LAB_000d1a60;" if (parenthesized_expression "(ppPVar5 == (PgHdr **)0x0)" ( (binary_expression "ppPVar5 == (PgHdr **)0x0" identifier == (cast_expression "(PgHdr **)0x0" ( (type_descriptor "PgHdr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;)) }))) (expression_statement "iVar15 = (*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))(0x1094f);" (assignment_expression "iVar15 = (*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))(0x1094f)" identifier = (call_expression "(*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))(0x1094f)" (parenthesized_expression "(*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28))" ( (pointer_expression "*(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28)" * (cast_expression "(code *)(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar18 + 0xbe2b8) + 0x3b28)" ( (binary_expression "*(int *)(pcVar18 + 0xbe2b8) + 0x3b28" (pointer_expression "*(int *)(pcVar18 + 0xbe2b8)" * (cast_expression "(int *)(pcVar18 + 0xbe2b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0xbe2b8)" ( (binary_expression "pcVar18 + 0xbe2b8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(0x1094f)" ( number_literal )))) ;) (labeled_statement "LAB_000d1a60:\n  if (pBStack_d4 != (BtCursor *)**(int **)(pcVar18 + 0xbe590)) {\n    pcVar18 = *(code **)(pcVar18 + 0xbe564);\n    pCur = pBStack_d4;\n    (*pcVar18)();\n    if (pCur->curIntKey == '\0') {\n      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();\n      uVar3 = (pCur->info).nPayload;\n      *(undefined4 *)&pCur->nKey = 0;\n      *(uint *)((int)&pCur->nKey + 4) = uVar3;\n      pBuf = (uchar *)(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x1068))(uVar3 + 0x11 < uVar3);\n      if (pBuf == (uchar *)0x0) {\n        iVar2 = 7;\n      }\n      else {\n        iVar2 = accessPayload(pCur,0,(u32)pCur->nKey,pBuf,0);\n        if (iVar2 == 0) {\n          (**(code **)(pcVar18 + 0xbdfe4))(pBuf + (int)pCur->nKey,0,0x11);\n          pCur->pKey = pBuf;\n        }\n        else {\n          (**(code **)(pcVar18 + 0xbdb5c))(pBuf);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();\n      uVar10 = *(undefined4 *)&(pCur->info).nKey;\n      *(int *)((int)&pCur->nKey + 4) = (int)(pCur->info).nKey;\n      *(undefined4 *)&pCur->nKey = uVar10;\n      iVar2 = 0;\n    }\n    return iVar2;\n  }" statement_identifier : (if_statement "if (pBStack_d4 != (BtCursor *)**(int **)(pcVar18 + 0xbe590)) {\n    pcVar18 = *(code **)(pcVar18 + 0xbe564);\n    pCur = pBStack_d4;\n    (*pcVar18)();\n    if (pCur->curIntKey == '\0') {\n      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();\n      uVar3 = (pCur->info).nPayload;\n      *(undefined4 *)&pCur->nKey = 0;\n      *(uint *)((int)&pCur->nKey + 4) = uVar3;\n      pBuf = (uchar *)(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x1068))(uVar3 + 0x11 < uVar3);\n      if (pBuf == (uchar *)0x0) {\n        iVar2 = 7;\n      }\n      else {\n        iVar2 = accessPayload(pCur,0,(u32)pCur->nKey,pBuf,0);\n        if (iVar2 == 0) {\n          (**(code **)(pcVar18 + 0xbdfe4))(pBuf + (int)pCur->nKey,0,0x11);\n          pCur->pKey = pBuf;\n        }\n        else {\n          (**(code **)(pcVar18 + 0xbdb5c))(pBuf);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();\n      uVar10 = *(undefined4 *)&(pCur->info).nKey;\n      *(int *)((int)&pCur->nKey + 4) = (int)(pCur->info).nKey;\n      *(undefined4 *)&pCur->nKey = uVar10;\n      iVar2 = 0;\n    }\n    return iVar2;\n  }" if (parenthesized_expression "(pBStack_d4 != (BtCursor *)**(int **)(pcVar18 + 0xbe590))" ( (binary_expression "pBStack_d4 != (BtCursor *)**(int **)(pcVar18 + 0xbe590)" identifier != (cast_expression "(BtCursor *)**(int **)(pcVar18 + 0xbe590)" ( (type_descriptor "BtCursor *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar18 + 0xbe590)" * (pointer_expression "*(int **)(pcVar18 + 0xbe590)" * (cast_expression "(int **)(pcVar18 + 0xbe590)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0xbe590)" ( (binary_expression "pcVar18 + 0xbe590" identifier + number_literal) ))))))) )) (compound_statement "{\n    pcVar18 = *(code **)(pcVar18 + 0xbe564);\n    pCur = pBStack_d4;\n    (*pcVar18)();\n    if (pCur->curIntKey == '\0') {\n      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();\n      uVar3 = (pCur->info).nPayload;\n      *(undefined4 *)&pCur->nKey = 0;\n      *(uint *)((int)&pCur->nKey + 4) = uVar3;\n      pBuf = (uchar *)(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x1068))(uVar3 + 0x11 < uVar3);\n      if (pBuf == (uchar *)0x0) {\n        iVar2 = 7;\n      }\n      else {\n        iVar2 = accessPayload(pCur,0,(u32)pCur->nKey,pBuf,0);\n        if (iVar2 == 0) {\n          (**(code **)(pcVar18 + 0xbdfe4))(pBuf + (int)pCur->nKey,0,0x11);\n          pCur->pKey = pBuf;\n        }\n        else {\n          (**(code **)(pcVar18 + 0xbdb5c))(pBuf);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();\n      uVar10 = *(undefined4 *)&(pCur->info).nKey;\n      *(int *)((int)&pCur->nKey + 4) = (int)(pCur->info).nKey;\n      *(undefined4 *)&pCur->nKey = uVar10;\n      iVar2 = 0;\n    }\n    return iVar2;\n  }" { (expression_statement "pcVar18 = *(code **)(pcVar18 + 0xbe564);" (assignment_expression "pcVar18 = *(code **)(pcVar18 + 0xbe564)" identifier = (pointer_expression "*(code **)(pcVar18 + 0xbe564)" * (cast_expression "(code **)(pcVar18 + 0xbe564)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0xbe564)" ( (binary_expression "pcVar18 + 0xbe564" identifier + number_literal) ))))) ;) (expression_statement "pCur = pBStack_d4;" (assignment_expression "pCur = pBStack_d4" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (pCur->curIntKey == '\0') {\n      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();\n      uVar3 = (pCur->info).nPayload;\n      *(undefined4 *)&pCur->nKey = 0;\n      *(uint *)((int)&pCur->nKey + 4) = uVar3;\n      pBuf = (uchar *)(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x1068))(uVar3 + 0x11 < uVar3);\n      if (pBuf == (uchar *)0x0) {\n        iVar2 = 7;\n      }\n      else {\n        iVar2 = accessPayload(pCur,0,(u32)pCur->nKey,pBuf,0);\n        if (iVar2 == 0) {\n          (**(code **)(pcVar18 + 0xbdfe4))(pBuf + (int)pCur->nKey,0,0x11);\n          pCur->pKey = pBuf;\n        }\n        else {\n          (**(code **)(pcVar18 + 0xbdb5c))(pBuf);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();\n      uVar10 = *(undefined4 *)&(pCur->info).nKey;\n      *(int *)((int)&pCur->nKey + 4) = (int)(pCur->info).nKey;\n      *(undefined4 *)&pCur->nKey = uVar10;\n      iVar2 = 0;\n    }" if (parenthesized_expression "(pCur->curIntKey == '\0')" ( (binary_expression "pCur->curIntKey == '\0'" (field_expression "pCur->curIntKey" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();\n      uVar3 = (pCur->info).nPayload;\n      *(undefined4 *)&pCur->nKey = 0;\n      *(uint *)((int)&pCur->nKey + 4) = uVar3;\n      pBuf = (uchar *)(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x1068))(uVar3 + 0x11 < uVar3);\n      if (pBuf == (uchar *)0x0) {\n        iVar2 = 7;\n      }\n      else {\n        iVar2 = accessPayload(pCur,0,(u32)pCur->nKey,pBuf,0);\n        if (iVar2 == 0) {\n          (**(code **)(pcVar18 + 0xbdfe4))(pBuf + (int)pCur->nKey,0,0x11);\n          pCur->pKey = pBuf;\n        }\n        else {\n          (**(code **)(pcVar18 + 0xbdb5c))(pBuf);\n        }\n      }\n    }" { (expression_statement "(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();" (call_expression "(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))()" (parenthesized_expression "(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))" ( (pointer_expression "*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00)" * (cast_expression "(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00)" ( (binary_expression "*(int *)(pcVar18 + 0xbdd3c) + 0x5c00" (pointer_expression "*(int *)(pcVar18 + 0xbdd3c)" * (cast_expression "(int *)(pcVar18 + 0xbdd3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0xbdd3c)" ( (binary_expression "pcVar18 + 0xbdd3c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar3 = (pCur->info).nPayload;" (assignment_expression "uVar3 = (pCur->info).nPayload" identifier = (field_expression "(pCur->info).nPayload" (parenthesized_expression "(pCur->info)" ( (field_expression "pCur->info" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)&pCur->nKey = 0;" (assignment_expression "*(undefined4 *)&pCur->nKey = 0" (pointer_expression "*(undefined4 *)&pCur->nKey" * (cast_expression "(undefined4 *)&pCur->nKey" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pCur->nKey" & (field_expression "pCur->nKey" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(uint *)((int)&pCur->nKey + 4) = uVar3;" (assignment_expression "*(uint *)((int)&pCur->nKey + 4) = uVar3" (pointer_expression "*(uint *)((int)&pCur->nKey + 4)" * (cast_expression "(uint *)((int)&pCur->nKey + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pCur->nKey + 4)" ( (binary_expression "(int)&pCur->nKey + 4" (cast_expression "(int)&pCur->nKey" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pCur->nKey" & (field_expression "pCur->nKey" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pBuf = (uchar *)(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x1068))(uVar3 + 0x11 < uVar3);" (assignment_expression "pBuf = (uchar *)(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x1068))(uVar3 + 0x11 < uVar3)" identifier = (cast_expression "(uchar *)(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x1068))(uVar3 + 0x11 < uVar3)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x1068))(uVar3 + 0x11 < uVar3)" (parenthesized_expression "(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x1068))" ( (pointer_expression "*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x1068)" * (cast_expression "(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x1068)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar18 + 0xbdd3c) + 0x1068)" ( (binary_expression "*(int *)(pcVar18 + 0xbdd3c) + 0x1068" (pointer_expression "*(int *)(pcVar18 + 0xbdd3c)" * (cast_expression "(int *)(pcVar18 + 0xbdd3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0xbdd3c)" ( (binary_expression "pcVar18 + 0xbdd3c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar3 + 0x11 < uVar3)" ( (binary_expression "uVar3 + 0x11 < uVar3" (binary_expression "uVar3 + 0x11" identifier + number_literal) < identifier) ))))) ;) (if_statement "if (pBuf == (uchar *)0x0) {\n        iVar2 = 7;\n      }\n      else {\n        iVar2 = accessPayload(pCur,0,(u32)pCur->nKey,pBuf,0);\n        if (iVar2 == 0) {\n          (**(code **)(pcVar18 + 0xbdfe4))(pBuf + (int)pCur->nKey,0,0x11);\n          pCur->pKey = pBuf;\n        }\n        else {\n          (**(code **)(pcVar18 + 0xbdb5c))(pBuf);\n        }\n      }" if (parenthesized_expression "(pBuf == (uchar *)0x0)" ( (binary_expression "pBuf == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar2 = 7;\n      }" { (expression_statement "iVar2 = 7;" (assignment_expression "iVar2 = 7" identifier = number_literal) ;) }) (else_clause "else {\n        iVar2 = accessPayload(pCur,0,(u32)pCur->nKey,pBuf,0);\n        if (iVar2 == 0) {\n          (**(code **)(pcVar18 + 0xbdfe4))(pBuf + (int)pCur->nKey,0,0x11);\n          pCur->pKey = pBuf;\n        }\n        else {\n          (**(code **)(pcVar18 + 0xbdb5c))(pBuf);\n        }\n      }" else (compound_statement "{\n        iVar2 = accessPayload(pCur,0,(u32)pCur->nKey,pBuf,0);\n        if (iVar2 == 0) {\n          (**(code **)(pcVar18 + 0xbdfe4))(pBuf + (int)pCur->nKey,0,0x11);\n          pCur->pKey = pBuf;\n        }\n        else {\n          (**(code **)(pcVar18 + 0xbdb5c))(pBuf);\n        }\n      }" { (expression_statement "iVar2 = accessPayload(pCur,0,(u32)pCur->nKey,pBuf,0);" (assignment_expression "iVar2 = accessPayload(pCur,0,(u32)pCur->nKey,pBuf,0)" identifier = (call_expression "accessPayload(pCur,0,(u32)pCur->nKey,pBuf,0)" identifier (argument_list "(pCur,0,(u32)pCur->nKey,pBuf,0)" ( identifier , number_literal , (cast_expression "(u32)pCur->nKey" ( (type_descriptor "u32" type_identifier) ) (field_expression "pCur->nKey" identifier -> field_identifier)) , identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n          (**(code **)(pcVar18 + 0xbdfe4))(pBuf + (int)pCur->nKey,0,0x11);\n          pCur->pKey = pBuf;\n        }\n        else {\n          (**(code **)(pcVar18 + 0xbdb5c))(pBuf);\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          (**(code **)(pcVar18 + 0xbdfe4))(pBuf + (int)pCur->nKey,0,0x11);\n          pCur->pKey = pBuf;\n        }" { (expression_statement "(**(code **)(pcVar18 + 0xbdfe4))(pBuf + (int)pCur->nKey,0,0x11);" (call_expression "(**(code **)(pcVar18 + 0xbdfe4))(pBuf + (int)pCur->nKey,0,0x11)" (parenthesized_expression "(**(code **)(pcVar18 + 0xbdfe4))" ( (pointer_expression "**(code **)(pcVar18 + 0xbdfe4)" * (pointer_expression "*(code **)(pcVar18 + 0xbdfe4)" * (cast_expression "(code **)(pcVar18 + 0xbdfe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0xbdfe4)" ( (binary_expression "pcVar18 + 0xbdfe4" identifier + number_literal) ))))) )) (argument_list "(pBuf + (int)pCur->nKey,0,0x11)" ( (binary_expression "pBuf + (int)pCur->nKey" identifier + (cast_expression "(int)pCur->nKey" ( (type_descriptor "int" primitive_type) ) (field_expression "pCur->nKey" identifier -> field_identifier))) , number_literal , number_literal ))) ;) (expression_statement "pCur->pKey = pBuf;" (assignment_expression "pCur->pKey = pBuf" (field_expression "pCur->pKey" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n          (**(code **)(pcVar18 + 0xbdb5c))(pBuf);\n        }" else (compound_statement "{\n          (**(code **)(pcVar18 + 0xbdb5c))(pBuf);\n        }" { (expression_statement "(**(code **)(pcVar18 + 0xbdb5c))(pBuf);" (call_expression "(**(code **)(pcVar18 + 0xbdb5c))(pBuf)" (parenthesized_expression "(**(code **)(pcVar18 + 0xbdb5c))" ( (pointer_expression "**(code **)(pcVar18 + 0xbdb5c)" * (pointer_expression "*(code **)(pcVar18 + 0xbdb5c)" * (cast_expression "(code **)(pcVar18 + 0xbdb5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0xbdb5c)" ( (binary_expression "pcVar18 + 0xbdb5c" identifier + number_literal) ))))) )) (argument_list "(pBuf)" ( identifier ))) ;) }))) }))) }) (else_clause "else {\n      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();\n      uVar10 = *(undefined4 *)&(pCur->info).nKey;\n      *(int *)((int)&pCur->nKey + 4) = (int)(pCur->info).nKey;\n      *(undefined4 *)&pCur->nKey = uVar10;\n      iVar2 = 0;\n    }" else (compound_statement "{\n      (*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();\n      uVar10 = *(undefined4 *)&(pCur->info).nKey;\n      *(int *)((int)&pCur->nKey + 4) = (int)(pCur->info).nKey;\n      *(undefined4 *)&pCur->nKey = uVar10;\n      iVar2 = 0;\n    }" { (expression_statement "(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))();" (call_expression "(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))()" (parenthesized_expression "(*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00))" ( (pointer_expression "*(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00)" * (cast_expression "(code *)(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar18 + 0xbdd3c) + 0x5c00)" ( (binary_expression "*(int *)(pcVar18 + 0xbdd3c) + 0x5c00" (pointer_expression "*(int *)(pcVar18 + 0xbdd3c)" * (cast_expression "(int *)(pcVar18 + 0xbdd3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0xbdd3c)" ( (binary_expression "pcVar18 + 0xbdd3c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar10 = *(undefined4 *)&(pCur->info).nKey;" (assignment_expression "uVar10 = *(undefined4 *)&(pCur->info).nKey" identifier = (pointer_expression "*(undefined4 *)&(pCur->info).nKey" * (cast_expression "(undefined4 *)&(pCur->info).nKey" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pCur->info).nKey" & (field_expression "(pCur->info).nKey" (parenthesized_expression "(pCur->info)" ( (field_expression "pCur->info" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "*(int *)((int)&pCur->nKey + 4) = (int)(pCur->info).nKey;" (assignment_expression "*(int *)((int)&pCur->nKey + 4) = (int)(pCur->info).nKey" (pointer_expression "*(int *)((int)&pCur->nKey + 4)" * (cast_expression "(int *)((int)&pCur->nKey + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pCur->nKey + 4)" ( (binary_expression "(int)&pCur->nKey + 4" (cast_expression "(int)&pCur->nKey" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pCur->nKey" & (field_expression "pCur->nKey" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)(pCur->info).nKey" ( (type_descriptor "int" primitive_type) ) (field_expression "(pCur->info).nKey" (parenthesized_expression "(pCur->info)" ( (field_expression "pCur->info" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*(undefined4 *)&pCur->nKey = uVar10;" (assignment_expression "*(undefined4 *)&pCur->nKey = uVar10" (pointer_expression "*(undefined4 *)&pCur->nKey" * (cast_expression "(undefined4 *)&pCur->nKey" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pCur->nKey" & (field_expression "pCur->nKey" identifier -> field_identifier)))) = identifier) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }))) (return_statement "return iVar2;" return identifier ;) }))) (return_statement "return iVar15;" return identifier ;) })))
(translation_unit "int FUN_000d1340(int *param_1,int *param_2,int *param_3,int *param_4)\n\n{\n  ushort uVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  int *unaff_s1;\n  code *unaff_s2;\n  code *pcVar13;\n  int iVar14;\n  int iVar15;\n  int *unaff_s4;\n  int *piVar16;\n  undefined *unaff_s5;\n  int *piVar17;\n  uint uVar18;\n  code *unaff_s6;\n  undefined4 *puVar19;\n  code *unaff_s7;\n  undefined *puVar20;\n  uint unaff_s8;\n  undefined4 uVar21;\n  code *pcVar22;\n  uint uVar23;\n  int iStack_dc;\n  int iStack_d8;\n  int iStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  code *pcStack_c8;\n  int *piStack_c4;\n  int *piStack_c0;\n  undefined *puStack_bc;\n  code *pcStack_b8;\n  code *pcStack_b4;\n  uint uStack_b0;\n  code *pcStack_ac;\n  undefined *local_98;\n  int local_90;\n  int local_8c;\n  int local_88;\n  int *local_84;\n  code *local_80;\n  int *local_7c;\n  int *local_78;\n  undefined4 local_74;\n  undefined4 local_60;\n  int local_50;\n  int local_4c;\n  int aiStack_48 [7];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  if ((int *)param_1[0xb] < param_2) {\n    local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);\n    piVar11 = param_3;\n    piVar12 = param_4;\n  }\n  else {\n    local_60 = 0;\n    piVar12 = (int *)0x0;\n    piVar11 = &local_50;\n    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();\n    local_88 = local_4c;\n    unaff_s4 = param_4;\n    if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_0018fecc) {\n    return local_88;\n  }\n  uVar21 = 0xd1668;\n  iVar4 = local_2c;\n  puVar20 = PTR___stack_chk_fail_0018fea0;\n  (*(code *)PTR___stack_chk_fail_0018fea0)();\n  local_98 = puVar20 + 0xc62b8;\n  local_8c = **(int **)(puVar20 + 0xbe864);\n  local_90 = 0;\n  piVar16 = piVar11;\n  local_84 = unaff_s1;\n  local_80 = unaff_s2;\n  local_7c = param_1;\n  local_78 = unaff_s4;\n  local_74 = uVar21;\n  if (*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0) {\n    piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);\nLAB_000d187c:\n    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));\n    piVar3 = piVar11;\n    uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);\n    *(undefined4 *)(iVar4 + 8) = uVar21;\n    iVar4 = 1;\n  }\n  else {\n    if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }\n    pcVar13 = *(code **)(puVar20 + 0xbe318);\n    param_1 = (int *)(*pcVar13)(*piVar11);\n    piVar3 = (int *)(*pcVar13)(piVar11[1]);\n    unaff_s2 = pcVar13;\n    if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }\n    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);\n    if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(iVar4 + 0xc);\n    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);\n    if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);\n    if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);\n    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();\n    piVar12 = (int *)0x0;\n    if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    piVar16 = &local_90;\n    piVar3 = param_1;\n    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);\n    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }\n    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);\n  }\n  if (local_8c == **(int **)(local_98 + -0x7a54)) {\n    return iVar4;\n  }\n  pcVar13 = *(code **)(local_98 + -0x7a80);\n  pcVar22 = FUN_000d193c;\n  iVar10 = local_8c;\n  (*pcVar13)();\n  iStack_d4 = **(int **)(pcVar13 + 0xbe590);\n  iVar15 = *(int *)(iVar10 + 0x74);\n  puVar19 = *(undefined4 **)(iVar10 + 0x14);\n  iStack_d0 = iVar4;\n  piStack_cc = piVar11;\n  pcStack_c8 = unaff_s2;\n  piStack_c4 = param_1;\n  piStack_c0 = unaff_s4;\n  puStack_bc = unaff_s5;\n  pcStack_b8 = unaff_s6;\n  pcStack_b4 = unaff_s7;\n  uStack_b0 = unaff_s8;\n  pcStack_ac = pcVar22;\n  (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))();\n  iVar4 = *(int *)(iVar10 + 0x28);\n  piVar11 = (int *)(uint)*(ushort *)(iVar10 + 0x30);\n  if ((uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38))) {\n    iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }\n  if (piVar3 < piVar11) {\n    piVar17 = piVar16;\n    if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }\n    if (local_98 == (undefined *)0x0) {\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }\n    else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }\n    piVar12 = (int *)((int)piVar12 + (int)piVar17);\n    piVar16 = (int *)((int)piVar16 - (int)piVar17);\n    uVar2 = 0;\n  }\n  else {\n    uVar2 = (int)piVar3 - (int)piVar11;\n  }\n  iVar15 = 0;\n  if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  iVar15 = puVar19[9];\n  uVar1 = *(ushort *)(iVar10 + 0x30);\n  iStack_dc = (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1);\n  uVar18 = iVar15 - 4;\n  if ((*(byte *)(iVar10 + 1) & 4) == 0) {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;\n    if ((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))) {\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }\n    (**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);\n    *(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;\nLAB_000d1bac:\n    uVar23 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }\n  else {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = uVar2 / uVar18;\n    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);\n    if (iVar4 == 0) goto LAB_000d1bac;\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar2 = uVar2 % uVar18;\n    iStack_dc = iVar4;\nLAB_000d1bb8:\n    iVar14 = uVar23 << 2;\n    iVar4 = *(int *)(pcVar13 + 0xbe21c);\n    iVar5 = *(int *)(pcVar13 + 0xbe21c);\n    iVar6 = *(int *)(pcVar13 + 0xbe21c);\n    iVar7 = *(int *)(pcVar13 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  }\n  iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f);\nLAB_000d1a60:\n  if (iStack_d4 != **(int **)(pcVar13 + 0xbe590)) {\n    pcVar13 = *(code **)(pcVar13 + 0xbe564);\n    iVar4 = iStack_d4;\n    (*pcVar13)();\n    if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }\n    return iVar15;\n  }\n  return iVar15;\n}\n\n" (function_definition "int FUN_000d1340(int *param_1,int *param_2,int *param_3,int *param_4)\n\n{\n  ushort uVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  int *unaff_s1;\n  code *unaff_s2;\n  code *pcVar13;\n  int iVar14;\n  int iVar15;\n  int *unaff_s4;\n  int *piVar16;\n  undefined *unaff_s5;\n  int *piVar17;\n  uint uVar18;\n  code *unaff_s6;\n  undefined4 *puVar19;\n  code *unaff_s7;\n  undefined *puVar20;\n  uint unaff_s8;\n  undefined4 uVar21;\n  code *pcVar22;\n  uint uVar23;\n  int iStack_dc;\n  int iStack_d8;\n  int iStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  code *pcStack_c8;\n  int *piStack_c4;\n  int *piStack_c0;\n  undefined *puStack_bc;\n  code *pcStack_b8;\n  code *pcStack_b4;\n  uint uStack_b0;\n  code *pcStack_ac;\n  undefined *local_98;\n  int local_90;\n  int local_8c;\n  int local_88;\n  int *local_84;\n  code *local_80;\n  int *local_7c;\n  int *local_78;\n  undefined4 local_74;\n  undefined4 local_60;\n  int local_50;\n  int local_4c;\n  int aiStack_48 [7];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  if ((int *)param_1[0xb] < param_2) {\n    local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);\n    piVar11 = param_3;\n    piVar12 = param_4;\n  }\n  else {\n    local_60 = 0;\n    piVar12 = (int *)0x0;\n    piVar11 = &local_50;\n    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();\n    local_88 = local_4c;\n    unaff_s4 = param_4;\n    if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_0018fecc) {\n    return local_88;\n  }\n  uVar21 = 0xd1668;\n  iVar4 = local_2c;\n  puVar20 = PTR___stack_chk_fail_0018fea0;\n  (*(code *)PTR___stack_chk_fail_0018fea0)();\n  local_98 = puVar20 + 0xc62b8;\n  local_8c = **(int **)(puVar20 + 0xbe864);\n  local_90 = 0;\n  piVar16 = piVar11;\n  local_84 = unaff_s1;\n  local_80 = unaff_s2;\n  local_7c = param_1;\n  local_78 = unaff_s4;\n  local_74 = uVar21;\n  if (*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0) {\n    piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);\nLAB_000d187c:\n    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));\n    piVar3 = piVar11;\n    uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);\n    *(undefined4 *)(iVar4 + 8) = uVar21;\n    iVar4 = 1;\n  }\n  else {\n    if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }\n    pcVar13 = *(code **)(puVar20 + 0xbe318);\n    param_1 = (int *)(*pcVar13)(*piVar11);\n    piVar3 = (int *)(*pcVar13)(piVar11[1]);\n    unaff_s2 = pcVar13;\n    if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }\n    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);\n    if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(iVar4 + 0xc);\n    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);\n    if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);\n    if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);\n    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();\n    piVar12 = (int *)0x0;\n    if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    piVar16 = &local_90;\n    piVar3 = param_1;\n    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);\n    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }\n    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);\n  }\n  if (local_8c == **(int **)(local_98 + -0x7a54)) {\n    return iVar4;\n  }\n  pcVar13 = *(code **)(local_98 + -0x7a80);\n  pcVar22 = FUN_000d193c;\n  iVar10 = local_8c;\n  (*pcVar13)();\n  iStack_d4 = **(int **)(pcVar13 + 0xbe590);\n  iVar15 = *(int *)(iVar10 + 0x74);\n  puVar19 = *(undefined4 **)(iVar10 + 0x14);\n  iStack_d0 = iVar4;\n  piStack_cc = piVar11;\n  pcStack_c8 = unaff_s2;\n  piStack_c4 = param_1;\n  piStack_c0 = unaff_s4;\n  puStack_bc = unaff_s5;\n  pcStack_b8 = unaff_s6;\n  pcStack_b4 = unaff_s7;\n  uStack_b0 = unaff_s8;\n  pcStack_ac = pcVar22;\n  (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))();\n  iVar4 = *(int *)(iVar10 + 0x28);\n  piVar11 = (int *)(uint)*(ushort *)(iVar10 + 0x30);\n  if ((uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38))) {\n    iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }\n  if (piVar3 < piVar11) {\n    piVar17 = piVar16;\n    if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }\n    if (local_98 == (undefined *)0x0) {\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }\n    else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }\n    piVar12 = (int *)((int)piVar12 + (int)piVar17);\n    piVar16 = (int *)((int)piVar16 - (int)piVar17);\n    uVar2 = 0;\n  }\n  else {\n    uVar2 = (int)piVar3 - (int)piVar11;\n  }\n  iVar15 = 0;\n  if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  iVar15 = puVar19[9];\n  uVar1 = *(ushort *)(iVar10 + 0x30);\n  iStack_dc = (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1);\n  uVar18 = iVar15 - 4;\n  if ((*(byte *)(iVar10 + 1) & 4) == 0) {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;\n    if ((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))) {\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }\n    (**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);\n    *(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;\nLAB_000d1bac:\n    uVar23 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }\n  else {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = uVar2 / uVar18;\n    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);\n    if (iVar4 == 0) goto LAB_000d1bac;\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar2 = uVar2 % uVar18;\n    iStack_dc = iVar4;\nLAB_000d1bb8:\n    iVar14 = uVar23 << 2;\n    iVar4 = *(int *)(pcVar13 + 0xbe21c);\n    iVar5 = *(int *)(pcVar13 + 0xbe21c);\n    iVar6 = *(int *)(pcVar13 + 0xbe21c);\n    iVar7 = *(int *)(pcVar13 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  }\n  iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f);\nLAB_000d1a60:\n  if (iStack_d4 != **(int **)(pcVar13 + 0xbe590)) {\n    pcVar13 = *(code **)(pcVar13 + 0xbe564);\n    iVar4 = iStack_d4;\n    (*pcVar13)();\n    if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }\n    return iVar15;\n  }\n  return iVar15;\n}" primitive_type (function_declarator "FUN_000d1340(int *param_1,int *param_2,int *param_3,int *param_4)" identifier (parameter_list "(int *param_1,int *param_2,int *param_3,int *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  int *unaff_s1;\n  code *unaff_s2;\n  code *pcVar13;\n  int iVar14;\n  int iVar15;\n  int *unaff_s4;\n  int *piVar16;\n  undefined *unaff_s5;\n  int *piVar17;\n  uint uVar18;\n  code *unaff_s6;\n  undefined4 *puVar19;\n  code *unaff_s7;\n  undefined *puVar20;\n  uint unaff_s8;\n  undefined4 uVar21;\n  code *pcVar22;\n  uint uVar23;\n  int iStack_dc;\n  int iStack_d8;\n  int iStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  code *pcStack_c8;\n  int *piStack_c4;\n  int *piStack_c0;\n  undefined *puStack_bc;\n  code *pcStack_b8;\n  code *pcStack_b4;\n  uint uStack_b0;\n  code *pcStack_ac;\n  undefined *local_98;\n  int local_90;\n  int local_8c;\n  int local_88;\n  int *local_84;\n  code *local_80;\n  int *local_7c;\n  int *local_78;\n  undefined4 local_74;\n  undefined4 local_60;\n  int local_50;\n  int local_4c;\n  int aiStack_48 [7];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  if ((int *)param_1[0xb] < param_2) {\n    local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);\n    piVar11 = param_3;\n    piVar12 = param_4;\n  }\n  else {\n    local_60 = 0;\n    piVar12 = (int *)0x0;\n    piVar11 = &local_50;\n    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();\n    local_88 = local_4c;\n    unaff_s4 = param_4;\n    if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_0018fecc) {\n    return local_88;\n  }\n  uVar21 = 0xd1668;\n  iVar4 = local_2c;\n  puVar20 = PTR___stack_chk_fail_0018fea0;\n  (*(code *)PTR___stack_chk_fail_0018fea0)();\n  local_98 = puVar20 + 0xc62b8;\n  local_8c = **(int **)(puVar20 + 0xbe864);\n  local_90 = 0;\n  piVar16 = piVar11;\n  local_84 = unaff_s1;\n  local_80 = unaff_s2;\n  local_7c = param_1;\n  local_78 = unaff_s4;\n  local_74 = uVar21;\n  if (*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0) {\n    piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);\nLAB_000d187c:\n    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));\n    piVar3 = piVar11;\n    uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);\n    *(undefined4 *)(iVar4 + 8) = uVar21;\n    iVar4 = 1;\n  }\n  else {\n    if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }\n    pcVar13 = *(code **)(puVar20 + 0xbe318);\n    param_1 = (int *)(*pcVar13)(*piVar11);\n    piVar3 = (int *)(*pcVar13)(piVar11[1]);\n    unaff_s2 = pcVar13;\n    if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }\n    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);\n    if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(iVar4 + 0xc);\n    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);\n    if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);\n    if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);\n    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();\n    piVar12 = (int *)0x0;\n    if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    piVar16 = &local_90;\n    piVar3 = param_1;\n    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);\n    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }\n    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);\n  }\n  if (local_8c == **(int **)(local_98 + -0x7a54)) {\n    return iVar4;\n  }\n  pcVar13 = *(code **)(local_98 + -0x7a80);\n  pcVar22 = FUN_000d193c;\n  iVar10 = local_8c;\n  (*pcVar13)();\n  iStack_d4 = **(int **)(pcVar13 + 0xbe590);\n  iVar15 = *(int *)(iVar10 + 0x74);\n  puVar19 = *(undefined4 **)(iVar10 + 0x14);\n  iStack_d0 = iVar4;\n  piStack_cc = piVar11;\n  pcStack_c8 = unaff_s2;\n  piStack_c4 = param_1;\n  piStack_c0 = unaff_s4;\n  puStack_bc = unaff_s5;\n  pcStack_b8 = unaff_s6;\n  pcStack_b4 = unaff_s7;\n  uStack_b0 = unaff_s8;\n  pcStack_ac = pcVar22;\n  (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))();\n  iVar4 = *(int *)(iVar10 + 0x28);\n  piVar11 = (int *)(uint)*(ushort *)(iVar10 + 0x30);\n  if ((uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38))) {\n    iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }\n  if (piVar3 < piVar11) {\n    piVar17 = piVar16;\n    if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }\n    if (local_98 == (undefined *)0x0) {\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }\n    else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }\n    piVar12 = (int *)((int)piVar12 + (int)piVar17);\n    piVar16 = (int *)((int)piVar16 - (int)piVar17);\n    uVar2 = 0;\n  }\n  else {\n    uVar2 = (int)piVar3 - (int)piVar11;\n  }\n  iVar15 = 0;\n  if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  iVar15 = puVar19[9];\n  uVar1 = *(ushort *)(iVar10 + 0x30);\n  iStack_dc = (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1);\n  uVar18 = iVar15 - 4;\n  if ((*(byte *)(iVar10 + 1) & 4) == 0) {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;\n    if ((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))) {\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }\n    (**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);\n    *(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;\nLAB_000d1bac:\n    uVar23 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }\n  else {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = uVar2 / uVar18;\n    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);\n    if (iVar4 == 0) goto LAB_000d1bac;\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar2 = uVar2 % uVar18;\n    iStack_dc = iVar4;\nLAB_000d1bb8:\n    iVar14 = uVar23 << 2;\n    iVar4 = *(int *)(pcVar13 + 0xbe21c);\n    iVar5 = *(int *)(pcVar13 + 0xbe21c);\n    iVar6 = *(int *)(pcVar13 + 0xbe21c);\n    iVar7 = *(int *)(pcVar13 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  }\n  iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f);\nLAB_000d1a60:\n  if (iStack_d4 != **(int **)(pcVar13 + 0xbe590)) {\n    pcVar13 = *(code **)(pcVar13 + 0xbe564);\n    iVar4 = iStack_d4;\n    (*pcVar13)();\n    if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }\n    return iVar15;\n  }\n  return iVar15;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int *unaff_s1;" primitive_type (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "code *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "code *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "code *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uint unaff_s8;" type_identifier identifier ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int iStack_dc;" primitive_type identifier ;) (declaration "int iStack_d8;" primitive_type identifier ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "int *piStack_cc;" primitive_type (pointer_declarator "*piStack_cc" * identifier) ;) (declaration "code *pcStack_c8;" type_identifier (pointer_declarator "*pcStack_c8" * identifier) ;) (declaration "int *piStack_c4;" primitive_type (pointer_declarator "*piStack_c4" * identifier) ;) (declaration "int *piStack_c0;" primitive_type (pointer_declarator "*piStack_c0" * identifier) ;) (declaration "undefined *puStack_bc;" type_identifier (pointer_declarator "*puStack_bc" * identifier) ;) (declaration "code *pcStack_b8;" type_identifier (pointer_declarator "*pcStack_b8" * identifier) ;) (declaration "code *pcStack_b4;" type_identifier (pointer_declarator "*pcStack_b4" * identifier) ;) (declaration "uint uStack_b0;" type_identifier identifier ;) (declaration "code *pcStack_ac;" type_identifier (pointer_declarator "*pcStack_ac" * identifier) ;) (declaration "undefined *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "int local_90;" primitive_type identifier ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "int local_88;" primitive_type identifier ;) (declaration "int *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "code *local_80;" type_identifier (pointer_declarator "*local_80" * identifier) ;) (declaration "int *local_7c;" primitive_type (pointer_declarator "*local_7c" * identifier) ;) (declaration "int *local_78;" primitive_type (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined4 local_74;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int aiStack_48 [7];" primitive_type (array_declarator "aiStack_48 [7]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0018fecc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0018fecc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0018fecc" * (cast_expression "(int *)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((int *)param_1[0xb] < param_2) {\n    local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);\n    piVar11 = param_3;\n    piVar12 = param_4;\n  }\n  else {\n    local_60 = 0;\n    piVar12 = (int *)0x0;\n    piVar11 = &local_50;\n    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();\n    local_88 = local_4c;\n    unaff_s4 = param_4;\n    if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }\n  }" if (parenthesized_expression "((int *)param_1[0xb] < param_2)" ( (binary_expression "(int *)param_1[0xb] < param_2" (cast_expression "(int *)param_1[0xb]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xb]" identifier [ number_literal ])) < identifier) )) (compound_statement "{\n    local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);\n    piVar11 = param_3;\n    piVar12 = param_4;\n  }" { (expression_statement "local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);" (assignment_expression "local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6)" identifier = (call_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3b28))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbf4 + 0x3b28)" * (cast_expression "(code *)(PTR_LAB_0018fbf4 + 0x3b28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbf4 + 0x3b28)" ( (binary_expression "PTR_LAB_0018fbf4 + 0x3b28" identifier + number_literal) )))) )) (argument_list "(0x119d6)" ( number_literal )))) ;) (expression_statement "piVar11 = param_3;" (assignment_expression "piVar11 = param_3" identifier = identifier) ;) (expression_statement "piVar12 = param_4;" (assignment_expression "piVar12 = param_4" identifier = identifier) ;) }) (else_clause "else {\n    local_60 = 0;\n    piVar12 = (int *)0x0;\n    piVar11 = &local_50;\n    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();\n    local_88 = local_4c;\n    unaff_s4 = param_4;\n    if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }\n  }" else (compound_statement "{\n    local_60 = 0;\n    piVar12 = (int *)0x0;\n    piVar11 = &local_50;\n    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();\n    local_88 = local_4c;\n    unaff_s4 = param_4;\n    if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }\n  }" { (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar11 = &local_50;" (assignment_expression "piVar11 = &local_50" identifier = (pointer_expression "&local_50" & identifier)) ;) (expression_statement "local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();" (assignment_expression "local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))()" identifier = (call_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x46c4))()" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x46c4))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbf4 + 0x46c4)" * (cast_expression "(code *)(PTR_LAB_0018fbf4 + 0x46c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbf4 + 0x46c4)" ( (binary_expression "PTR_LAB_0018fbf4 + 0x46c4" identifier + number_literal) )))) )) (argument_list "()" ( )))) ;) (expression_statement "local_88 = local_4c;" (assignment_expression "local_88 = local_4c" identifier = identifier) ;) (expression_statement "unaff_s4 = param_4;" (assignment_expression "unaff_s4 = param_4" identifier = identifier) ;) (if_statement "if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }" if (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) (compound_statement "{\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }" { (if_statement "if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }" if (parenthesized_expression "(*(char *)(local_50 + 1) == '\0')" ( (binary_expression "*(char *)(local_50 + 1) == '\0'" (pointer_expression "*(char *)(local_50 + 1)" * (cast_expression "(char *)(local_50 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 1)" ( (binary_expression "local_50 + 1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }" { (expression_statement "*(undefined1 *)(local_50 + 1) = 1;" (assignment_expression "*(undefined1 *)(local_50 + 1) = 1" (pointer_expression "*(undefined1 *)(local_50 + 1)" * (cast_expression "(undefined1 *)(local_50 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 1)" ( (binary_expression "local_50 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar20 = PTR_LAB_0018fbb4;" (assignment_expression "puVar20 = PTR_LAB_0018fbb4" identifier = identifier) ;) (expression_statement "uVar2 = (uint)*(ushort *)(local_50 + 0x16);" (assignment_expression "uVar2 = (uint)*(ushort *)(local_50 + 0x16)" identifier = (binary_expression "(uint)*(ushort *)(local_50 + 0x16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(local_50 + 0x16)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x16)" ( (binary_expression "local_50 + 0x16" identifier + number_literal) ))))) ;) (expression_statement "unaff_s8 = (uint)*(byte *)(local_50 + 9);" (assignment_expression "unaff_s8 = (uint)*(byte *)(local_50 + 9)" identifier = (binary_expression "(uint)*(byte *)(local_50 + 9)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_50 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 9)" ( (binary_expression "local_50 + 9" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }" { (expression_statement "unaff_s2 = (code *)0x0;" (assignment_expression "unaff_s2 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);" (assignment_expression "unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220)" identifier = (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x2220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x2220)" ( (binary_expression "PTR_LAB_0018fb58 + 0x2220" identifier + number_literal) )))) ;) (expression_statement "unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);" (assignment_expression "unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340)" identifier = (cast_expression "(code *)(PTR_LAB_0018fbb4 + 0x1340)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbb4 + 0x1340)" ( (binary_expression "PTR_LAB_0018fbb4 + 0x1340" identifier + number_literal) )))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);" do (compound_statement "{\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));" (assignment_expression "unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)))" identifier = (cast_expression "(int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)))" ( (binary_expression "*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18))" (pointer_expression "*(int *)(local_50 + 0x38)" * (cast_expression "(int *)(local_50 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x38)" ( (binary_expression "local_50 + 0x38" identifier + number_literal) )))) + (call_expression "(uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18))" ( (binary_expression "*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)" (pointer_expression "*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40))" * (cast_expression "(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40))" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s2 + *(int *)(local_50 + 0x40))" ( (binary_expression "unaff_s2 + *(int *)(local_50 + 0x40)" identifier + (pointer_expression "*(int *)(local_50 + 0x40)" * (cast_expression "(int *)(local_50 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x40)" ( (binary_expression "local_50 + 0x40" identifier + number_literal) ))))) )))) & (pointer_expression "*(ushort *)(local_50 + 0x18)" * (cast_expression "(ushort *)(local_50 + 0x18)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x18)" ( (binary_expression "local_50 + 0x18" identifier + number_literal) ))))) )))) )))) ;) (expression_statement "unaff_s5 = puVar20;" (assignment_expression "unaff_s5 = puVar20" identifier = identifier) ;) (if_statement "if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }" if (parenthesized_expression "(*(char *)(local_50 + 8) == '\0')" ( (binary_expression "*(char *)(local_50 + 8) == '\0'" (pointer_expression "*(char *)(local_50 + 8)" * (cast_expression "(char *)(local_50 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 8)" ( (binary_expression "local_50 + 8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }" { (expression_statement "param_2 = (int *)(*unaff_s7)(unaff_s1);" (assignment_expression "param_2 = (int *)(*unaff_s7)(unaff_s1)" identifier = (cast_expression "(int *)(*unaff_s7)(unaff_s1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*unaff_s7)(unaff_s1)" (parenthesized_expression "(*unaff_s7)" ( (pointer_expression "*unaff_s7" * identifier) )) (argument_list "(unaff_s1)" ( identifier ))))) ;) (expression_statement "piVar11 = (int *)0x1;" (assignment_expression "piVar11 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar12 = param_4;" (assignment_expression "piVar12 = param_4" identifier = identifier) ;) (expression_statement "local_4c = (*unaff_s6)(param_1,param_2,1,param_4);" (assignment_expression "local_4c = (*unaff_s6)(param_1,param_2,1,param_4)" identifier = (call_expression "(*unaff_s6)(param_1,param_2,1,param_4)" (parenthesized_expression "(*unaff_s6)" ( (pointer_expression "*unaff_s6" * identifier) )) (argument_list "(param_1,param_2,1,param_4)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (local_4c != 0) goto LAB_000d1454;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1454;" goto statement_identifier ;)) })) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "piVar11 = aiStack_48;" (assignment_expression "piVar11 = aiStack_48" identifier = identifier) ;) (expression_statement "param_2 = unaff_s1;" (assignment_expression "param_2 = unaff_s1" identifier = identifier) ;) (expression_statement "local_4c = FUN_000ce738(local_50);" (assignment_expression "local_4c = FUN_000ce738(local_50)" identifier = (call_expression "FUN_000ce738(local_50)" identifier (argument_list "(local_50)" ( identifier )))) ;) (if_statement "if (local_4c != 0) goto LAB_000d1454;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1454;" goto statement_identifier ;)) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar2 = (uint)*(ushort *)(local_50 + 0x16);" (assignment_expression "uVar2 = (uint)*(ushort *)(local_50 + 0x16)" identifier = (binary_expression "(uint)*(ushort *)(local_50 + 0x16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(local_50 + 0x16)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x16)" ( (binary_expression "local_50 + 0x16" identifier + number_literal) ))))) ;) (expression_statement "unaff_s2 = unaff_s2 + 2;" (assignment_expression "unaff_s2 = unaff_s2 + 2" identifier = (binary_expression "unaff_s2 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 < (int)uVar2)" ( (binary_expression "iVar4 < (int)uVar2" identifier < (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }" if (parenthesized_expression "(*(char *)(local_50 + 8) == '\0')" ( (binary_expression "*(char *)(local_50 + 8) == '\0'" (pointer_expression "*(char *)(local_50 + 8)" * (cast_expression "(char *)(local_50 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 8)" ( (binary_expression "local_50 + 8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }" { (expression_statement "param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);" (assignment_expression "param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8)" identifier = (cast_expression "(int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fb58 + 0x2220))" ( (pointer_expression "*(code *)(PTR_LAB_0018fb58 + 0x2220)" * (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x2220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x2220)" ( (binary_expression "PTR_LAB_0018fb58 + 0x2220" identifier + number_literal) )))) )) (argument_list "(*(int *)(local_50 + 0x38) + unaff_s8 + 8)" ( (binary_expression "*(int *)(local_50 + 0x38) + unaff_s8 + 8" (binary_expression "*(int *)(local_50 + 0x38) + unaff_s8" (pointer_expression "*(int *)(local_50 + 0x38)" * (cast_expression "(int *)(local_50 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x38)" ( (binary_expression "local_50 + 0x38" identifier + number_literal) )))) + identifier) + number_literal) ))))) ;) (expression_statement "piVar11 = (int *)0x1;" (assignment_expression "piVar11 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar12 = param_4;" (assignment_expression "piVar12 = param_4" identifier = identifier) ;) (expression_statement "local_4c = FUN_000d1340(param_1,param_2,1,param_4);" (assignment_expression "local_4c = FUN_000d1340(param_1,param_2,1,param_4)" identifier = (call_expression "FUN_000d1340(param_1,param_2,1,param_4)" identifier (argument_list "(param_1,param_2,1,param_4)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (local_4c != 0) goto LAB_000d1454;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1454;" goto statement_identifier ;)) }) (else_clause "else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }" else (if_statement "if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *param_4 = *param_4 + uVar2;\n        }" { (expression_statement "*param_4 = *param_4 + uVar2;" (assignment_expression "*param_4 = *param_4 + uVar2" (pointer_expression "*param_4" * identifier) = (binary_expression "*param_4 + uVar2" (pointer_expression "*param_4" * identifier) + identifier)) ;) })))) (if_statement "if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }" { (expression_statement "local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));" (assignment_expression "local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48))" identifier = (call_expression "FUN_000c6d30(*(undefined4 *)(local_50 + 0x48))" identifier (argument_list "(*(undefined4 *)(local_50 + 0x48))" ( (pointer_expression "*(undefined4 *)(local_50 + 0x48)" * (cast_expression "(undefined4 *)(local_50 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x48)" ( (binary_expression "local_50 + 0x48" identifier + number_literal) )))) )))) ;) (if_statement "if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }" if (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) (compound_statement "{\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }" { (expression_statement "param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);" (assignment_expression "param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8)" identifier = (cast_expression "(int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8)" ( (binary_expression "*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8" (pointer_expression "*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8)" * (cast_expression "(byte *)(*(int *)(local_50 + 0x38) + unaff_s8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_50 + 0x38) + unaff_s8)" ( (binary_expression "*(int *)(local_50 + 0x38) + unaff_s8" (pointer_expression "*(int *)(local_50 + 0x38)" * (cast_expression "(int *)(local_50 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x38)" ( (binary_expression "local_50 + 0x38" identifier + number_literal) )))) + identifier) )))) | number_literal) )))) ;) (expression_statement "(*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();" (call_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3c90))()" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3c90))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbf4 + 0x3c90)" * (cast_expression "(code *)(PTR_LAB_0018fbf4 + 0x3c90)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbf4 + 0x3c90)" ( (binary_expression "PTR_LAB_0018fbf4 + 0x3c90" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }" else (compound_statement "{\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }" { (expression_statement "param_2 = &local_4c;" (assignment_expression "param_2 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "FUN_000ce9ec(local_50);" (call_expression "FUN_000ce9ec(local_50)" identifier (argument_list "(local_50)" ( identifier ))) ;) }))) }) (else_clause "else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }" else (compound_statement "{\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }" { (expression_statement "local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);" (assignment_expression "local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db)" identifier = (call_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3b28))" ( (pointer_expression "*(code *)(PTR_LAB_0018fbf4 + 0x3b28)" * (cast_expression "(code *)(PTR_LAB_0018fbf4 + 0x3b28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbf4 + 0x3b28)" ( (binary_expression "PTR_LAB_0018fbf4 + 0x3b28" identifier + number_literal) )))) )) (argument_list "(0x119db)" ( number_literal )))) ;) }))) (labeled_statement "LAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;" statement_identifier : (expression_statement "*(undefined1 *)(local_50 + 1) = 0;" (assignment_expression "*(undefined1 *)(local_50 + 1) = 0" (pointer_expression "*(undefined1 *)(local_50 + 1)" * (cast_expression "(undefined1 *)(local_50 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 1)" ( (binary_expression "local_50 + 1" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "(*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);" (call_expression "(*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fb58 + 0x5aac))" ( (pointer_expression "*(code *)(PTR_LAB_0018fb58 + 0x5aac)" * (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x5aac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fb58 + 0x5aac)" ( (binary_expression "PTR_LAB_0018fb58 + 0x5aac" identifier + number_literal) )))) )) (argument_list "(local_50)" ( identifier ))) ;) (expression_statement "local_88 = local_4c;" (assignment_expression "local_88 = local_4c" identifier = identifier) ;) })) }))) (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_0018fecc) {\n    return local_88;\n  }" if (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_0018fecc)" ( (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_0018fecc" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_0018fecc" * (cast_expression "(int *)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return local_88;\n  }" { (return_statement "return local_88;" return identifier ;) })) (expression_statement "uVar21 = 0xd1668;" (assignment_expression "uVar21 = 0xd1668" identifier = number_literal) ;) (expression_statement "iVar4 = local_2c;" (assignment_expression "iVar4 = local_2c" identifier = identifier) ;) (expression_statement "puVar20 = PTR___stack_chk_fail_0018fea0;" (assignment_expression "puVar20 = PTR___stack_chk_fail_0018fea0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0018fea0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0018fea0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0018fea0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0018fea0" * (cast_expression "(code *)PTR___stack_chk_fail_0018fea0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_98 = puVar20 + 0xc62b8;" (assignment_expression "local_98 = puVar20 + 0xc62b8" identifier = (binary_expression "puVar20 + 0xc62b8" identifier + number_literal)) ;) (expression_statement "local_8c = **(int **)(puVar20 + 0xbe864);" (assignment_expression "local_8c = **(int **)(puVar20 + 0xbe864)" identifier = (pointer_expression "**(int **)(puVar20 + 0xbe864)" * (pointer_expression "*(int **)(puVar20 + 0xbe864)" * (cast_expression "(int **)(puVar20 + 0xbe864)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0xbe864)" ( (binary_expression "puVar20 + 0xbe864" identifier + number_literal) )))))) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "piVar16 = piVar11;" (assignment_expression "piVar16 = piVar11" identifier = identifier) ;) (expression_statement "local_84 = unaff_s1;" (assignment_expression "local_84 = unaff_s1" identifier = identifier) ;) (expression_statement "local_80 = unaff_s2;" (assignment_expression "local_80 = unaff_s2" identifier = identifier) ;) (expression_statement "local_7c = param_1;" (assignment_expression "local_7c = param_1" identifier = identifier) ;) (expression_statement "local_78 = unaff_s4;" (assignment_expression "local_78 = unaff_s4" identifier = identifier) ;) (expression_statement "local_74 = uVar21;" (assignment_expression "local_74 = uVar21" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0) {\n    piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);\nLAB_000d187c:\n    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));\n    piVar3 = piVar11;\n    uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);\n    *(undefined4 *)(iVar4 + 8) = uVar21;\n    iVar4 = 1;\n  }\n  else {\n    if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }\n    pcVar13 = *(code **)(puVar20 + 0xbe318);\n    param_1 = (int *)(*pcVar13)(*piVar11);\n    piVar3 = (int *)(*pcVar13)(piVar11[1]);\n    unaff_s2 = pcVar13;\n    if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }\n    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);\n    if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(iVar4 + 0xc);\n    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);\n    if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);\n    if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);\n    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();\n    piVar12 = (int *)0x0;\n    if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    piVar16 = &local_90;\n    piVar3 = param_1;\n    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);\n    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }\n    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);\n  }" if (parenthesized_expression "(*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0)" ( (binary_expression "*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0" (binary_expression "*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3" (pointer_expression "*(int *)(*(int *)(iVar4 + 0xc) + 0x24)" * (cast_expression "(int *)(*(int *)(iVar4 + 0xc) + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0xc) + 0x24)" ( (binary_expression "*(int *)(iVar4 + 0xc) + 0x24" (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n    piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);\nLAB_000d187c:\n    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));\n    piVar3 = piVar11;\n    uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);\n    *(undefined4 *)(iVar4 + 8) = uVar21;\n    iVar4 = 1;\n  }" { (expression_statement "piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);" (assignment_expression "piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564)" identifier = (cast_expression "(int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar20 + 0xbe2f4) + -0x4564)" ( (binary_expression "*(int *)(puVar20 + 0xbe2f4) + -0x4564" (pointer_expression "*(int *)(puVar20 + 0xbe2f4)" * (cast_expression "(int *)(puVar20 + 0xbe2f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0xbe2f4)" ( (binary_expression "puVar20 + 0xbe2f4" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_000d187c:\n    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));" statement_identifier : (expression_statement "(**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));" (call_expression "(**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8))" (parenthesized_expression "(**(code **)(local_98 + -0x7fa8))" ( (pointer_expression "**(code **)(local_98 + -0x7fa8)" * (pointer_expression "*(code **)(local_98 + -0x7fa8)" * (cast_expression "(code **)(local_98 + -0x7fa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_98 + -0x7fa8)" ( (binary_expression "local_98 + -0x7fa8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar4 + 8))" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) ))) ;)) (expression_statement "piVar3 = piVar11;" (assignment_expression "piVar3 = piVar11" identifier = identifier) ;) (expression_statement "uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);" (assignment_expression "uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0)" identifier = (call_expression "sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0)" identifier (argument_list "(*(int *)(local_98 + -0x7fc4) + -0x60a0)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x60a0" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*(undefined4 *)(iVar4 + 8) = uVar21;" (assignment_expression "*(undefined4 *)(iVar4 + 8) = uVar21" (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n    if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }\n    pcVar13 = *(code **)(puVar20 + 0xbe318);\n    param_1 = (int *)(*pcVar13)(*piVar11);\n    piVar3 = (int *)(*pcVar13)(piVar11[1]);\n    unaff_s2 = pcVar13;\n    if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }\n    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);\n    if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(iVar4 + 0xc);\n    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);\n    if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);\n    if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);\n    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();\n    piVar12 = (int *)0x0;\n    if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    piVar16 = &local_90;\n    piVar3 = param_1;\n    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);\n    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }\n    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);\n  }" else (compound_statement "{\n    if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }\n    pcVar13 = *(code **)(puVar20 + 0xbe318);\n    param_1 = (int *)(*pcVar13)(*piVar11);\n    piVar3 = (int *)(*pcVar13)(piVar11[1]);\n    unaff_s2 = pcVar13;\n    if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }\n    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);\n    if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(iVar4 + 0xc);\n    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);\n    if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);\n    if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);\n    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();\n    piVar12 = (int *)0x0;\n    if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    piVar16 = &local_90;\n    piVar3 = param_1;\n    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);\n    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }\n    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);\n  }" { (if_statement "if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(param_2 == (int *)0x1)" ( (binary_expression "param_2 == (int *)0x1" identifier == (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);" (assignment_expression "piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558)" identifier = (cast_expression "(int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar20 + 0xbe2f4) + -0x4558)" ( (binary_expression "*(int *)(puVar20 + 0xbe2f4) + -0x4558" (pointer_expression "*(int *)(puVar20 + 0xbe2f4)" * (cast_expression "(int *)(puVar20 + 0xbe2f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0xbe2f4)" ( (binary_expression "puVar20 + 0xbe2f4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "pcVar13 = *(code **)(puVar20 + 0xbe318);" (assignment_expression "pcVar13 = *(code **)(puVar20 + 0xbe318)" identifier = (pointer_expression "*(code **)(puVar20 + 0xbe318)" * (cast_expression "(code **)(puVar20 + 0xbe318)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0xbe318)" ( (binary_expression "puVar20 + 0xbe318" identifier + number_literal) ))))) ;) (expression_statement "param_1 = (int *)(*pcVar13)(*piVar11);" (assignment_expression "param_1 = (int *)(*pcVar13)(*piVar11)" identifier = (cast_expression "(int *)(*pcVar13)(*piVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar13)(*piVar11)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(*piVar11)" ( (pointer_expression "*piVar11" * identifier) ))))) ;) (expression_statement "piVar3 = (int *)(*pcVar13)(piVar11[1]);" (assignment_expression "piVar3 = (int *)(*pcVar13)(piVar11[1])" identifier = (cast_expression "(int *)(*pcVar13)(piVar11[1])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar13)(piVar11[1])" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(piVar11[1])" ( (subscript_expression "piVar11[1]" identifier [ number_literal ]) ))))) ;) (expression_statement "unaff_s2 = pcVar13;" (assignment_expression "unaff_s2 = pcVar13" identifier = identifier) ;) (if_statement "if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(param_1 != piVar3)" ( (binary_expression "param_1 != piVar3" identifier != identifier) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538)" identifier = (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4538)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4538)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4538" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);" (assignment_expression "iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4])" identifier = (call_expression "(**(code **)(local_98 + -0x7fa4))(piVar11[4])" (parenthesized_expression "(**(code **)(local_98 + -0x7fa4))" ( (pointer_expression "**(code **)(local_98 + -0x7fa4)" * (pointer_expression "*(code **)(local_98 + -0x7fa4)" * (cast_expression "(code **)(local_98 + -0x7fa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_98 + -0x7fa4)" ( (binary_expression "local_98 + -0x7fa4" identifier + number_literal) ))))) )) (argument_list "(piVar11[4])" ( (subscript_expression "piVar11[4]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548)" identifier = (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4548)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4548)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4548" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "unaff_s2 = *(code **)(iVar4 + 0xc);" (assignment_expression "unaff_s2 = *(code **)(iVar4 + 0xc)" identifier = (pointer_expression "*(code **)(iVar4 + 0xc)" * (cast_expression "(code **)(iVar4 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);" (assignment_expression "iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10)" identifier = (call_expression "(*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10)" (parenthesized_expression "(*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))" ( (pointer_expression "*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c)" * (cast_expression "(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7d64) + -0x6d2c)" ( (binary_expression "*(int *)(local_98 + -0x7d64) + -0x6d2c" (pointer_expression "*(int *)(local_98 + -0x7d64)" * (cast_expression "(int *)(local_98 + -0x7d64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7d64)" ( (binary_expression "local_98 + -0x7d64" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(unaff_s2,iVar10)" ( identifier , identifier )))) ;) (if_statement "if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(iVar10 < 0)" ( (binary_expression "iVar10 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548)" identifier = (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4548)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4548)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4548" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (if_statement "if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" identifier = (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4584)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4584" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);" (assignment_expression "unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4)" identifier = (pointer_expression "*(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4)" * (cast_expression "(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4)" ( (binary_expression "*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4" (binary_expression "*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10" (pointer_expression "*(int *)(unaff_s2 + 0x10)" * (cast_expression "(int *)(unaff_s2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s2 + 0x10)" ( (binary_expression "unaff_s2 + 0x10" identifier + number_literal) )))) + (binary_expression "iVar10 * 0x10" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(unaff_s2 == (code *)0x0)" ( (binary_expression "unaff_s2 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" identifier = (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4584)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4584" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (if_statement "if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1)" ( (binary_expression "*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1" (pointer_expression "*(int **)(*(int *)(unaff_s2 + 4) + 0x2c)" * (cast_expression "(int **)(*(int *)(unaff_s2 + 4) + 0x2c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(unaff_s2 + 4) + 0x2c)" ( (binary_expression "*(int *)(unaff_s2 + 4) + 0x2c" (pointer_expression "*(int *)(unaff_s2 + 4)" * (cast_expression "(int *)(unaff_s2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s2 + 4)" ( (binary_expression "unaff_s2 + 4" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" identifier = (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4584)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4584" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (if_statement "if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04')" ( (binary_expression "*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04'" (pointer_expression "*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0)" * (cast_expression "(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0)" ( (binary_expression "(*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0" (binary_expression "(*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4)" (parenthesized_expression "(*(ushort *)(piVar11[3] + 8) & 0x1f)" ( (binary_expression "*(ushort *)(piVar11[3] + 8) & 0x1f" (pointer_expression "*(ushort *)(piVar11[3] + 8)" * (cast_expression "(ushort *)(piVar11[3] + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11[3] + 8)" ( (binary_expression "piVar11[3] + 8" (subscript_expression "piVar11[3]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) + (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) ))))) + number_literal) )))) != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574)" identifier = (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4574)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4574)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4574" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);" (assignment_expression "unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20)" identifier = (pointer_expression "*(int **)(*(int *)(unaff_s2 + 4) + 0x20)" * (cast_expression "(int **)(*(int *)(unaff_s2 + 4) + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(unaff_s2 + 4) + 0x20)" ( (binary_expression "*(int *)(unaff_s2 + 4) + 0x20" (pointer_expression "*(int *)(unaff_s2 + 4)" * (cast_expression "(int *)(unaff_s2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s2 + 4)" ( (binary_expression "unaff_s2 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();" (assignment_expression "piVar3 = (int *)(**(code **)(local_98 + -0x7f60))()" identifier = (cast_expression "(int *)(**(code **)(local_98 + -0x7f60))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_98 + -0x7f60))()" (parenthesized_expression "(**(code **)(local_98 + -0x7f60))" ( (pointer_expression "**(code **)(local_98 + -0x7f60)" * (pointer_expression "*(code **)(local_98 + -0x7f60)" * (cast_expression "(code **)(local_98 + -0x7f60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_98 + -0x7f60)" ( (binary_expression "local_98 + -0x7f60" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }" if (parenthesized_expression "(piVar3 != unaff_s4)" ( (binary_expression "piVar3 != unaff_s4" identifier != identifier) )) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }" { (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574)" identifier = (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4574)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4574)" ( (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4574" (pointer_expression "*(int *)(local_98 + -0x7fc4)" * (cast_expression "(int *)(local_98 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7fc4)" ( (binary_expression "local_98 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000d187c;" goto statement_identifier ;) })) (expression_statement "piVar16 = &local_90;" (assignment_expression "piVar16 = &local_90" identifier = (pointer_expression "&local_90" & identifier)) ;) (expression_statement "piVar3 = param_1;" (assignment_expression "piVar3 = param_1" identifier = identifier) ;) (expression_statement "iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);" (assignment_expression "iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0)" identifier = (call_expression "(*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0)" (parenthesized_expression "(*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))" ( (pointer_expression "*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c)" * (cast_expression "(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7dc8) + 0x491c)" ( (binary_expression "*(int *)(local_98 + -0x7dc8) + 0x491c" (pointer_expression "*(int *)(local_98 + -0x7dc8)" * (cast_expression "(int *)(local_98 + -0x7dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7dc8)" ( (binary_expression "local_98 + -0x7dc8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0)" ( (pointer_expression "**(undefined4 **)(unaff_s2 + 4)" * (pointer_expression "*(undefined4 **)(unaff_s2 + 4)" * (cast_expression "(undefined4 **)(unaff_s2 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s2 + 4)" ( (binary_expression "unaff_s2 + 4" identifier + number_literal) ))))) , identifier , identifier , number_literal )))) ;) (if_statement "if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }" if (parenthesized_expression "((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0))" ( (binary_expression "(iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar4 = FUN_000c6d30(local_90), iVar4 == 0)" ( (comma_expression "iVar4 = FUN_000c6d30(local_90), iVar4 == 0" (assignment_expression "iVar4 = FUN_000c6d30(local_90)" identifier = (call_expression "FUN_000c6d30(local_90)" identifier (argument_list "(local_90)" ( identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }" { (expression_statement "unaff_s2 = *(code **)(local_90 + 4);" (assignment_expression "unaff_s2 = *(code **)(local_90 + 4)" identifier = (pointer_expression "*(code **)(local_90 + 4)" * (cast_expression "(code **)(local_90 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_90 + 4)" ( (binary_expression "local_90 + 4" identifier + number_literal) ))))) ;) (expression_statement "piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);" (assignment_expression "piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3])" identifier = (cast_expression "(int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_98 + -0x7f5c))(piVar11[3])" (parenthesized_expression "(**(code **)(local_98 + -0x7f5c))" ( (pointer_expression "**(code **)(local_98 + -0x7f5c)" * (pointer_expression "*(code **)(local_98 + -0x7f5c)" * (cast_expression "(code **)(local_98 + -0x7f5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_98 + -0x7f5c)" ( (binary_expression "local_98 + -0x7f5c" identifier + number_literal) ))))) )) (argument_list "(piVar11[3])" ( (subscript_expression "piVar11[3]" identifier [ number_literal ]) ))))) ;) (expression_statement "piVar16 = unaff_s4;" (assignment_expression "piVar16 = unaff_s4" identifier = identifier) ;) (expression_statement "(**(code **)(local_98 + -0x7a4c))(unaff_s2);" (call_expression "(**(code **)(local_98 + -0x7a4c))(unaff_s2)" (parenthesized_expression "(**(code **)(local_98 + -0x7a4c))" ( (pointer_expression "**(code **)(local_98 + -0x7a4c)" * (pointer_expression "*(code **)(local_98 + -0x7a4c)" * (cast_expression "(code **)(local_98 + -0x7a4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_98 + -0x7a4c)" ( (binary_expression "local_98 + -0x7a4c" identifier + number_literal) ))))) )) (argument_list "(unaff_s2)" ( identifier ))) ;) })) (expression_statement "(*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);" (call_expression "(*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90)" (parenthesized_expression "(*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))" ( (pointer_expression "*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec)" * (cast_expression "(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_98 + -0x7dc8) + 0x49ec)" ( (binary_expression "*(int *)(local_98 + -0x7dc8) + 0x49ec" (pointer_expression "*(int *)(local_98 + -0x7dc8)" * (cast_expression "(int *)(local_98 + -0x7dc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_98 + -0x7dc8)" ( (binary_expression "local_98 + -0x7dc8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(local_90)" ( identifier ))) ;) }))) (if_statement "if (local_8c == **(int **)(local_98 + -0x7a54)) {\n    return iVar4;\n  }" if (parenthesized_expression "(local_8c == **(int **)(local_98 + -0x7a54))" ( (binary_expression "local_8c == **(int **)(local_98 + -0x7a54)" identifier == (pointer_expression "**(int **)(local_98 + -0x7a54)" * (pointer_expression "*(int **)(local_98 + -0x7a54)" * (cast_expression "(int **)(local_98 + -0x7a54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_98 + -0x7a54)" ( (binary_expression "local_98 + -0x7a54" identifier + number_literal) )))))) )) (compound_statement "{\n    return iVar4;\n  }" { (return_statement "return iVar4;" return identifier ;) })) (expression_statement "pcVar13 = *(code **)(local_98 + -0x7a80);" (assignment_expression "pcVar13 = *(code **)(local_98 + -0x7a80)" identifier = (pointer_expression "*(code **)(local_98 + -0x7a80)" * (cast_expression "(code **)(local_98 + -0x7a80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_98 + -0x7a80)" ( (binary_expression "local_98 + -0x7a80" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = FUN_000d193c;" (assignment_expression "pcVar22 = FUN_000d193c" identifier = identifier) ;) (expression_statement "iVar10 = local_8c;" (assignment_expression "iVar10 = local_8c" identifier = identifier) ;) (expression_statement "(*pcVar13)();" (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_d4 = **(int **)(pcVar13 + 0xbe590);" (assignment_expression "iStack_d4 = **(int **)(pcVar13 + 0xbe590)" identifier = (pointer_expression "**(int **)(pcVar13 + 0xbe590)" * (pointer_expression "*(int **)(pcVar13 + 0xbe590)" * (cast_expression "(int **)(pcVar13 + 0xbe590)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbe590)" ( (binary_expression "pcVar13 + 0xbe590" identifier + number_literal) )))))) ;) (expression_statement "iVar15 = *(int *)(iVar10 + 0x74);" (assignment_expression "iVar15 = *(int *)(iVar10 + 0x74)" identifier = (pointer_expression "*(int *)(iVar10 + 0x74)" * (cast_expression "(int *)(iVar10 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x74)" ( (binary_expression "iVar10 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "puVar19 = *(undefined4 **)(iVar10 + 0x14);" (assignment_expression "puVar19 = *(undefined4 **)(iVar10 + 0x14)" identifier = (pointer_expression "*(undefined4 **)(iVar10 + 0x14)" * (cast_expression "(undefined4 **)(iVar10 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iStack_d0 = iVar4;" (assignment_expression "iStack_d0 = iVar4" identifier = identifier) ;) (expression_statement "piStack_cc = piVar11;" (assignment_expression "piStack_cc = piVar11" identifier = identifier) ;) (expression_statement "pcStack_c8 = unaff_s2;" (assignment_expression "pcStack_c8 = unaff_s2" identifier = identifier) ;) (expression_statement "piStack_c4 = param_1;" (assignment_expression "piStack_c4 = param_1" identifier = identifier) ;) (expression_statement "piStack_c0 = unaff_s4;" (assignment_expression "piStack_c0 = unaff_s4" identifier = identifier) ;) (expression_statement "puStack_bc = unaff_s5;" (assignment_expression "puStack_bc = unaff_s5" identifier = identifier) ;) (expression_statement "pcStack_b8 = unaff_s6;" (assignment_expression "pcStack_b8 = unaff_s6" identifier = identifier) ;) (expression_statement "pcStack_b4 = unaff_s7;" (assignment_expression "pcStack_b4 = unaff_s7" identifier = identifier) ;) (expression_statement "uStack_b0 = unaff_s8;" (assignment_expression "uStack_b0 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_ac = pcVar22;" (assignment_expression "pcStack_ac = pcVar22" identifier = identifier) ;) (expression_statement "(*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))();" (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))()" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))" ( (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00)" * (cast_expression "(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0xbe21c) + 0x5c00)" ( (binary_expression "*(int *)(pcVar13 + 0xbe21c) + 0x5c00" (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" * (cast_expression "(int *)(pcVar13 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe21c)" ( (binary_expression "pcVar13 + 0xbe21c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = *(int *)(iVar10 + 0x28);" (assignment_expression "iVar4 = *(int *)(iVar10 + 0x28)" identifier = (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "piVar11 = (int *)(uint)*(ushort *)(iVar10 + 0x30);" (assignment_expression "piVar11 = (int *)(uint)*(ushort *)(iVar10 + 0x30)" identifier = (binary_expression "(int *)(uint)*(ushort *)(iVar10 + 0x30)" (cast_expression "(int *)(uint)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(iVar10 + 0x30)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if ((uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38))) {\n    iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }" if (parenthesized_expression "((uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38)))" ( (binary_expression "(uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38))" (call_expression "(uint)(puVar19[9] - (int)piVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar19[9] - (int)piVar11)" ( (binary_expression "puVar19[9] - (int)piVar11" (subscript_expression "puVar19[9]" identifier [ number_literal ]) - (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)(iVar4 - *(int *)(iVar15 + 0x38))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 - *(int *)(iVar15 + 0x38))" ( (binary_expression "iVar4 - *(int *)(iVar15 + 0x38)" identifier - (pointer_expression "*(int *)(iVar15 + 0x38)" * (cast_expression "(int *)(iVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x38)" ( (binary_expression "iVar15 + 0x38" identifier + number_literal) ))))) )))) )) (compound_statement "{\n    iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }" { (expression_statement "iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);" (assignment_expression "iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be)" identifier = (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be)" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))" ( (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" * (cast_expression "(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" ( (binary_expression "*(int *)(pcVar13 + 0xbe2b8) + 0x3b28" (pointer_expression "*(int *)(pcVar13 + 0xbe2b8)" * (cast_expression "(int *)(pcVar13 + 0xbe2b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe2b8)" ( (binary_expression "pcVar13 + 0xbe2b8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(0x108be)" ( number_literal )))) ;) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;) })) (if_statement "if (piVar3 < piVar11) {\n    piVar17 = piVar16;\n    if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }\n    if (local_98 == (undefined *)0x0) {\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }\n    else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }\n    piVar12 = (int *)((int)piVar12 + (int)piVar17);\n    piVar16 = (int *)((int)piVar16 - (int)piVar17);\n    uVar2 = 0;\n  }\n  else {\n    uVar2 = (int)piVar3 - (int)piVar11;\n  }" if (parenthesized_expression "(piVar3 < piVar11)" ( (binary_expression "piVar3 < piVar11" identifier < identifier) )) (compound_statement "{\n    piVar17 = piVar16;\n    if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }\n    if (local_98 == (undefined *)0x0) {\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }\n    else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }\n    piVar12 = (int *)((int)piVar12 + (int)piVar17);\n    piVar16 = (int *)((int)piVar16 - (int)piVar17);\n    uVar2 = 0;\n  }" { (expression_statement "piVar17 = piVar16;" (assignment_expression "piVar17 = piVar16" identifier = identifier) ;) (if_statement "if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }" if (parenthesized_expression "(piVar11 < (int *)((int)piVar3 + (int)piVar16))" ( (binary_expression "piVar11 < (int *)((int)piVar3 + (int)piVar16)" identifier < (cast_expression "(int *)((int)piVar3 + (int)piVar16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + (int)piVar16)" ( (binary_expression "(int)piVar3 + (int)piVar16" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }" { (expression_statement "piVar17 = (int *)((int)piVar11 - (int)piVar3);" (assignment_expression "piVar17 = (int *)((int)piVar11 - (int)piVar3)" identifier = (cast_expression "(int *)((int)piVar11 - (int)piVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 - (int)piVar3)" ( (binary_expression "(int)piVar11 - (int)piVar3" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (if_statement "if (local_98 == (undefined *)0x0) {\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }\n    else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }" if (parenthesized_expression "(local_98 == (undefined *)0x0)" ( (binary_expression "local_98 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }" { (expression_statement "(**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);" (call_expression "(**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbe598))" ( (pointer_expression "**(code **)(pcVar13 + 0xbe598)" * (pointer_expression "*(code **)(pcVar13 + 0xbe598)" * (cast_expression "(code **)(pcVar13 + 0xbe598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbe598)" ( (binary_expression "pcVar13 + 0xbe598" identifier + number_literal) ))))) )) (argument_list "(piVar12,iVar4 + (int)piVar3,piVar17)" ( identifier , (binary_expression "iVar4 + (int)piVar3" identifier + (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier ))) ;) }) (else_clause "else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }" else (compound_statement "{\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }" { (expression_statement "iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));" (assignment_expression "iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48))" identifier = (call_expression "FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48))" identifier (argument_list "(*(undefined4 *)(iVar15 + 0x48))" ( (pointer_expression "*(undefined4 *)(iVar15 + 0x48)" * (cast_expression "(undefined4 *)(iVar15 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x48)" ( (binary_expression "iVar15 + 0x48" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar15 != 0) goto LAB_000d1a60;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);" (call_expression "(**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbe598))" ( (pointer_expression "**(code **)(pcVar13 + 0xbe598)" * (pointer_expression "*(code **)(pcVar13 + 0xbe598)" * (cast_expression "(code **)(pcVar13 + 0xbe598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbe598)" ( (binary_expression "pcVar13 + 0xbe598" identifier + number_literal) ))))) )) (argument_list "(iVar4 + (int)piVar3,piVar12,piVar17)" ( (binary_expression "iVar4 + (int)piVar3" identifier + (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , identifier ))) ;) }))) (expression_statement "piVar12 = (int *)((int)piVar12 + (int)piVar17);" (assignment_expression "piVar12 = (int *)((int)piVar12 + (int)piVar17)" identifier = (cast_expression "(int *)((int)piVar12 + (int)piVar17)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + (int)piVar17)" ( (binary_expression "(int)piVar12 + (int)piVar17" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar16 = (int *)((int)piVar16 - (int)piVar17);" (assignment_expression "piVar16 = (int *)((int)piVar16 - (int)piVar17)" identifier = (cast_expression "(int *)((int)piVar16 - (int)piVar17)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 - (int)piVar17)" ( (binary_expression "(int)piVar16 - (int)piVar17" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    uVar2 = (int)piVar3 - (int)piVar11;\n  }" else (compound_statement "{\n    uVar2 = (int)piVar3 - (int)piVar11;\n  }" { (expression_statement "uVar2 = (int)piVar3 - (int)piVar11;" (assignment_expression "uVar2 = (int)piVar3 - (int)piVar11" identifier = (binary_expression "(int)piVar3 - (int)piVar11" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }))) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (if_statement "if (piVar16 == (int *)0x0) goto LAB_000d1a60;" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;)) (expression_statement "iVar15 = puVar19[9];" (assignment_expression "iVar15 = puVar19[9]" identifier = (subscript_expression "puVar19[9]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = *(ushort *)(iVar10 + 0x30);" (assignment_expression "uVar1 = *(ushort *)(iVar10 + 0x30)" identifier = (pointer_expression "*(ushort *)(iVar10 + 0x30)" * (cast_expression "(ushort *)(iVar10 + 0x30)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "iStack_dc = (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1);" (assignment_expression "iStack_dc = (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1)" identifier = (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1)" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))" ( (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220)" * (cast_expression "(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0xbe21c) + 0x2220)" ( (binary_expression "*(int *)(pcVar13 + 0xbe21c) + 0x2220" (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" * (cast_expression "(int *)(pcVar13 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe21c)" ( (binary_expression "pcVar13 + 0xbe21c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(iVar4 + (uint)uVar1)" ( (binary_expression "iVar4 + (uint)uVar1" identifier + (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "uVar18 = iVar15 - 4;" (assignment_expression "uVar18 = iVar15 - 4" identifier = (binary_expression "iVar15 - 4" identifier - number_literal)) ;) (if_statement "if ((*(byte *)(iVar10 + 1) & 4) == 0) {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;\n    if ((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))) {\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }\n    (**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);\n    *(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;\nLAB_000d1bac:\n    uVar23 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }\n  else {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = uVar2 / uVar18;\n    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);\n    if (iVar4 == 0) goto LAB_000d1bac;\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar2 = uVar2 % uVar18;\n    iStack_dc = iVar4;\nLAB_000d1bb8:\n    iVar14 = uVar23 << 2;\n    iVar4 = *(int *)(pcVar13 + 0xbe21c);\n    iVar5 = *(int *)(pcVar13 + 0xbe21c);\n    iVar6 = *(int *)(pcVar13 + 0xbe21c);\n    iVar7 = *(int *)(pcVar13 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  }" if (parenthesized_expression "((*(byte *)(iVar10 + 1) & 4) == 0)" ( (binary_expression "(*(byte *)(iVar10 + 1) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar10 + 1) & 4)" ( (binary_expression "*(byte *)(iVar10 + 1) & 4" (pointer_expression "*(byte *)(iVar10 + 1)" * (cast_expression "(byte *)(iVar10 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 1)" ( (binary_expression "iVar10 + 1" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;\n    if ((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))) {\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }\n    (**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);\n    *(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;\nLAB_000d1bac:\n    uVar23 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }" { (if_statement "if (uVar18 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;" (assignment_expression "uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18" identifier = (binary_expression "((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18" (parenthesized_expression "((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1)" ( (binary_expression "(*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1" (parenthesized_expression "(*(int *)(iVar10 + 0x2c) + -1 + uVar18)" ( (binary_expression "*(int *)(iVar10 + 0x2c) + -1 + uVar18" (binary_expression "*(int *)(iVar10 + 0x2c) + -1" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) + number_literal) + identifier) )) - (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) )) / identifier)) ;) (if_statement "if ((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))) {\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }" if (parenthesized_expression "((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2)))" ( (binary_expression "(*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))" (parenthesized_expression "(*(int *)(iVar10 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar10 + 0xc) == 0" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))" ( (comma_expression "iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2)" (assignment_expression "iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))()" identifier = (call_expression "(*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))()" (parenthesized_expression "(*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))" ( (pointer_expression "*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c))" * (cast_expression "(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c))" ( (binary_expression "&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)" (pointer_expression "&DAT_00001030" & identifier) + (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" * (cast_expression "(int *)(pcVar13 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe21c)" ( (binary_expression "pcVar13 + 0xbe21c" identifier + number_literal) ))))) )))) )) (argument_list "()" ( )))) , (binary_expression "iVar4 < (int)(uVar23 << 2)" identifier < (cast_expression "(int)(uVar23 << 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar23 << 2)" ( (binary_expression "uVar23 << 2" identifier << number_literal) ))))) ))) )) (compound_statement "{\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }" { (expression_statement "iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));" (assignment_expression "iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc))" identifier = (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc))" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))" ( (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944)" * (cast_expression "(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0xbe2c8) + 0x5944)" ( (binary_expression "*(int *)(pcVar13 + 0xbe2c8) + 0x5944" (pointer_expression "*(int *)(pcVar13 + 0xbe2c8)" * (cast_expression "(int *)(pcVar13 + 0xbe2c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe2c8)" ( (binary_expression "pcVar13 + 0xbe2c8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(*(undefined4 *)(iVar10 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" * (cast_expression "(undefined4 *)(iVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }" { (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;) })) (expression_statement "*(int *)(iVar10 + 0xc) = iVar4;" (assignment_expression "*(int *)(iVar10 + 0xc) = iVar4" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "(**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);" (call_expression "(**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbe4c4))" ( (pointer_expression "**(code **)(pcVar13 + 0xbe4c4)" * (pointer_expression "*(code **)(pcVar13 + 0xbe4c4)" * (cast_expression "(code **)(pcVar13 + 0xbe4c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbe4c4)" ( (binary_expression "pcVar13 + 0xbe4c4" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2)" ( (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" * (cast_expression "(undefined4 *)(iVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) , number_literal , (binary_expression "uVar23 << 2" identifier << number_literal) ))) ;) (expression_statement "*(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;" (assignment_expression "*(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4" (pointer_expression "*(byte *)(iVar10 + 1)" * (cast_expression "(byte *)(iVar10 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 1)" ( (binary_expression "iVar10 + 1" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar10 + 1) | 4" (pointer_expression "*(byte *)(iVar10 + 1)" * (cast_expression "(byte *)(iVar10 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 1)" ( (binary_expression "iVar10 + 1" identifier + number_literal) )))) | number_literal)) ;) (labeled_statement "LAB_000d1bac:\n    uVar23 = 0;" statement_identifier : (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;)) (if_statement "if (iStack_dc != 0) goto LAB_000d1bb8;" if (parenthesized_expression "(iStack_dc != 0)" ( (binary_expression "iStack_dc != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1bb8;" goto statement_identifier ;)) }) (else_clause "else {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = uVar2 / uVar18;\n    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);\n    if (iVar4 == 0) goto LAB_000d1bac;\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar2 = uVar2 % uVar18;\n    iStack_dc = iVar4;\nLAB_000d1bb8:\n    iVar14 = uVar23 << 2;\n    iVar4 = *(int *)(pcVar13 + 0xbe21c);\n    iVar5 = *(int *)(pcVar13 + 0xbe21c);\n    iVar6 = *(int *)(pcVar13 + 0xbe21c);\n    iVar7 = *(int *)(pcVar13 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  }" else (compound_statement "{\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = uVar2 / uVar18;\n    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);\n    if (iVar4 == 0) goto LAB_000d1bac;\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar2 = uVar2 % uVar18;\n    iStack_dc = iVar4;\nLAB_000d1bb8:\n    iVar14 = uVar23 << 2;\n    iVar4 = *(int *)(pcVar13 + 0xbe21c);\n    iVar5 = *(int *)(pcVar13 + 0xbe21c);\n    iVar6 = *(int *)(pcVar13 + 0xbe21c);\n    iVar7 = *(int *)(pcVar13 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  }" { (if_statement "if (uVar18 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar23 = uVar2 / uVar18;" (assignment_expression "uVar23 = uVar2 / uVar18" identifier = (binary_expression "uVar2 / uVar18" identifier / identifier)) ;) (expression_statement "iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);" (assignment_expression "iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4)" * (cast_expression "(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0xc) + uVar23 * 4)" ( (binary_expression "*(int *)(iVar10 + 0xc) + uVar23 * 4" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) + (binary_expression "uVar23 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar4 == 0) goto LAB_000d1bac;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000d1bac;" goto statement_identifier ;)) (if_statement "if (uVar18 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar2 = uVar2 % uVar18;" (assignment_expression "uVar2 = uVar2 % uVar18" identifier = (binary_expression "uVar2 % uVar18" identifier % identifier)) ;) (expression_statement "iStack_dc = iVar4;" (assignment_expression "iStack_dc = iVar4" identifier = identifier) ;) (labeled_statement "LAB_000d1bb8:\n    iVar14 = uVar23 << 2;" statement_identifier : (expression_statement "iVar14 = uVar23 << 2;" (assignment_expression "iVar14 = uVar23 << 2" identifier = (binary_expression "uVar23 << 2" identifier << number_literal)) ;)) (expression_statement "iVar4 = *(int *)(pcVar13 + 0xbe21c);" (assignment_expression "iVar4 = *(int *)(pcVar13 + 0xbe21c)" identifier = (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" * (cast_expression "(int *)(pcVar13 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe21c)" ( (binary_expression "pcVar13 + 0xbe21c" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(pcVar13 + 0xbe21c);" (assignment_expression "iVar5 = *(int *)(pcVar13 + 0xbe21c)" identifier = (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" * (cast_expression "(int *)(pcVar13 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe21c)" ( (binary_expression "pcVar13 + 0xbe21c" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar13 + 0xbe21c);" (assignment_expression "iVar6 = *(int *)(pcVar13 + 0xbe21c)" identifier = (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" * (cast_expression "(int *)(pcVar13 + 0xbe21c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe21c)" ( (binary_expression "pcVar13 + 0xbe21c" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar13 + 0xbe2b8);" (assignment_expression "iVar7 = *(int *)(pcVar13 + 0xbe2b8)" identifier = (pointer_expression "*(int *)(pcVar13 + 0xbe2b8)" * (cast_expression "(int *)(pcVar13 + 0xbe2b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe2b8)" ( (binary_expression "pcVar13 + 0xbe2b8" identifier + number_literal) ))))) ;) (do_statement "do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);" do (compound_statement "{\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    }" { (expression_statement "*(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;" (assignment_expression "*(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc" (pointer_expression "*(int *)(*(int *)(iVar10 + 0xc) + iVar14)" * (cast_expression "(int *)(*(int *)(iVar10 + 0xc) + iVar14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0xc) + iVar14)" ( (binary_expression "*(int *)(iVar10 + 0xc) + iVar14" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) + identifier) )))) = identifier) ;) (if_statement "if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }" if (parenthesized_expression "(uVar2 < uVar18)" ( (binary_expression "uVar2 < uVar18" identifier < identifier) )) (compound_statement "{\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }" { (expression_statement "piVar11 = piVar16;" (assignment_expression "piVar11 = piVar16" identifier = identifier) ;) (if_statement "if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }" if (parenthesized_expression "(uVar18 < uVar2 + (int)piVar16)" ( (binary_expression "uVar18 < uVar2 + (int)piVar16" identifier < (binary_expression "uVar2 + (int)piVar16" identifier + (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n          piVar11 = (int *)(uVar18 - uVar2);\n        }" { (expression_statement "piVar11 = (int *)(uVar18 - uVar2);" (assignment_expression "piVar11 = (int *)(uVar18 - uVar2)" identifier = (cast_expression "(int *)(uVar18 - uVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar18 - uVar2)" ( (binary_expression "uVar18 - uVar2" identifier - identifier) )))) ;) })) (if_statement "if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }" if (parenthesized_expression "(local_98 == (undefined *)0x0)" ( (binary_expression "local_98 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }" { (expression_statement "iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);" (assignment_expression "iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2)" identifier = (call_expression "(*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2)" (parenthesized_expression "(*(code *)(iVar4 + 0x491c))" ( (pointer_expression "*(code *)(iVar4 + 0x491c)" * (cast_expression "(code *)(iVar4 + 0x491c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x491c)" ( (binary_expression "iVar4 + 0x491c" identifier + number_literal) )))) )) (argument_list "(*puVar19,iStack_dc,&iStack_d8,2)" ( (pointer_expression "*puVar19" * identifier) , identifier , (pointer_expression "&iStack_d8" & identifier) , number_literal )))) ;) (if_statement "if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }" { (expression_statement "iVar8 = *(int *)(iStack_d8 + 4);" (assignment_expression "iVar8 = *(int *)(iStack_d8 + 4)" identifier = (pointer_expression "*(int *)(iStack_d8 + 4)" * (cast_expression "(int *)(iStack_d8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_d8 + 4)" ( (binary_expression "iStack_d8 + 4" identifier + number_literal) ))))) ;) (expression_statement "iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);" (assignment_expression "iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8)" identifier = (call_expression "(*(code *)(iVar5 + 0x2220))(iVar8)" (parenthesized_expression "(*(code *)(iVar5 + 0x2220))" ( (pointer_expression "*(code *)(iVar5 + 0x2220)" * (cast_expression "(code *)(iVar5 + 0x2220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2220)" ( (binary_expression "iVar5 + 0x2220" identifier + number_literal) )))) )) (argument_list "(iVar8)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);" (call_expression "(**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbe598))" ( (pointer_expression "**(code **)(pcVar13 + 0xbe598)" * (pointer_expression "*(code **)(pcVar13 + 0xbe598)" * (cast_expression "(code **)(pcVar13 + 0xbe598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbe598)" ( (binary_expression "pcVar13 + 0xbe598" identifier + number_literal) ))))) )) (argument_list "(piVar12,iVar8 + uVar2 + 4,piVar11)" ( identifier , (binary_expression "iVar8 + uVar2 + 4" (binary_expression "iVar8 + uVar2" identifier + identifier) + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000d1dcc;" goto statement_identifier ;) })) }) (else_clause "else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }" else (compound_statement "{\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }" { (expression_statement "iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);" (assignment_expression "iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0)" identifier = (call_expression "(*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0)" (parenthesized_expression "(*(code *)(iVar4 + 0x491c))" ( (pointer_expression "*(code *)(iVar4 + 0x491c)" * (cast_expression "(code *)(iVar4 + 0x491c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x491c)" ( (binary_expression "iVar4 + 0x491c" identifier + number_literal) )))) )) (argument_list "(*puVar19,iStack_dc,&iStack_d8,0)" ( (pointer_expression "*puVar19" * identifier) , identifier , (pointer_expression "&iStack_d8" & identifier) , number_literal )))) ;) (expression_statement "iVar8 = iStack_d8;" (assignment_expression "iVar8 = iStack_d8" identifier = identifier) ;) (if_statement "if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }" { (expression_statement "iVar9 = *(int *)(iStack_d8 + 4);" (assignment_expression "iVar9 = *(int *)(iStack_d8 + 4)" identifier = (pointer_expression "*(int *)(iStack_d8 + 4)" * (cast_expression "(int *)(iStack_d8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_d8 + 4)" ( (binary_expression "iStack_d8 + 4" identifier + number_literal) ))))) ;) (expression_statement "iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);" (assignment_expression "iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9)" identifier = (call_expression "(*(code *)(iVar5 + 0x2220))(iVar9)" (parenthesized_expression "(*(code *)(iVar5 + 0x2220))" ( (pointer_expression "*(code *)(iVar5 + 0x2220)" * (cast_expression "(code *)(iVar5 + 0x2220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2220)" ( (binary_expression "iVar5 + 0x2220" identifier + number_literal) )))) )) (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "iVar15 = FUN_000c6d30(iVar8);" (assignment_expression "iVar15 = FUN_000c6d30(iVar8)" identifier = (call_expression "FUN_000c6d30(iVar8)" identifier (argument_list "(iVar8)" ( identifier )))) ;) (if_statement "if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }" { (expression_statement "(**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);" (call_expression "(**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbe598))" ( (pointer_expression "**(code **)(pcVar13 + 0xbe598)" * (pointer_expression "*(code **)(pcVar13 + 0xbe598)" * (cast_expression "(code **)(pcVar13 + 0xbe598)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbe598)" ( (binary_expression "pcVar13 + 0xbe598" identifier + number_literal) ))))) )) (argument_list "(iVar9 + uVar2 + 4,piVar12,piVar11)" ( (binary_expression "iVar9 + uVar2 + 4" (binary_expression "iVar9 + uVar2" identifier + identifier) + number_literal) , identifier , identifier ))) ;) })) (labeled_statement "LAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);" statement_identifier : (expression_statement "(*(code *)(iVar6 + 0x49ec))(iStack_d8);" (call_expression "(*(code *)(iVar6 + 0x49ec))(iStack_d8)" (parenthesized_expression "(*(code *)(iVar6 + 0x49ec))" ( (pointer_expression "*(code *)(iVar6 + 0x49ec)" * (cast_expression "(code *)(iVar6 + 0x49ec)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x49ec)" ( (binary_expression "iVar6 + 0x49ec" identifier + number_literal) )))) )) (argument_list "(iStack_d8)" ( identifier ))) ;)) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) })) }))) (expression_statement "piVar16 = (int *)((int)piVar16 - (int)piVar11);" (assignment_expression "piVar16 = (int *)((int)piVar16 - (int)piVar11)" identifier = (cast_expression "(int *)((int)piVar16 - (int)piVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 - (int)piVar11)" ( (binary_expression "(int)piVar16 - (int)piVar11" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar12 = (int *)((int)piVar12 + (int)piVar11);" (assignment_expression "piVar12 = (int *)((int)piVar12 + (int)piVar11)" identifier = (cast_expression "(int *)((int)piVar12 + (int)piVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + (int)piVar11)" ( (binary_expression "(int)piVar12 + (int)piVar11" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (piVar16 == (int *)0x0) goto LAB_000d1a60;" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;)) }) (else_clause "else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }" else (compound_statement "{\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }" { (expression_statement "iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);" (assignment_expression "iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4)" identifier = (pointer_expression "*(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4)" * (cast_expression "(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0xc) + iVar14 + 4)" ( (binary_expression "*(int *)(iVar10 + 0xc) + iVar14 + 4" (binary_expression "*(int *)(iVar10 + 0xc) + iVar14" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) + identifier) + number_literal) ))))) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (if_statement "if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }" { (expression_statement "iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);" (assignment_expression "iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc)" identifier = (call_expression "(*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc)" (parenthesized_expression "(*(code *)(iVar7 + 0x43f4))" ( (pointer_expression "*(code *)(iVar7 + 0x43f4)" * (cast_expression "(code *)(iVar7 + 0x43f4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x43f4)" ( (binary_expression "iVar7 + 0x43f4" identifier + number_literal) )))) )) (argument_list "(puVar19,iStack_dc,0,&iStack_dc)" ( identifier , identifier , number_literal , (pointer_expression "&iStack_dc" & identifier) )))) ;) (expression_statement "iVar8 = iStack_dc;" (assignment_expression "iVar8 = iStack_dc" identifier = identifier) ;) })) (expression_statement "iStack_dc = iVar8;" (assignment_expression "iStack_dc = iVar8" identifier = identifier) ;) (expression_statement "uVar2 = uVar2 - uVar18;" (assignment_expression "uVar2 = uVar2 - uVar18" identifier = (binary_expression "uVar2 - uVar18" identifier - identifier)) ;) }))) (if_statement "if (iVar15 != 0) goto LAB_000d1a60;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;)) (expression_statement "iVar14 = iVar14 + 4;" (assignment_expression "iVar14 = iVar14 + 4" identifier = (binary_expression "iVar14 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_dc != 0)" ( (binary_expression "iStack_dc != 0" identifier != number_literal) )) ;) (if_statement "if (piVar16 == (int *)0x0) goto LAB_000d1a60;" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000d1a60;" goto statement_identifier ;)) }))) (expression_statement "iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f);" (assignment_expression "iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f)" identifier = (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f)" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))" ( (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" * (cast_expression "(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" ( (binary_expression "*(int *)(pcVar13 + 0xbe2b8) + 0x3b28" (pointer_expression "*(int *)(pcVar13 + 0xbe2b8)" * (cast_expression "(int *)(pcVar13 + 0xbe2b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbe2b8)" ( (binary_expression "pcVar13 + 0xbe2b8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(0x1094f)" ( number_literal )))) ;) (labeled_statement "LAB_000d1a60:\n  if (iStack_d4 != **(int **)(pcVar13 + 0xbe590)) {\n    pcVar13 = *(code **)(pcVar13 + 0xbe564);\n    iVar4 = iStack_d4;\n    (*pcVar13)();\n    if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }\n    return iVar15;\n  }" statement_identifier : (if_statement "if (iStack_d4 != **(int **)(pcVar13 + 0xbe590)) {\n    pcVar13 = *(code **)(pcVar13 + 0xbe564);\n    iVar4 = iStack_d4;\n    (*pcVar13)();\n    if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }\n    return iVar15;\n  }" if (parenthesized_expression "(iStack_d4 != **(int **)(pcVar13 + 0xbe590))" ( (binary_expression "iStack_d4 != **(int **)(pcVar13 + 0xbe590)" identifier != (pointer_expression "**(int **)(pcVar13 + 0xbe590)" * (pointer_expression "*(int **)(pcVar13 + 0xbe590)" * (cast_expression "(int **)(pcVar13 + 0xbe590)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbe590)" ( (binary_expression "pcVar13 + 0xbe590" identifier + number_literal) )))))) )) (compound_statement "{\n    pcVar13 = *(code **)(pcVar13 + 0xbe564);\n    iVar4 = iStack_d4;\n    (*pcVar13)();\n    if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }\n    return iVar15;\n  }" { (expression_statement "pcVar13 = *(code **)(pcVar13 + 0xbe564);" (assignment_expression "pcVar13 = *(code **)(pcVar13 + 0xbe564)" identifier = (pointer_expression "*(code **)(pcVar13 + 0xbe564)" * (cast_expression "(code **)(pcVar13 + 0xbe564)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbe564)" ( (binary_expression "pcVar13 + 0xbe564" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = iStack_d4;" (assignment_expression "iVar4 = iStack_d4" identifier = identifier) ;) (expression_statement "(*pcVar13)();" (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }" if (parenthesized_expression "(*(char *)(iVar4 + 0x45) == '\0')" ( (binary_expression "*(char *)(iVar4 + 0x45) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x45)" * (cast_expression "(char *)(iVar4 + 0x45)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x45)" ( (binary_expression "iVar4 + 0x45" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }" { (expression_statement "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();" (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))()" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))" ( (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" * (cast_expression "(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" ( (binary_expression "*(int *)(pcVar13 + 0xbdd3c) + 0x5c00" (pointer_expression "*(int *)(pcVar13 + 0xbdd3c)" * (cast_expression "(int *)(pcVar13 + 0xbdd3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbdd3c)" ( (binary_expression "pcVar13 + 0xbdd3c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar2 = *(uint *)(iVar4 + 0x2c);" (assignment_expression "uVar2 = *(uint *)(iVar4 + 0x2c)" identifier = (pointer_expression "*(uint *)(iVar4 + 0x2c)" * (cast_expression "(uint *)(iVar4 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2c)" ( (binary_expression "iVar4 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x38) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x38)" * (cast_expression "(undefined4 *)(iVar4 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(iVar4 + 0x3c) = uVar2;" (assignment_expression "*(uint *)(iVar4 + 0x3c) = uVar2" (pointer_expression "*(uint *)(iVar4 + 0x3c)" * (cast_expression "(uint *)(iVar4 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x3c)" ( (binary_expression "iVar4 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);" (assignment_expression "iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2)" identifier = (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2)" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))" ( (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068)" * (cast_expression "(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0xbdd3c) + 0x1068)" ( (binary_expression "*(int *)(pcVar13 + 0xbdd3c) + 0x1068" (pointer_expression "*(int *)(pcVar13 + 0xbdd3c)" * (cast_expression "(int *)(pcVar13 + 0xbdd3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbdd3c)" ( (binary_expression "pcVar13 + 0xbdd3c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(uVar2 + 0x11 < uVar2)" ( (binary_expression "uVar2 + 0x11 < uVar2" (binary_expression "uVar2 + 0x11" identifier + number_literal) < identifier) )))) ;) (if_statement "if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar15 = 7;\n      }" { (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" identifier = number_literal) ;) }) (else_clause "else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }" else (compound_statement "{\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }" { (expression_statement "iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);" (assignment_expression "iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0)" identifier = (call_expression "FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0)" identifier (argument_list "(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar4 + 0x3c)" * (cast_expression "(undefined4 *)(iVar4 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x3c)" ( (binary_expression "iVar4 + 0x3c" identifier + number_literal) )))) , identifier , number_literal )))) ;) (if_statement "if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }" { (expression_statement "(**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);" (call_expression "(**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbdfe4))" ( (pointer_expression "**(code **)(pcVar13 + 0xbdfe4)" * (pointer_expression "*(code **)(pcVar13 + 0xbdfe4)" * (cast_expression "(code **)(pcVar13 + 0xbdfe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbdfe4)" ( (binary_expression "pcVar13 + 0xbdfe4" identifier + number_literal) ))))) )) (argument_list "(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11)" ( (binary_expression "iVar10 + *(int *)(iVar4 + 0x3c)" identifier + (pointer_expression "*(int *)(iVar4 + 0x3c)" * (cast_expression "(int *)(iVar4 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x3c)" ( (binary_expression "iVar4 + 0x3c" identifier + number_literal) ))))) , number_literal , number_literal ))) ;) (expression_statement "*(int *)(iVar4 + 0x10) = iVar10;" (assignment_expression "*(int *)(iVar4 + 0x10) = iVar10" (pointer_expression "*(int *)(iVar4 + 0x10)" * (cast_expression "(int *)(iVar4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }" else (compound_statement "{\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }" { (expression_statement "(**(code **)(pcVar13 + 0xbdb5c))(iVar10);" (call_expression "(**(code **)(pcVar13 + 0xbdb5c))(iVar10)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbdb5c))" ( (pointer_expression "**(code **)(pcVar13 + 0xbdb5c)" * (pointer_expression "*(code **)(pcVar13 + 0xbdb5c)" * (cast_expression "(code **)(pcVar13 + 0xbdb5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar13 + 0xbdb5c)" ( (binary_expression "pcVar13 + 0xbdb5c" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier ))) ;) }))) }))) }) (else_clause "else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }" else (compound_statement "{\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }" { (expression_statement "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();" (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))()" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))" ( (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" * (cast_expression "(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" ( (binary_expression "*(int *)(pcVar13 + 0xbdd3c) + 0x5c00" (pointer_expression "*(int *)(pcVar13 + 0xbdd3c)" * (cast_expression "(int *)(pcVar13 + 0xbdd3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + 0xbdd3c)" ( (binary_expression "pcVar13 + 0xbdd3c" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);" (assignment_expression "*(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24)" (pointer_expression "*(undefined4 *)(iVar4 + 0x3c)" * (cast_expression "(undefined4 *)(iVar4 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x3c)" ( (binary_expression "iVar4 + 0x3c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar4 + 0x24)" * (cast_expression "(undefined4 *)(iVar4 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x24)" ( (binary_expression "iVar4 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);" (assignment_expression "*(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20)" (pointer_expression "*(undefined4 *)(iVar4 + 0x38)" * (cast_expression "(undefined4 *)(iVar4 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" * (cast_expression "(undefined4 *)(iVar4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) }))) (return_statement "return iVar15;" return identifier ;) }))) (return_statement "return iVar15;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) | 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 ( ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( LIT )))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) << LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (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 (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( IDENT , IDENT )))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) + 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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) )) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( ))) ;) (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 = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( LIT )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) , IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + IDENT) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) / 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 IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) )) (argument_list ( )))) , (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , (binary_expression IDENT << LIT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression * IDENT) , IDENT , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (binary_expression IDENT + IDENT) + LIT) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression * IDENT) , IDENT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) + LIT) , IDENT , IDENT ))) ;) })) (labeled_statement statement_identifier : (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 ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( LIT )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , LIT , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }))) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (return_statement return IDENT ;) }))) (return_statement return IDENT ;) })))
(function_definition "int FUN_000d1340(int *param_1,int *param_2,int *param_3,int *param_4)\n\n{\n  ushort uVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  int *unaff_s1;\n  code *unaff_s2;\n  code *pcVar13;\n  int iVar14;\n  int iVar15;\n  int *unaff_s4;\n  int *piVar16;\n  undefined *unaff_s5;\n  int *piVar17;\n  uint uVar18;\n  code *unaff_s6;\n  undefined4 *puVar19;\n  code *unaff_s7;\n  undefined *puVar20;\n  uint unaff_s8;\n  undefined4 uVar21;\n  code *pcVar22;\n  uint uVar23;\n  int iStack_dc;\n  int iStack_d8;\n  int iStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  code *pcStack_c8;\n  int *piStack_c4;\n  int *piStack_c0;\n  undefined *puStack_bc;\n  code *pcStack_b8;\n  code *pcStack_b4;\n  uint uStack_b0;\n  code *pcStack_ac;\n  undefined *local_98;\n  int local_90;\n  int local_8c;\n  int local_88;\n  int *local_84;\n  code *local_80;\n  int *local_7c;\n  int *local_78;\n  undefined4 local_74;\n  undefined4 local_60;\n  int local_50;\n  int local_4c;\n  int aiStack_48 [7];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  if ((int *)param_1[0xb] < param_2) {\n    local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);\n    piVar11 = param_3;\n    piVar12 = param_4;\n  }\n  else {\n    local_60 = 0;\n    piVar12 = (int *)0x0;\n    piVar11 = &local_50;\n    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();\n    local_88 = local_4c;\n    unaff_s4 = param_4;\n    if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_0018fecc) {\n    return local_88;\n  }\n  uVar21 = 0xd1668;\n  iVar4 = local_2c;\n  puVar20 = PTR___stack_chk_fail_0018fea0;\n  (*(code *)PTR___stack_chk_fail_0018fea0)();\n  local_98 = puVar20 + 0xc62b8;\n  local_8c = **(int **)(puVar20 + 0xbe864);\n  local_90 = 0;\n  piVar16 = piVar11;\n  local_84 = unaff_s1;\n  local_80 = unaff_s2;\n  local_7c = param_1;\n  local_78 = unaff_s4;\n  local_74 = uVar21;\n  if (*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0) {\n    piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);\nLAB_000d187c:\n    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));\n    piVar3 = piVar11;\n    uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);\n    *(undefined4 *)(iVar4 + 8) = uVar21;\n    iVar4 = 1;\n  }\n  else {\n    if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }\n    pcVar13 = *(code **)(puVar20 + 0xbe318);\n    param_1 = (int *)(*pcVar13)(*piVar11);\n    piVar3 = (int *)(*pcVar13)(piVar11[1]);\n    unaff_s2 = pcVar13;\n    if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }\n    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);\n    if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(iVar4 + 0xc);\n    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);\n    if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);\n    if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);\n    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();\n    piVar12 = (int *)0x0;\n    if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    piVar16 = &local_90;\n    piVar3 = param_1;\n    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);\n    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }\n    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);\n  }\n  if (local_8c == **(int **)(local_98 + -0x7a54)) {\n    return iVar4;\n  }\n  pcVar13 = *(code **)(local_98 + -0x7a80);\n  pcVar22 = FUN_000d193c;\n  iVar10 = local_8c;\n  (*pcVar13)();\n  iStack_d4 = **(int **)(pcVar13 + 0xbe590);\n  iVar15 = *(int *)(iVar10 + 0x74);\n  puVar19 = *(undefined4 **)(iVar10 + 0x14);\n  iStack_d0 = iVar4;\n  piStack_cc = piVar11;\n  pcStack_c8 = unaff_s2;\n  piStack_c4 = param_1;\n  piStack_c0 = unaff_s4;\n  puStack_bc = unaff_s5;\n  pcStack_b8 = unaff_s6;\n  pcStack_b4 = unaff_s7;\n  uStack_b0 = unaff_s8;\n  pcStack_ac = pcVar22;\n  (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))();\n  iVar4 = *(int *)(iVar10 + 0x28);\n  piVar11 = (int *)(uint)*(ushort *)(iVar10 + 0x30);\n  if ((uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38))) {\n    iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }\n  if (piVar3 < piVar11) {\n    piVar17 = piVar16;\n    if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }\n    if (local_98 == (undefined *)0x0) {\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }\n    else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }\n    piVar12 = (int *)((int)piVar12 + (int)piVar17);\n    piVar16 = (int *)((int)piVar16 - (int)piVar17);\n    uVar2 = 0;\n  }\n  else {\n    uVar2 = (int)piVar3 - (int)piVar11;\n  }\n  iVar15 = 0;\n  if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  iVar15 = puVar19[9];\n  uVar1 = *(ushort *)(iVar10 + 0x30);\n  iStack_dc = (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1);\n  uVar18 = iVar15 - 4;\n  if ((*(byte *)(iVar10 + 1) & 4) == 0) {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;\n    if ((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))) {\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }\n    (**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);\n    *(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;\nLAB_000d1bac:\n    uVar23 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }\n  else {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = uVar2 / uVar18;\n    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);\n    if (iVar4 == 0) goto LAB_000d1bac;\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar2 = uVar2 % uVar18;\n    iStack_dc = iVar4;\nLAB_000d1bb8:\n    iVar14 = uVar23 << 2;\n    iVar4 = *(int *)(pcVar13 + 0xbe21c);\n    iVar5 = *(int *)(pcVar13 + 0xbe21c);\n    iVar6 = *(int *)(pcVar13 + 0xbe21c);\n    iVar7 = *(int *)(pcVar13 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  }\n  iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f);\nLAB_000d1a60:\n  if (iStack_d4 != **(int **)(pcVar13 + 0xbe590)) {\n    pcVar13 = *(code **)(pcVar13 + 0xbe564);\n    iVar4 = iStack_d4;\n    (*pcVar13)();\n    if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }\n    return iVar15;\n  }\n  return iVar15;\n}" (primitive_type "int") (function_declarator "FUN_000d1340(int *param_1,int *param_2,int *param_3,int *param_4)" (identifier "FUN_000d1340") (parameter_list "(int *param_1,int *param_2,int *param_3,int *param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  ushort uVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  int *unaff_s1;\n  code *unaff_s2;\n  code *pcVar13;\n  int iVar14;\n  int iVar15;\n  int *unaff_s4;\n  int *piVar16;\n  undefined *unaff_s5;\n  int *piVar17;\n  uint uVar18;\n  code *unaff_s6;\n  undefined4 *puVar19;\n  code *unaff_s7;\n  undefined *puVar20;\n  uint unaff_s8;\n  undefined4 uVar21;\n  code *pcVar22;\n  uint uVar23;\n  int iStack_dc;\n  int iStack_d8;\n  int iStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  code *pcStack_c8;\n  int *piStack_c4;\n  int *piStack_c0;\n  undefined *puStack_bc;\n  code *pcStack_b8;\n  code *pcStack_b4;\n  uint uStack_b0;\n  code *pcStack_ac;\n  undefined *local_98;\n  int local_90;\n  int local_8c;\n  int local_88;\n  int *local_84;\n  code *local_80;\n  int *local_7c;\n  int *local_78;\n  undefined4 local_74;\n  undefined4 local_60;\n  int local_50;\n  int local_4c;\n  int aiStack_48 [7];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;\n  if ((int *)param_1[0xb] < param_2) {\n    local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);\n    piVar11 = param_3;\n    piVar12 = param_4;\n  }\n  else {\n    local_60 = 0;\n    piVar12 = (int *)0x0;\n    piVar11 = &local_50;\n    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();\n    local_88 = local_4c;\n    unaff_s4 = param_4;\n    if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_0018fecc) {\n    return local_88;\n  }\n  uVar21 = 0xd1668;\n  iVar4 = local_2c;\n  puVar20 = PTR___stack_chk_fail_0018fea0;\n  (*(code *)PTR___stack_chk_fail_0018fea0)();\n  local_98 = puVar20 + 0xc62b8;\n  local_8c = **(int **)(puVar20 + 0xbe864);\n  local_90 = 0;\n  piVar16 = piVar11;\n  local_84 = unaff_s1;\n  local_80 = unaff_s2;\n  local_7c = param_1;\n  local_78 = unaff_s4;\n  local_74 = uVar21;\n  if (*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0) {\n    piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);\nLAB_000d187c:\n    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));\n    piVar3 = piVar11;\n    uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);\n    *(undefined4 *)(iVar4 + 8) = uVar21;\n    iVar4 = 1;\n  }\n  else {\n    if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }\n    pcVar13 = *(code **)(puVar20 + 0xbe318);\n    param_1 = (int *)(*pcVar13)(*piVar11);\n    piVar3 = (int *)(*pcVar13)(piVar11[1]);\n    unaff_s2 = pcVar13;\n    if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }\n    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);\n    if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(iVar4 + 0xc);\n    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);\n    if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);\n    if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);\n    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();\n    piVar12 = (int *)0x0;\n    if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    piVar16 = &local_90;\n    piVar3 = param_1;\n    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);\n    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }\n    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);\n  }\n  if (local_8c == **(int **)(local_98 + -0x7a54)) {\n    return iVar4;\n  }\n  pcVar13 = *(code **)(local_98 + -0x7a80);\n  pcVar22 = FUN_000d193c;\n  iVar10 = local_8c;\n  (*pcVar13)();\n  iStack_d4 = **(int **)(pcVar13 + 0xbe590);\n  iVar15 = *(int *)(iVar10 + 0x74);\n  puVar19 = *(undefined4 **)(iVar10 + 0x14);\n  iStack_d0 = iVar4;\n  piStack_cc = piVar11;\n  pcStack_c8 = unaff_s2;\n  piStack_c4 = param_1;\n  piStack_c0 = unaff_s4;\n  puStack_bc = unaff_s5;\n  pcStack_b8 = unaff_s6;\n  pcStack_b4 = unaff_s7;\n  uStack_b0 = unaff_s8;\n  pcStack_ac = pcVar22;\n  (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))();\n  iVar4 = *(int *)(iVar10 + 0x28);\n  piVar11 = (int *)(uint)*(ushort *)(iVar10 + 0x30);\n  if ((uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38))) {\n    iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }\n  if (piVar3 < piVar11) {\n    piVar17 = piVar16;\n    if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }\n    if (local_98 == (undefined *)0x0) {\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }\n    else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }\n    piVar12 = (int *)((int)piVar12 + (int)piVar17);\n    piVar16 = (int *)((int)piVar16 - (int)piVar17);\n    uVar2 = 0;\n  }\n  else {\n    uVar2 = (int)piVar3 - (int)piVar11;\n  }\n  iVar15 = 0;\n  if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  iVar15 = puVar19[9];\n  uVar1 = *(ushort *)(iVar10 + 0x30);\n  iStack_dc = (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1);\n  uVar18 = iVar15 - 4;\n  if ((*(byte *)(iVar10 + 1) & 4) == 0) {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;\n    if ((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))) {\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }\n    (**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);\n    *(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;\nLAB_000d1bac:\n    uVar23 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }\n  else {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = uVar2 / uVar18;\n    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);\n    if (iVar4 == 0) goto LAB_000d1bac;\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar2 = uVar2 % uVar18;\n    iStack_dc = iVar4;\nLAB_000d1bb8:\n    iVar14 = uVar23 << 2;\n    iVar4 = *(int *)(pcVar13 + 0xbe21c);\n    iVar5 = *(int *)(pcVar13 + 0xbe21c);\n    iVar6 = *(int *)(pcVar13 + 0xbe21c);\n    iVar7 = *(int *)(pcVar13 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  }\n  iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f);\nLAB_000d1a60:\n  if (iStack_d4 != **(int **)(pcVar13 + 0xbe590)) {\n    pcVar13 = *(code **)(pcVar13 + 0xbe564);\n    iVar4 = iStack_d4;\n    (*pcVar13)();\n    if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }\n    return iVar15;\n  }\n  return iVar15;\n}" ({ "{") (declaration "ushort uVar1;" (type_identifier "ushort") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int *unaff_s1;" (primitive_type "int") (pointer_declarator "*unaff_s1" (* "*") (identifier "unaff_s1")) (; ";")) (declaration "code *unaff_s2;" (type_identifier "code") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "code *pcVar13;" (type_identifier "code") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int *unaff_s4;" (primitive_type "int") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "undefined *unaff_s5;" (type_identifier "undefined") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "code *unaff_s6;" (type_identifier "code") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "undefined4 *puVar19;" (type_identifier "undefined4") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "code *unaff_s7;" (type_identifier "code") (pointer_declarator "*unaff_s7" (* "*") (identifier "unaff_s7")) (; ";")) (declaration "undefined *puVar20;" (type_identifier "undefined") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "uint unaff_s8;" (type_identifier "uint") (identifier "unaff_s8") (; ";")) (declaration "undefined4 uVar21;" (type_identifier "undefined4") (identifier "uVar21") (; ";")) (declaration "code *pcVar22;" (type_identifier "code") (pointer_declarator "*pcVar22" (* "*") (identifier "pcVar22")) (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "int iStack_dc;" (primitive_type "int") (identifier "iStack_dc") (; ";")) (declaration "int iStack_d8;" (primitive_type "int") (identifier "iStack_d8") (; ";")) (declaration "int iStack_d4;" (primitive_type "int") (identifier "iStack_d4") (; ";")) (declaration "int iStack_d0;" (primitive_type "int") (identifier "iStack_d0") (; ";")) (declaration "int *piStack_cc;" (primitive_type "int") (pointer_declarator "*piStack_cc" (* "*") (identifier "piStack_cc")) (; ";")) (declaration "code *pcStack_c8;" (type_identifier "code") (pointer_declarator "*pcStack_c8" (* "*") (identifier "pcStack_c8")) (; ";")) (declaration "int *piStack_c4;" (primitive_type "int") (pointer_declarator "*piStack_c4" (* "*") (identifier "piStack_c4")) (; ";")) (declaration "int *piStack_c0;" (primitive_type "int") (pointer_declarator "*piStack_c0" (* "*") (identifier "piStack_c0")) (; ";")) (declaration "undefined *puStack_bc;" (type_identifier "undefined") (pointer_declarator "*puStack_bc" (* "*") (identifier "puStack_bc")) (; ";")) (declaration "code *pcStack_b8;" (type_identifier "code") (pointer_declarator "*pcStack_b8" (* "*") (identifier "pcStack_b8")) (; ";")) (declaration "code *pcStack_b4;" (type_identifier "code") (pointer_declarator "*pcStack_b4" (* "*") (identifier "pcStack_b4")) (; ";")) (declaration "uint uStack_b0;" (type_identifier "uint") (identifier "uStack_b0") (; ";")) (declaration "code *pcStack_ac;" (type_identifier "code") (pointer_declarator "*pcStack_ac" (* "*") (identifier "pcStack_ac")) (; ";")) (declaration "undefined *local_98;" (type_identifier "undefined") (pointer_declarator "*local_98" (* "*") (identifier "local_98")) (; ";")) (declaration "int local_90;" (primitive_type "int") (identifier "local_90") (; ";")) (declaration "int local_8c;" (primitive_type "int") (identifier "local_8c") (; ";")) (declaration "int local_88;" (primitive_type "int") (identifier "local_88") (; ";")) (declaration "int *local_84;" (primitive_type "int") (pointer_declarator "*local_84" (* "*") (identifier "local_84")) (; ";")) (declaration "code *local_80;" (type_identifier "code") (pointer_declarator "*local_80" (* "*") (identifier "local_80")) (; ";")) (declaration "int *local_7c;" (primitive_type "int") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c")) (; ";")) (declaration "int *local_78;" (primitive_type "int") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "undefined4 local_74;" (type_identifier "undefined4") (identifier "local_74") (; ";")) (declaration "undefined4 local_60;" (type_identifier "undefined4") (identifier "local_60") (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "int aiStack_48 [7];" (primitive_type "int") (array_declarator "aiStack_48 [7]" (identifier "aiStack_48") ([ "[") (number_literal "7") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0018fecc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0018fecc" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0018fecc" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0018fecc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0018fecc")))) (; ";")) (if_statement "if ((int *)param_1[0xb] < param_2) {\n    local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);\n    piVar11 = param_3;\n    piVar12 = param_4;\n  }\n  else {\n    local_60 = 0;\n    piVar12 = (int *)0x0;\n    piVar11 = &local_50;\n    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();\n    local_88 = local_4c;\n    unaff_s4 = param_4;\n    if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }\n  }" (if "if") (parenthesized_expression "((int *)param_1[0xb] < param_2)" (( "(") (binary_expression "(int *)param_1[0xb] < param_2" (cast_expression "(int *)param_1[0xb]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]"))) (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n    local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);\n    piVar11 = param_3;\n    piVar12 = param_4;\n  }" ({ "{") (expression_statement "local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);" (assignment_expression "local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6)" (identifier "local_88") (= "=") (call_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3b28))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fbf4 + 0x3b28)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fbf4 + 0x3b28)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fbf4 + 0x3b28)" (( "(") (binary_expression "PTR_LAB_0018fbf4 + 0x3b28" (identifier "PTR_LAB_0018fbf4") (+ "+") (number_literal "0x3b28")) () ")")))) () ")")) (argument_list "(0x119d6)" (( "(") (number_literal "0x119d6") () ")")))) (; ";")) (expression_statement "piVar11 = param_3;" (assignment_expression "piVar11 = param_3" (identifier "piVar11") (= "=") (identifier "param_3")) (; ";")) (expression_statement "piVar12 = param_4;" (assignment_expression "piVar12 = param_4" (identifier "piVar12") (= "=") (identifier "param_4")) (; ";")) (} "}")) (else_clause "else {\n    local_60 = 0;\n    piVar12 = (int *)0x0;\n    piVar11 = &local_50;\n    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();\n    local_88 = local_4c;\n    unaff_s4 = param_4;\n    if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }\n  }" (else "else") (compound_statement "{\n    local_60 = 0;\n    piVar12 = (int *)0x0;\n    piVar11 = &local_50;\n    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();\n    local_88 = local_4c;\n    unaff_s4 = param_4;\n    if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }\n  }" ({ "{") (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" (identifier "piVar12") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar11 = &local_50;" (assignment_expression "piVar11 = &local_50" (identifier "piVar11") (= "=") (pointer_expression "&local_50" (& "&") (identifier "local_50"))) (; ";")) (expression_statement "local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();" (assignment_expression "local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))()" (identifier "local_4c") (= "=") (call_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x46c4))()" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x46c4))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fbf4 + 0x46c4)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fbf4 + 0x46c4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fbf4 + 0x46c4)" (( "(") (binary_expression "PTR_LAB_0018fbf4 + 0x46c4" (identifier "PTR_LAB_0018fbf4") (+ "+") (number_literal "0x46c4")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_88 = local_4c;" (assignment_expression "local_88 = local_4c" (identifier "local_88") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "unaff_s4 = param_4;" (assignment_expression "unaff_s4 = param_4" (identifier "unaff_s4") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (local_4c == 0) {\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }" (if "if") (parenthesized_expression "(local_4c == 0)" (( "(") (binary_expression "local_4c == 0" (identifier "local_4c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }\nLAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;\n      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);\n      local_88 = local_4c;\n    }" ({ "{") (if_statement "if (*(char *)(local_50 + 1) == '\0') {\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }\n      else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }" (if "if") (parenthesized_expression "(*(char *)(local_50 + 1) == '\0')" (( "(") (binary_expression "*(char *)(local_50 + 1) == '\0'" (pointer_expression "*(char *)(local_50 + 1)" (* "*") (cast_expression "(char *)(local_50 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 1)" (( "(") (binary_expression "local_50 + 1" (identifier "local_50") (+ "+") (number_literal "1")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        *(undefined1 *)(local_50 + 1) = 1;\n        puVar20 = PTR_LAB_0018fbb4;\n        uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n        unaff_s8 = (uint)*(byte *)(local_50 + 9);\n        if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }\n        if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }\n        if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }\n      }" ({ "{") (expression_statement "*(undefined1 *)(local_50 + 1) = 1;" (assignment_expression "*(undefined1 *)(local_50 + 1) = 1" (pointer_expression "*(undefined1 *)(local_50 + 1)" (* "*") (cast_expression "(undefined1 *)(local_50 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 1)" (( "(") (binary_expression "local_50 + 1" (identifier "local_50") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar20 = PTR_LAB_0018fbb4;" (assignment_expression "puVar20 = PTR_LAB_0018fbb4" (identifier "puVar20") (= "=") (identifier "PTR_LAB_0018fbb4")) (; ";")) (expression_statement "uVar2 = (uint)*(ushort *)(local_50 + 0x16);" (assignment_expression "uVar2 = (uint)*(ushort *)(local_50 + 0x16)" (identifier "uVar2") (= "=") (binary_expression "(uint)*(ushort *)(local_50 + 0x16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(local_50 + 0x16)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x16)" (( "(") (binary_expression "local_50 + 0x16" (identifier "local_50") (+ "+") (number_literal "0x16")) () ")"))))) (; ";")) (expression_statement "unaff_s8 = (uint)*(byte *)(local_50 + 9);" (assignment_expression "unaff_s8 = (uint)*(byte *)(local_50 + 9)" (identifier "unaff_s8") (= "=") (binary_expression "(uint)*(byte *)(local_50 + 9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_50 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 9)" (( "(") (binary_expression "local_50 + 9" (identifier "local_50") (+ "+") (number_literal "9")) () ")"))))) (; ";")) (if_statement "if (uVar2 != 0) {\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          unaff_s2 = (code *)0x0;\n          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);\n          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);\n          iVar4 = 0;\n          do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);\n        }" ({ "{") (expression_statement "unaff_s2 = (code *)0x0;" (assignment_expression "unaff_s2 = (code *)0x0" (identifier "unaff_s2") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);" (assignment_expression "unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220)" (identifier "unaff_s7") (= "=") (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x2220)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fb58 + 0x2220)" (( "(") (binary_expression "PTR_LAB_0018fb58 + 0x2220" (identifier "PTR_LAB_0018fb58") (+ "+") (number_literal "0x2220")) () ")")))) (; ";")) (expression_statement "unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);" (assignment_expression "unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340)" (identifier "unaff_s6") (= "=") (cast_expression "(code *)(PTR_LAB_0018fbb4 + 0x1340)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fbb4 + 0x1340)" (( "(") (binary_expression "PTR_LAB_0018fbb4 + 0x1340" (identifier "PTR_LAB_0018fbb4") (+ "+") (number_literal "0x1340")) () ")")))) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          } while (iVar4 < (int)uVar2);" (do "do") (compound_statement "{\n            local_4c = 0;\n            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));\n            unaff_s5 = puVar20;\n            if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }\n            local_4c = 0;\n            piVar11 = aiStack_48;\n            param_2 = unaff_s1;\n            local_4c = FUN_000ce738(local_50);\n            if (local_4c != 0) goto LAB_000d1454;\n            iVar4 = iVar4 + 1;\n            uVar2 = (uint)*(ushort *)(local_50 + 0x16);\n            unaff_s2 = unaff_s2 + 2;\n          }" ({ "{") (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)));" (assignment_expression "unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)))" (identifier "unaff_s1") (= "=") (cast_expression "(int *)(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)))" (( "(") (binary_expression "*(int *)(local_50 + 0x38) +\n                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18))" (pointer_expression "*(int *)(local_50 + 0x38)" (* "*") (cast_expression "(int *)(local_50 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x38)" (( "(") (binary_expression "local_50 + 0x38" (identifier "local_50") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (call_expression "(uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18))" (( "(") (binary_expression "*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &\n                                    *(ushort *)(local_50 + 0x18)" (pointer_expression "*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40))" (* "*") (cast_expression "(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40))" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s2 + *(int *)(local_50 + 0x40))" (( "(") (binary_expression "unaff_s2 + *(int *)(local_50 + 0x40)" (identifier "unaff_s2") (+ "+") (pointer_expression "*(int *)(local_50 + 0x40)" (* "*") (cast_expression "(int *)(local_50 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x40)" (( "(") (binary_expression "local_50 + 0x40" (identifier "local_50") (+ "+") (number_literal "0x40")) () ")"))))) () ")")))) (& "&") (pointer_expression "*(ushort *)(local_50 + 0x18)" (* "*") (cast_expression "(ushort *)(local_50 + 0x18)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x18)" (( "(") (binary_expression "local_50 + 0x18" (identifier "local_50") (+ "+") (number_literal "0x18")) () ")"))))) () ")")))) () ")")))) (; ";")) (expression_statement "unaff_s5 = puVar20;" (assignment_expression "unaff_s5 = puVar20" (identifier "unaff_s5") (= "=") (identifier "puVar20")) (; ";")) (if_statement "if (*(char *)(local_50 + 8) == '\0') {\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }" (if "if") (parenthesized_expression "(*(char *)(local_50 + 8) == '\0')" (( "(") (binary_expression "*(char *)(local_50 + 8) == '\0'" (pointer_expression "*(char *)(local_50 + 8)" (* "*") (cast_expression "(char *)(local_50 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 8)" (( "(") (binary_expression "local_50 + 8" (identifier "local_50") (+ "+") (number_literal "8")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              param_2 = (int *)(*unaff_s7)(unaff_s1);\n              piVar11 = (int *)0x1;\n              piVar12 = param_4;\n              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);\n              if (local_4c != 0) goto LAB_000d1454;\n            }" ({ "{") (expression_statement "param_2 = (int *)(*unaff_s7)(unaff_s1);" (assignment_expression "param_2 = (int *)(*unaff_s7)(unaff_s1)" (identifier "param_2") (= "=") (cast_expression "(int *)(*unaff_s7)(unaff_s1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*unaff_s7)(unaff_s1)" (parenthesized_expression "(*unaff_s7)" (( "(") (pointer_expression "*unaff_s7" (* "*") (identifier "unaff_s7")) () ")")) (argument_list "(unaff_s1)" (( "(") (identifier "unaff_s1") () ")"))))) (; ";")) (expression_statement "piVar11 = (int *)0x1;" (assignment_expression "piVar11 = (int *)0x1" (identifier "piVar11") (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "piVar12 = param_4;" (assignment_expression "piVar12 = param_4" (identifier "piVar12") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_4c = (*unaff_s6)(param_1,param_2,1,param_4);" (assignment_expression "local_4c = (*unaff_s6)(param_1,param_2,1,param_4)" (identifier "local_4c") (= "=") (call_expression "(*unaff_s6)(param_1,param_2,1,param_4)" (parenthesized_expression "(*unaff_s6)" (( "(") (pointer_expression "*unaff_s6" (* "*") (identifier "unaff_s6")) () ")")) (argument_list "(param_1,param_2,1,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "1") (, ",") (identifier "param_4") () ")")))) (; ";")) (if_statement "if (local_4c != 0) goto LAB_000d1454;" (if "if") (parenthesized_expression "(local_4c != 0)" (( "(") (binary_expression "local_4c != 0" (identifier "local_4c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000d1454;" (goto "goto") (statement_identifier "LAB_000d1454") (; ";"))) (} "}"))) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar11 = aiStack_48;" (assignment_expression "piVar11 = aiStack_48" (identifier "piVar11") (= "=") (identifier "aiStack_48")) (; ";")) (expression_statement "param_2 = unaff_s1;" (assignment_expression "param_2 = unaff_s1" (identifier "param_2") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "local_4c = FUN_000ce738(local_50);" (assignment_expression "local_4c = FUN_000ce738(local_50)" (identifier "local_4c") (= "=") (call_expression "FUN_000ce738(local_50)" (identifier "FUN_000ce738") (argument_list "(local_50)" (( "(") (identifier "local_50") () ")")))) (; ";")) (if_statement "if (local_4c != 0) goto LAB_000d1454;" (if "if") (parenthesized_expression "(local_4c != 0)" (( "(") (binary_expression "local_4c != 0" (identifier "local_4c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000d1454;" (goto "goto") (statement_identifier "LAB_000d1454") (; ";"))) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar2 = (uint)*(ushort *)(local_50 + 0x16);" (assignment_expression "uVar2 = (uint)*(ushort *)(local_50 + 0x16)" (identifier "uVar2") (= "=") (binary_expression "(uint)*(ushort *)(local_50 + 0x16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(local_50 + 0x16)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x16)" (( "(") (binary_expression "local_50 + 0x16" (identifier "local_50") (+ "+") (number_literal "0x16")) () ")"))))) (; ";")) (expression_statement "unaff_s2 = unaff_s2 + 2;" (assignment_expression "unaff_s2 = unaff_s2 + 2" (identifier "unaff_s2") (= "=") (binary_expression "unaff_s2 + 2" (identifier "unaff_s2") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 < (int)uVar2)" (( "(") (binary_expression "iVar4 < (int)uVar2" (identifier "iVar4") (< "<") (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2"))) () ")")) (; ";")) (} "}"))) (if_statement "if (*(char *)(local_50 + 8) == '\0') {\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }\n        else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }" (if "if") (parenthesized_expression "(*(char *)(local_50 + 8) == '\0')" (( "(") (binary_expression "*(char *)(local_50 + 8) == '\0'" (pointer_expression "*(char *)(local_50 + 8)" (* "*") (cast_expression "(char *)(local_50 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 8)" (( "(") (binary_expression "local_50 + 8" (identifier "local_50") (+ "+") (number_literal "8")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);\n          piVar11 = (int *)0x1;\n          piVar12 = param_4;\n          local_4c = FUN_000d1340(param_1,param_2,1,param_4);\n          if (local_4c != 0) goto LAB_000d1454;\n        }" ({ "{") (expression_statement "param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);" (assignment_expression "param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8)" (identifier "param_2") (= "=") (cast_expression "(int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_0018fb58 + 0x2220))\n                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fb58 + 0x2220))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fb58 + 0x2220)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x2220)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fb58 + 0x2220)" (( "(") (binary_expression "PTR_LAB_0018fb58 + 0x2220" (identifier "PTR_LAB_0018fb58") (+ "+") (number_literal "0x2220")) () ")")))) () ")")) (argument_list "(*(int *)(local_50 + 0x38) + unaff_s8 + 8)" (( "(") (binary_expression "*(int *)(local_50 + 0x38) + unaff_s8 + 8" (binary_expression "*(int *)(local_50 + 0x38) + unaff_s8" (pointer_expression "*(int *)(local_50 + 0x38)" (* "*") (cast_expression "(int *)(local_50 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x38)" (( "(") (binary_expression "local_50 + 0x38" (identifier "local_50") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (identifier "unaff_s8")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "piVar11 = (int *)0x1;" (assignment_expression "piVar11 = (int *)0x1" (identifier "piVar11") (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "piVar12 = param_4;" (assignment_expression "piVar12 = param_4" (identifier "piVar12") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_4c = FUN_000d1340(param_1,param_2,1,param_4);" (assignment_expression "local_4c = FUN_000d1340(param_1,param_2,1,param_4)" (identifier "local_4c") (= "=") (call_expression "FUN_000d1340(param_1,param_2,1,param_4)" (identifier "FUN_000d1340") (argument_list "(param_1,param_2,1,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "1") (, ",") (identifier "param_4") () ")")))) (; ";")) (if_statement "if (local_4c != 0) goto LAB_000d1454;" (if "if") (parenthesized_expression "(local_4c != 0)" (( "(") (binary_expression "local_4c != 0" (identifier "local_4c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000d1454;" (goto "goto") (statement_identifier "LAB_000d1454") (; ";"))) (} "}")) (else_clause "else if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }" (else "else") (if_statement "if (param_4 != (int *)0x0) {\n          *param_4 = *param_4 + uVar2;\n        }" (if "if") (parenthesized_expression "(param_4 != (int *)0x0)" (( "(") (binary_expression "param_4 != (int *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *param_4 = *param_4 + uVar2;\n        }" ({ "{") (expression_statement "*param_4 = *param_4 + uVar2;" (assignment_expression "*param_4 = *param_4 + uVar2" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (binary_expression "*param_4 + uVar2" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (+ "+") (identifier "uVar2"))) (; ";")) (} "}"))))) (if_statement "if (param_3 == (int *)0x0) {\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }\n        else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }" (if "if") (parenthesized_expression "(param_3 == (int *)0x0)" (( "(") (binary_expression "param_3 == (int *)0x0" (identifier "param_3") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));\n          if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }\n        }" ({ "{") (expression_statement "local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));" (assignment_expression "local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48))" (identifier "local_4c") (= "=") (call_expression "FUN_000c6d30(*(undefined4 *)(local_50 + 0x48))" (identifier "FUN_000c6d30") (argument_list "(*(undefined4 *)(local_50 + 0x48))" (( "(") (pointer_expression "*(undefined4 *)(local_50 + 0x48)" (* "*") (cast_expression "(undefined4 *)(local_50 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x48)" (( "(") (binary_expression "local_50 + 0x48" (identifier "local_50") (+ "+") (number_literal "0x48")) () ")")))) () ")")))) (; ";")) (if_statement "if (local_4c == 0) {\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }" (if "if") (parenthesized_expression "(local_4c == 0)" (( "(") (binary_expression "local_4c == 0" (identifier "local_4c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);\n            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();\n          }" ({ "{") (expression_statement "param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);" (assignment_expression "param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8)" (identifier "param_2") (= "=") (cast_expression "(int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8)" (( "(") (binary_expression "*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8" (pointer_expression "*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8)" (* "*") (cast_expression "(byte *)(*(int *)(local_50 + 0x38) + unaff_s8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_50 + 0x38) + unaff_s8)" (( "(") (binary_expression "*(int *)(local_50 + 0x38) + unaff_s8" (pointer_expression "*(int *)(local_50 + 0x38)" (* "*") (cast_expression "(int *)(local_50 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x38)" (( "(") (binary_expression "local_50 + 0x38" (identifier "local_50") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (identifier "unaff_s8")) () ")")))) (| "|") (number_literal "8")) () ")")))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();" (call_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3c90))()" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3c90))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fbf4 + 0x3c90)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fbf4 + 0x3c90)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fbf4 + 0x3c90)" (( "(") (binary_expression "PTR_LAB_0018fbf4 + 0x3c90" (identifier "PTR_LAB_0018fbf4") (+ "+") (number_literal "0x3c90")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }" (else "else") (compound_statement "{\n          param_2 = &local_4c;\n          FUN_000ce9ec(local_50);\n        }" ({ "{") (expression_statement "param_2 = &local_4c;" (assignment_expression "param_2 = &local_4c" (identifier "param_2") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "FUN_000ce9ec(local_50);" (call_expression "FUN_000ce9ec(local_50)" (identifier "FUN_000ce9ec") (argument_list "(local_50)" (( "(") (identifier "local_50") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }" (else "else") (compound_statement "{\n        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);\n      }" ({ "{") (expression_statement "local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);" (assignment_expression "local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db)" (identifier "local_4c") (= "=") (call_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fbf4 + 0x3b28))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fbf4 + 0x3b28)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fbf4 + 0x3b28)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fbf4 + 0x3b28)" (( "(") (binary_expression "PTR_LAB_0018fbf4 + 0x3b28" (identifier "PTR_LAB_0018fbf4") (+ "+") (number_literal "0x3b28")) () ")")))) () ")")) (argument_list "(0x119db)" (( "(") (number_literal "0x119db") () ")")))) (; ";")) (} "}")))) (labeled_statement "LAB_000d1454:\n      *(undefined1 *)(local_50 + 1) = 0;" (statement_identifier "LAB_000d1454") (: ":") (expression_statement "*(undefined1 *)(local_50 + 1) = 0;" (assignment_expression "*(undefined1 *)(local_50 + 1) = 0" (pointer_expression "*(undefined1 *)(local_50 + 1)" (* "*") (cast_expression "(undefined1 *)(local_50 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 1)" (( "(") (binary_expression "local_50 + 1" (identifier "local_50") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (expression_statement "(*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);" (call_expression "(*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50)" (parenthesized_expression "(*(code *)(PTR_LAB_0018fb58 + 0x5aac))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0018fb58 + 0x5aac)" (* "*") (cast_expression "(code *)(PTR_LAB_0018fb58 + 0x5aac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0018fb58 + 0x5aac)" (( "(") (binary_expression "PTR_LAB_0018fb58 + 0x5aac" (identifier "PTR_LAB_0018fb58") (+ "+") (number_literal "0x5aac")) () ")")))) () ")")) (argument_list "(local_50)" (( "(") (identifier "local_50") () ")"))) (; ";")) (expression_statement "local_88 = local_4c;" (assignment_expression "local_88 = local_4c" (identifier "local_88") (= "=") (identifier "local_4c")) (; ";")) (} "}"))) (} "}")))) (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_0018fecc) {\n    return local_88;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_0018fecc)" (( "(") (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_0018fecc" (identifier "local_2c") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_0018fecc" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0018fecc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0018fecc")))) () ")")) (compound_statement "{\n    return local_88;\n  }" ({ "{") (return_statement "return local_88;" (return "return") (identifier "local_88") (; ";")) (} "}"))) (expression_statement "uVar21 = 0xd1668;" (assignment_expression "uVar21 = 0xd1668" (identifier "uVar21") (= "=") (number_literal "0xd1668")) (; ";")) (expression_statement "iVar4 = local_2c;" (assignment_expression "iVar4 = local_2c" (identifier "iVar4") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar20 = PTR___stack_chk_fail_0018fea0;" (assignment_expression "puVar20 = PTR___stack_chk_fail_0018fea0" (identifier "puVar20") (= "=") (identifier "PTR___stack_chk_fail_0018fea0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0018fea0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0018fea0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0018fea0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0018fea0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0018fea0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0018fea0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_98 = puVar20 + 0xc62b8;" (assignment_expression "local_98 = puVar20 + 0xc62b8" (identifier "local_98") (= "=") (binary_expression "puVar20 + 0xc62b8" (identifier "puVar20") (+ "+") (number_literal "0xc62b8"))) (; ";")) (expression_statement "local_8c = **(int **)(puVar20 + 0xbe864);" (assignment_expression "local_8c = **(int **)(puVar20 + 0xbe864)" (identifier "local_8c") (= "=") (pointer_expression "**(int **)(puVar20 + 0xbe864)" (* "*") (pointer_expression "*(int **)(puVar20 + 0xbe864)" (* "*") (cast_expression "(int **)(puVar20 + 0xbe864)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0xbe864)" (( "(") (binary_expression "puVar20 + 0xbe864" (identifier "puVar20") (+ "+") (number_literal "0xbe864")) () ")")))))) (; ";")) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" (identifier "local_90") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar16 = piVar11;" (assignment_expression "piVar16 = piVar11" (identifier "piVar16") (= "=") (identifier "piVar11")) (; ";")) (expression_statement "local_84 = unaff_s1;" (assignment_expression "local_84 = unaff_s1" (identifier "local_84") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "local_80 = unaff_s2;" (assignment_expression "local_80 = unaff_s2" (identifier "local_80") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "local_7c = param_1;" (assignment_expression "local_7c = param_1" (identifier "local_7c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_78 = unaff_s4;" (assignment_expression "local_78 = unaff_s4" (identifier "local_78") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "local_74 = uVar21;" (assignment_expression "local_74 = uVar21" (identifier "local_74") (= "=") (identifier "uVar21")) (; ";")) (if_statement "if (*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0) {\n    piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);\nLAB_000d187c:\n    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));\n    piVar3 = piVar11;\n    uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);\n    *(undefined4 *)(iVar4 + 8) = uVar21;\n    iVar4 = 1;\n  }\n  else {\n    if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }\n    pcVar13 = *(code **)(puVar20 + 0xbe318);\n    param_1 = (int *)(*pcVar13)(*piVar11);\n    piVar3 = (int *)(*pcVar13)(piVar11[1]);\n    unaff_s2 = pcVar13;\n    if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }\n    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);\n    if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(iVar4 + 0xc);\n    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);\n    if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);\n    if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);\n    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();\n    piVar12 = (int *)0x0;\n    if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    piVar16 = &local_90;\n    piVar3 = param_1;\n    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);\n    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }\n    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0)" (( "(") (binary_expression "*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0" (binary_expression "*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3" (pointer_expression "*(int *)(*(int *)(iVar4 + 0xc) + 0x24)" (* "*") (cast_expression "(int *)(*(int *)(iVar4 + 0xc) + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 0xc) + 0x24)" (( "(") (binary_expression "*(int *)(iVar4 + 0xc) + 0x24" (pointer_expression "*(int *)(iVar4 + 0xc)" (* "*") (cast_expression "(int *)(iVar4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x24")) () ")")))) (<< "<<") (number_literal "3")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);\nLAB_000d187c:\n    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));\n    piVar3 = piVar11;\n    uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);\n    *(undefined4 *)(iVar4 + 8) = uVar21;\n    iVar4 = 1;\n  }" ({ "{") (expression_statement "piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);" (assignment_expression "piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564)" (identifier "piVar11") (= "=") (cast_expression "(int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar20 + 0xbe2f4) + -0x4564)" (( "(") (binary_expression "*(int *)(puVar20 + 0xbe2f4) + -0x4564" (pointer_expression "*(int *)(puVar20 + 0xbe2f4)" (* "*") (cast_expression "(int *)(puVar20 + 0xbe2f4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0xbe2f4)" (( "(") (binary_expression "puVar20 + 0xbe2f4" (identifier "puVar20") (+ "+") (number_literal "0xbe2f4")) () ")")))) (+ "+") (number_literal "-0x4564")) () ")")))) (; ";")) (labeled_statement "LAB_000d187c:\n    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));" (statement_identifier "LAB_000d187c") (: ":") (expression_statement "(**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));" (call_expression "(**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8))" (parenthesized_expression "(**(code **)(local_98 + -0x7fa8))" (( "(") (pointer_expression "**(code **)(local_98 + -0x7fa8)" (* "*") (pointer_expression "*(code **)(local_98 + -0x7fa8)" (* "*") (cast_expression "(code **)(local_98 + -0x7fa8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_98 + -0x7fa8)" (( "(") (binary_expression "local_98 + -0x7fa8" (identifier "local_98") (+ "+") (number_literal "-0x7fa8")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar4 + 8))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";"))) (expression_statement "piVar3 = piVar11;" (assignment_expression "piVar3 = piVar11" (identifier "piVar3") (= "=") (identifier "piVar11")) (; ";")) (expression_statement "uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);" (assignment_expression "uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0)" (identifier "uVar21") (= "=") (call_expression "sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0)" (identifier "sqlite3_mprintf") (argument_list "(*(int *)(local_98 + -0x7fc4) + -0x60a0)" (( "(") (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x60a0" (pointer_expression "*(int *)(local_98 + -0x7fc4)" (* "*") (cast_expression "(int *)(local_98 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_98 + -0x7fc4)" (( "(") (binary_expression "local_98 + -0x7fc4" (identifier "local_98") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x60a0")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 8) = uVar21;" (assignment_expression "*(undefined4 *)(iVar4 + 8) = uVar21" (pointer_expression "*(undefined4 *)(iVar4 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar21")) (; ";")) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" (identifier "iVar4") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n    if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }\n    pcVar13 = *(code **)(puVar20 + 0xbe318);\n    param_1 = (int *)(*pcVar13)(*piVar11);\n    piVar3 = (int *)(*pcVar13)(piVar11[1]);\n    unaff_s2 = pcVar13;\n    if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }\n    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);\n    if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(iVar4 + 0xc);\n    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);\n    if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);\n    if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);\n    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();\n    piVar12 = (int *)0x0;\n    if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    piVar16 = &local_90;\n    piVar3 = param_1;\n    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);\n    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }\n    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);\n  }" (else "else") (compound_statement "{\n    if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }\n    pcVar13 = *(code **)(puVar20 + 0xbe318);\n    param_1 = (int *)(*pcVar13)(*piVar11);\n    piVar3 = (int *)(*pcVar13)(piVar11[1]);\n    unaff_s2 = pcVar13;\n    if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }\n    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);\n    if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(iVar4 + 0xc);\n    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);\n    if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }\n    if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);\n    if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }\n    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);\n    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();\n    piVar12 = (int *)0x0;\n    if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }\n    piVar16 = &local_90;\n    piVar3 = param_1;\n    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);\n    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }\n    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);\n  }" ({ "{") (if_statement "if (param_2 == (int *)0x1) {\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }" (if "if") (parenthesized_expression "(param_2 == (int *)0x1)" (( "(") (binary_expression "param_2 == (int *)0x1" (identifier "param_2") (== "==") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);\n      goto LAB_000d187c;\n    }" ({ "{") (expression_statement "piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);" (assignment_expression "piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558)" (identifier "piVar11") (= "=") (cast_expression "(int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar20 + 0xbe2f4) + -0x4558)" (( "(") (binary_expression "*(int *)(puVar20 + 0xbe2f4) + -0x4558" (pointer_expression "*(int *)(puVar20 + 0xbe2f4)" (* "*") (cast_expression "(int *)(puVar20 + 0xbe2f4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0xbe2f4)" (( "(") (binary_expression "puVar20 + 0xbe2f4" (identifier "puVar20") (+ "+") (number_literal "0xbe2f4")) () ")")))) (+ "+") (number_literal "-0x4558")) () ")")))) (; ";")) (goto_statement "goto LAB_000d187c;" (goto "goto") (statement_identifier "LAB_000d187c") (; ";")) (} "}"))) (expression_statement "pcVar13 = *(code **)(puVar20 + 0xbe318);" (assignment_expression "pcVar13 = *(code **)(puVar20 + 0xbe318)" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)(puVar20 + 0xbe318)" (* "*") (cast_expression "(code **)(puVar20 + 0xbe318)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0xbe318)" (( "(") (binary_expression "puVar20 + 0xbe318" (identifier "puVar20") (+ "+") (number_literal "0xbe318")) () ")"))))) (; ";")) (expression_statement "param_1 = (int *)(*pcVar13)(*piVar11);" (assignment_expression "param_1 = (int *)(*pcVar13)(*piVar11)" (identifier "param_1") (= "=") (cast_expression "(int *)(*pcVar13)(*piVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar13)(*piVar11)" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "(*piVar11)" (( "(") (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) () ")"))))) (; ";")) (expression_statement "piVar3 = (int *)(*pcVar13)(piVar11[1]);" (assignment_expression "piVar3 = (int *)(*pcVar13)(piVar11[1])" (identifier "piVar3") (= "=") (cast_expression "(int *)(*pcVar13)(piVar11[1])" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar13)(piVar11[1])" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "(piVar11[1])" (( "(") (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) () ")"))))) (; ";")) (expression_statement "unaff_s2 = pcVar13;" (assignment_expression "unaff_s2 = pcVar13" (identifier "unaff_s2") (= "=") (identifier "pcVar13")) (; ";")) (if_statement "if (param_1 != piVar3) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }" (if "if") (parenthesized_expression "(param_1 != piVar3)" (( "(") (binary_expression "param_1 != piVar3" (identifier "param_1") (!= "!=") (identifier "piVar3")) () ")")) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);\n      goto LAB_000d187c;\n    }" ({ "{") (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538)" (identifier "piVar11") (= "=") (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4538)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4538)" (( "(") (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4538" (pointer_expression "*(int *)(local_98 + -0x7fc4)" (* "*") (cast_expression "(int *)(local_98 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_98 + -0x7fc4)" (( "(") (binary_expression "local_98 + -0x7fc4" (identifier "local_98") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x4538")) () ")")))) (; ";")) (goto_statement "goto LAB_000d187c;" (goto "goto") (statement_identifier "LAB_000d187c") (; ";")) (} "}"))) (expression_statement "iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);" (assignment_expression "iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4])" (identifier "iVar10") (= "=") (call_expression "(**(code **)(local_98 + -0x7fa4))(piVar11[4])" (parenthesized_expression "(**(code **)(local_98 + -0x7fa4))" (( "(") (pointer_expression "**(code **)(local_98 + -0x7fa4)" (* "*") (pointer_expression "*(code **)(local_98 + -0x7fa4)" (* "*") (cast_expression "(code **)(local_98 + -0x7fa4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_98 + -0x7fa4)" (( "(") (binary_expression "local_98 + -0x7fa4" (identifier "local_98") (+ "+") (number_literal "-0x7fa4")) () ")"))))) () ")")) (argument_list "(piVar11[4])" (( "(") (subscript_expression "piVar11[4]" (identifier "piVar11") ([ "[") (number_literal "4") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }" ({ "{") (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548)" (identifier "piVar11") (= "=") (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4548)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4548)" (( "(") (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4548" (pointer_expression "*(int *)(local_98 + -0x7fc4)" (* "*") (cast_expression "(int *)(local_98 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_98 + -0x7fc4)" (( "(") (binary_expression "local_98 + -0x7fc4" (identifier "local_98") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x4548")) () ")")))) (; ";")) (goto_statement "goto LAB_000d187c;" (goto "goto") (statement_identifier "LAB_000d187c") (; ";")) (} "}"))) (expression_statement "unaff_s2 = *(code **)(iVar4 + 0xc);" (assignment_expression "unaff_s2 = *(code **)(iVar4 + 0xc)" (identifier "unaff_s2") (= "=") (pointer_expression "*(code **)(iVar4 + 0xc)" (* "*") (cast_expression "(code **)(iVar4 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);" (assignment_expression "iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10)" (identifier "iVar10") (= "=") (call_expression "(*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10)" (parenthesized_expression "(*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))" (( "(") (pointer_expression "*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c)" (* "*") (cast_expression "(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_98 + -0x7d64) + -0x6d2c)" (( "(") (binary_expression "*(int *)(local_98 + -0x7d64) + -0x6d2c" (pointer_expression "*(int *)(local_98 + -0x7d64)" (* "*") (cast_expression "(int *)(local_98 + -0x7d64)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_98 + -0x7d64)" (( "(") (binary_expression "local_98 + -0x7d64" (identifier "local_98") (+ "+") (number_literal "-0x7d64")) () ")")))) (+ "+") (number_literal "-0x6d2c")) () ")")))) () ")")) (argument_list "(unaff_s2,iVar10)" (( "(") (identifier "unaff_s2") (, ",") (identifier "iVar10") () ")")))) (; ";")) (if_statement "if (iVar10 < 0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }" (if "if") (parenthesized_expression "(iVar10 < 0)" (( "(") (binary_expression "iVar10 < 0" (identifier "iVar10") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);\n      goto LAB_000d187c;\n    }" ({ "{") (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548)" (identifier "piVar11") (= "=") (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4548)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4548)" (( "(") (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4548" (pointer_expression "*(int *)(local_98 + -0x7fc4)" (* "*") (cast_expression "(int *)(local_98 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_98 + -0x7fc4)" (( "(") (binary_expression "local_98 + -0x7fc4" (identifier "local_98") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x4548")) () ")")))) (; ";")) (goto_statement "goto LAB_000d187c;" (goto "goto") (statement_identifier "LAB_000d187c") (; ";")) (} "}"))) (if_statement "if (param_1 == (int *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" (if "if") (parenthesized_expression "(param_1 == (int *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" ({ "{") (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" (identifier "piVar11") (= "=") (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4584)" (( "(") (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4584" (pointer_expression "*(int *)(local_98 + -0x7fc4)" (* "*") (cast_expression "(int *)(local_98 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_98 + -0x7fc4)" (( "(") (binary_expression "local_98 + -0x7fc4" (identifier "local_98") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x4584")) () ")")))) (; ";")) (goto_statement "goto LAB_000d187c;" (goto "goto") (statement_identifier "LAB_000d187c") (; ";")) (} "}"))) (expression_statement "unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);" (assignment_expression "unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4)" (identifier "unaff_s2") (= "=") (pointer_expression "*(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4)" (* "*") (cast_expression "(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4)" (( "(") (binary_expression "*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4" (binary_expression "*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10" (pointer_expression "*(int *)(unaff_s2 + 0x10)" (* "*") (cast_expression "(int *)(unaff_s2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s2 + 0x10)" (( "(") (binary_expression "unaff_s2 + 0x10" (identifier "unaff_s2") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (binary_expression "iVar10 * 0x10" (identifier "iVar10") (* "*") (number_literal "0x10"))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (unaff_s2 == (code *)0x0) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" (if "if") (parenthesized_expression "(unaff_s2 == (code *)0x0)" (( "(") (binary_expression "unaff_s2 == (code *)0x0" (identifier "unaff_s2") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" ({ "{") (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" (identifier "piVar11") (= "=") (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4584)" (( "(") (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4584" (pointer_expression "*(int *)(local_98 + -0x7fc4)" (* "*") (cast_expression "(int *)(local_98 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_98 + -0x7fc4)" (( "(") (binary_expression "local_98 + -0x7fc4" (identifier "local_98") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x4584")) () ")")))) (; ";")) (goto_statement "goto LAB_000d187c;" (goto "goto") (statement_identifier "LAB_000d187c") (; ";")) (} "}"))) (if_statement "if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" (if "if") (parenthesized_expression "(*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1)" (( "(") (binary_expression "*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1" (pointer_expression "*(int **)(*(int *)(unaff_s2 + 4) + 0x2c)" (* "*") (cast_expression "(int **)(*(int *)(unaff_s2 + 4) + 0x2c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(unaff_s2 + 4) + 0x2c)" (( "(") (binary_expression "*(int *)(unaff_s2 + 4) + 0x2c" (pointer_expression "*(int *)(unaff_s2 + 4)" (* "*") (cast_expression "(int *)(unaff_s2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s2 + 4)" (( "(") (binary_expression "unaff_s2 + 4" (identifier "unaff_s2") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (< "<") (identifier "param_1")) () ")")) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);\n      goto LAB_000d187c;\n    }" ({ "{") (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" (identifier "piVar11") (= "=") (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4584)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4584)" (( "(") (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4584" (pointer_expression "*(int *)(local_98 + -0x7fc4)" (* "*") (cast_expression "(int *)(local_98 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_98 + -0x7fc4)" (( "(") (binary_expression "local_98 + -0x7fc4" (identifier "local_98") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x4584")) () ")")))) (; ";")) (goto_statement "goto LAB_000d187c;" (goto "goto") (statement_identifier "LAB_000d187c") (; ";")) (} "}"))) (if_statement "if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04') {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }" (if "if") (parenthesized_expression "(*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04')" (( "(") (binary_expression "*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=\n        '\x04'" (pointer_expression "*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0)" (* "*") (cast_expression "(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0)" (( "(") (binary_expression "(*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0" (binary_expression "(*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4)" (parenthesized_expression "(*(ushort *)(piVar11[3] + 8) & 0x1f)" (( "(") (binary_expression "*(ushort *)(piVar11[3] + 8) & 0x1f" (pointer_expression "*(ushort *)(piVar11[3] + 8)" (* "*") (cast_expression "(ushort *)(piVar11[3] + 8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar11[3] + 8)" (( "(") (binary_expression "piVar11[3] + 8" (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x1f")) () ")")) (+ "+") (pointer_expression "*(int *)(local_98 + -0x7fc4)" (* "*") (cast_expression "(int *)(local_98 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_98 + -0x7fc4)" (( "(") (binary_expression "local_98 + -0x7fc4" (identifier "local_98") (+ "+") (number_literal "-0x7fc4")) () ")"))))) (+ "+") (number_literal "0x65d0")) () ")")))) (!= "!=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")")) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }" ({ "{") (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574)" (identifier "piVar11") (= "=") (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4574)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4574)" (( "(") (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4574" (pointer_expression "*(int *)(local_98 + -0x7fc4)" (* "*") (cast_expression "(int *)(local_98 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_98 + -0x7fc4)" (( "(") (binary_expression "local_98 + -0x7fc4" (identifier "local_98") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x4574")) () ")")))) (; ";")) (goto_statement "goto LAB_000d187c;" (goto "goto") (statement_identifier "LAB_000d187c") (; ";")) (} "}"))) (expression_statement "unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);" (assignment_expression "unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20)" (identifier "unaff_s4") (= "=") (pointer_expression "*(int **)(*(int *)(unaff_s2 + 4) + 0x20)" (* "*") (cast_expression "(int **)(*(int *)(unaff_s2 + 4) + 0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(unaff_s2 + 4) + 0x20)" (( "(") (binary_expression "*(int *)(unaff_s2 + 4) + 0x20" (pointer_expression "*(int *)(unaff_s2 + 4)" (* "*") (cast_expression "(int *)(unaff_s2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s2 + 4)" (( "(") (binary_expression "unaff_s2 + 4" (identifier "unaff_s2") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();" (assignment_expression "piVar3 = (int *)(**(code **)(local_98 + -0x7f60))()" (identifier "piVar3") (= "=") (cast_expression "(int *)(**(code **)(local_98 + -0x7f60))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(local_98 + -0x7f60))()" (parenthesized_expression "(**(code **)(local_98 + -0x7f60))" (( "(") (pointer_expression "**(code **)(local_98 + -0x7f60)" (* "*") (pointer_expression "*(code **)(local_98 + -0x7f60)" (* "*") (cast_expression "(code **)(local_98 + -0x7f60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_98 + -0x7f60)" (( "(") (binary_expression "local_98 + -0x7f60" (identifier "local_98") (+ "+") (number_literal "-0x7f60")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" (identifier "piVar12") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (piVar3 != unaff_s4) {\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }" (if "if") (parenthesized_expression "(piVar3 != unaff_s4)" (( "(") (binary_expression "piVar3 != unaff_s4" (identifier "piVar3") (!= "!=") (identifier "unaff_s4")) () ")")) (compound_statement "{\n      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);\n      goto LAB_000d187c;\n    }" ({ "{") (expression_statement "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);" (assignment_expression "piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574)" (identifier "piVar11") (= "=") (cast_expression "(int *)(*(int *)(local_98 + -0x7fc4) + -0x4574)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_98 + -0x7fc4) + -0x4574)" (( "(") (binary_expression "*(int *)(local_98 + -0x7fc4) + -0x4574" (pointer_expression "*(int *)(local_98 + -0x7fc4)" (* "*") (cast_expression "(int *)(local_98 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_98 + -0x7fc4)" (( "(") (binary_expression "local_98 + -0x7fc4" (identifier "local_98") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "-0x4574")) () ")")))) (; ";")) (goto_statement "goto LAB_000d187c;" (goto "goto") (statement_identifier "LAB_000d187c") (; ";")) (} "}"))) (expression_statement "piVar16 = &local_90;" (assignment_expression "piVar16 = &local_90" (identifier "piVar16") (= "=") (pointer_expression "&local_90" (& "&") (identifier "local_90"))) (; ";")) (expression_statement "piVar3 = param_1;" (assignment_expression "piVar3 = param_1" (identifier "piVar3") (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);" (assignment_expression "iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0)" (identifier "iVar4") (= "=") (call_expression "(*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))\n                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0)" (parenthesized_expression "(*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))" (( "(") (pointer_expression "*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c)" (* "*") (cast_expression "(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_98 + -0x7dc8) + 0x491c)" (( "(") (binary_expression "*(int *)(local_98 + -0x7dc8) + 0x491c" (pointer_expression "*(int *)(local_98 + -0x7dc8)" (* "*") (cast_expression "(int *)(local_98 + -0x7dc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_98 + -0x7dc8)" (( "(") (binary_expression "local_98 + -0x7dc8" (identifier "local_98") (+ "+") (number_literal "-0x7dc8")) () ")")))) (+ "+") (number_literal "0x491c")) () ")")))) () ")")) (argument_list "(**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0)" (( "(") (pointer_expression "**(undefined4 **)(unaff_s2 + 4)" (* "*") (pointer_expression "*(undefined4 **)(unaff_s2 + 4)" (* "*") (cast_expression "(undefined4 **)(unaff_s2 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_s2 + 4)" (( "(") (binary_expression "unaff_s2 + 4" (identifier "unaff_s2") (+ "+") (number_literal "4")) () ")"))))) (, ",") (identifier "param_1") (, ",") (identifier "piVar16") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }" (if "if") (parenthesized_expression "((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0))" (( "(") (binary_expression "(iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)" (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = FUN_000c6d30(local_90), iVar4 == 0)" (( "(") (comma_expression "iVar4 = FUN_000c6d30(local_90), iVar4 == 0" (assignment_expression "iVar4 = FUN_000c6d30(local_90)" (identifier "iVar4") (= "=") (call_expression "FUN_000c6d30(local_90)" (identifier "FUN_000c6d30") (argument_list "(local_90)" (( "(") (identifier "local_90") () ")")))) (, ",") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      unaff_s2 = *(code **)(local_90 + 4);\n      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);\n      piVar16 = unaff_s4;\n      (**(code **)(local_98 + -0x7a4c))(unaff_s2);\n    }" ({ "{") (expression_statement "unaff_s2 = *(code **)(local_90 + 4);" (assignment_expression "unaff_s2 = *(code **)(local_90 + 4)" (identifier "unaff_s2") (= "=") (pointer_expression "*(code **)(local_90 + 4)" (* "*") (cast_expression "(code **)(local_90 + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_90 + 4)" (( "(") (binary_expression "local_90 + 4" (identifier "local_90") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);" (assignment_expression "piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3])" (identifier "piVar3") (= "=") (cast_expression "(int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3])" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(local_98 + -0x7f5c))(piVar11[3])" (parenthesized_expression "(**(code **)(local_98 + -0x7f5c))" (( "(") (pointer_expression "**(code **)(local_98 + -0x7f5c)" (* "*") (pointer_expression "*(code **)(local_98 + -0x7f5c)" (* "*") (cast_expression "(code **)(local_98 + -0x7f5c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_98 + -0x7f5c)" (( "(") (binary_expression "local_98 + -0x7f5c" (identifier "local_98") (+ "+") (number_literal "-0x7f5c")) () ")"))))) () ")")) (argument_list "(piVar11[3])" (( "(") (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]")) () ")"))))) (; ";")) (expression_statement "piVar16 = unaff_s4;" (assignment_expression "piVar16 = unaff_s4" (identifier "piVar16") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "(**(code **)(local_98 + -0x7a4c))(unaff_s2);" (call_expression "(**(code **)(local_98 + -0x7a4c))(unaff_s2)" (parenthesized_expression "(**(code **)(local_98 + -0x7a4c))" (( "(") (pointer_expression "**(code **)(local_98 + -0x7a4c)" (* "*") (pointer_expression "*(code **)(local_98 + -0x7a4c)" (* "*") (cast_expression "(code **)(local_98 + -0x7a4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_98 + -0x7a4c)" (( "(") (binary_expression "local_98 + -0x7a4c" (identifier "local_98") (+ "+") (number_literal "-0x7a4c")) () ")"))))) () ")")) (argument_list "(unaff_s2)" (( "(") (identifier "unaff_s2") () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);" (call_expression "(*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90)" (parenthesized_expression "(*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))" (( "(") (pointer_expression "*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec)" (* "*") (cast_expression "(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_98 + -0x7dc8) + 0x49ec)" (( "(") (binary_expression "*(int *)(local_98 + -0x7dc8) + 0x49ec" (pointer_expression "*(int *)(local_98 + -0x7dc8)" (* "*") (cast_expression "(int *)(local_98 + -0x7dc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_98 + -0x7dc8)" (( "(") (binary_expression "local_98 + -0x7dc8" (identifier "local_98") (+ "+") (number_literal "-0x7dc8")) () ")")))) (+ "+") (number_literal "0x49ec")) () ")")))) () ")")) (argument_list "(local_90)" (( "(") (identifier "local_90") () ")"))) (; ";")) (} "}")))) (if_statement "if (local_8c == **(int **)(local_98 + -0x7a54)) {\n    return iVar4;\n  }" (if "if") (parenthesized_expression "(local_8c == **(int **)(local_98 + -0x7a54))" (( "(") (binary_expression "local_8c == **(int **)(local_98 + -0x7a54)" (identifier "local_8c") (== "==") (pointer_expression "**(int **)(local_98 + -0x7a54)" (* "*") (pointer_expression "*(int **)(local_98 + -0x7a54)" (* "*") (cast_expression "(int **)(local_98 + -0x7a54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_98 + -0x7a54)" (( "(") (binary_expression "local_98 + -0x7a54" (identifier "local_98") (+ "+") (number_literal "-0x7a54")) () ")")))))) () ")")) (compound_statement "{\n    return iVar4;\n  }" ({ "{") (return_statement "return iVar4;" (return "return") (identifier "iVar4") (; ";")) (} "}"))) (expression_statement "pcVar13 = *(code **)(local_98 + -0x7a80);" (assignment_expression "pcVar13 = *(code **)(local_98 + -0x7a80)" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)(local_98 + -0x7a80)" (* "*") (cast_expression "(code **)(local_98 + -0x7a80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_98 + -0x7a80)" (( "(") (binary_expression "local_98 + -0x7a80" (identifier "local_98") (+ "+") (number_literal "-0x7a80")) () ")"))))) (; ";")) (expression_statement "pcVar22 = FUN_000d193c;" (assignment_expression "pcVar22 = FUN_000d193c" (identifier "pcVar22") (= "=") (identifier "FUN_000d193c")) (; ";")) (expression_statement "iVar10 = local_8c;" (assignment_expression "iVar10 = local_8c" (identifier "iVar10") (= "=") (identifier "local_8c")) (; ";")) (expression_statement "(*pcVar13)();" (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iStack_d4 = **(int **)(pcVar13 + 0xbe590);" (assignment_expression "iStack_d4 = **(int **)(pcVar13 + 0xbe590)" (identifier "iStack_d4") (= "=") (pointer_expression "**(int **)(pcVar13 + 0xbe590)" (* "*") (pointer_expression "*(int **)(pcVar13 + 0xbe590)" (* "*") (cast_expression "(int **)(pcVar13 + 0xbe590)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0xbe590)" (( "(") (binary_expression "pcVar13 + 0xbe590" (identifier "pcVar13") (+ "+") (number_literal "0xbe590")) () ")")))))) (; ";")) (expression_statement "iVar15 = *(int *)(iVar10 + 0x74);" (assignment_expression "iVar15 = *(int *)(iVar10 + 0x74)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(iVar10 + 0x74)" (* "*") (cast_expression "(int *)(iVar10 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x74)" (( "(") (binary_expression "iVar10 + 0x74" (identifier "iVar10") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "puVar19 = *(undefined4 **)(iVar10 + 0x14);" (assignment_expression "puVar19 = *(undefined4 **)(iVar10 + 0x14)" (identifier "puVar19") (= "=") (pointer_expression "*(undefined4 **)(iVar10 + 0x14)" (* "*") (cast_expression "(undefined4 **)(iVar10 + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iStack_d0 = iVar4;" (assignment_expression "iStack_d0 = iVar4" (identifier "iStack_d0") (= "=") (identifier "iVar4")) (; ";")) (expression_statement "piStack_cc = piVar11;" (assignment_expression "piStack_cc = piVar11" (identifier "piStack_cc") (= "=") (identifier "piVar11")) (; ";")) (expression_statement "pcStack_c8 = unaff_s2;" (assignment_expression "pcStack_c8 = unaff_s2" (identifier "pcStack_c8") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "piStack_c4 = param_1;" (assignment_expression "piStack_c4 = param_1" (identifier "piStack_c4") (= "=") (identifier "param_1")) (; ";")) (expression_statement "piStack_c0 = unaff_s4;" (assignment_expression "piStack_c0 = unaff_s4" (identifier "piStack_c0") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "puStack_bc = unaff_s5;" (assignment_expression "puStack_bc = unaff_s5" (identifier "puStack_bc") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "pcStack_b8 = unaff_s6;" (assignment_expression "pcStack_b8 = unaff_s6" (identifier "pcStack_b8") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "pcStack_b4 = unaff_s7;" (assignment_expression "pcStack_b4 = unaff_s7" (identifier "pcStack_b4") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "uStack_b0 = unaff_s8;" (assignment_expression "uStack_b0 = unaff_s8" (identifier "uStack_b0") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "pcStack_ac = pcVar22;" (assignment_expression "pcStack_ac = pcVar22" (identifier "pcStack_ac") (= "=") (identifier "pcVar22")) (; ";")) (expression_statement "(*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))();" (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))()" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00)" (* "*") (cast_expression "(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar13 + 0xbe21c) + 0x5c00)" (( "(") (binary_expression "*(int *)(pcVar13 + 0xbe21c) + 0x5c00" (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" (* "*") (cast_expression "(int *)(pcVar13 + 0xbe21c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0xbe21c)" (( "(") (binary_expression "pcVar13 + 0xbe21c" (identifier "pcVar13") (+ "+") (number_literal "0xbe21c")) () ")")))) (+ "+") (number_literal "0x5c00")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar4 = *(int *)(iVar10 + 0x28);" (assignment_expression "iVar4 = *(int *)(iVar10 + 0x28)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar10 + 0x28)" (* "*") (cast_expression "(int *)(iVar10 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x28)" (( "(") (binary_expression "iVar10 + 0x28" (identifier "iVar10") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "piVar11 = (int *)(uint)*(ushort *)(iVar10 + 0x30);" (assignment_expression "piVar11 = (int *)(uint)*(ushort *)(iVar10 + 0x30)" (identifier "piVar11") (= "=") (binary_expression "(int *)(uint)*(ushort *)(iVar10 + 0x30)" (cast_expression "(int *)(uint)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(ushort *)(iVar10 + 0x30)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x30)" (( "(") (binary_expression "iVar10 + 0x30" (identifier "iVar10") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if ((uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38))) {\n    iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }" (if "if") (parenthesized_expression "((uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38)))" (( "(") (binary_expression "(uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38))" (call_expression "(uint)(puVar19[9] - (int)piVar11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar19[9] - (int)piVar11)" (( "(") (binary_expression "puVar19[9] - (int)piVar11" (subscript_expression "puVar19[9]" (identifier "puVar19") ([ "[") (number_literal "9") (] "]")) (- "-") (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11"))) () ")"))) (< "<") (call_expression "(uint)(iVar4 - *(int *)(iVar15 + 0x38))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar4 - *(int *)(iVar15 + 0x38))" (( "(") (binary_expression "iVar4 - *(int *)(iVar15 + 0x38)" (identifier "iVar4") (- "-") (pointer_expression "*(int *)(iVar15 + 0x38)" (* "*") (cast_expression "(int *)(iVar15 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x38)" (( "(") (binary_expression "iVar15 + 0x38" (identifier "iVar15") (+ "+") (number_literal "0x38")) () ")"))))) () ")")))) () ")")) (compound_statement "{\n    iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);\n    goto LAB_000d1a60;\n  }" ({ "{") (expression_statement "iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);" (assignment_expression "iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be)" (identifier "iVar15") (= "=") (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be)" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" (* "*") (cast_expression "(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" (( "(") (binary_expression "*(int *)(pcVar13 + 0xbe2b8) + 0x3b28" (pointer_expression "*(int *)(pcVar13 + 0xbe2b8)" (* "*") (cast_expression "(int *)(pcVar13 + 0xbe2b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0xbe2b8)" (( "(") (binary_expression "pcVar13 + 0xbe2b8" (identifier "pcVar13") (+ "+") (number_literal "0xbe2b8")) () ")")))) (+ "+") (number_literal "0x3b28")) () ")")))) () ")")) (argument_list "(0x108be)" (( "(") (number_literal "0x108be") () ")")))) (; ";")) (goto_statement "goto LAB_000d1a60;" (goto "goto") (statement_identifier "LAB_000d1a60") (; ";")) (} "}"))) (if_statement "if (piVar3 < piVar11) {\n    piVar17 = piVar16;\n    if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }\n    if (local_98 == (undefined *)0x0) {\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }\n    else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }\n    piVar12 = (int *)((int)piVar12 + (int)piVar17);\n    piVar16 = (int *)((int)piVar16 - (int)piVar17);\n    uVar2 = 0;\n  }\n  else {\n    uVar2 = (int)piVar3 - (int)piVar11;\n  }" (if "if") (parenthesized_expression "(piVar3 < piVar11)" (( "(") (binary_expression "piVar3 < piVar11" (identifier "piVar3") (< "<") (identifier "piVar11")) () ")")) (compound_statement "{\n    piVar17 = piVar16;\n    if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }\n    if (local_98 == (undefined *)0x0) {\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }\n    else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }\n    piVar12 = (int *)((int)piVar12 + (int)piVar17);\n    piVar16 = (int *)((int)piVar16 - (int)piVar17);\n    uVar2 = 0;\n  }" ({ "{") (expression_statement "piVar17 = piVar16;" (assignment_expression "piVar17 = piVar16" (identifier "piVar17") (= "=") (identifier "piVar16")) (; ";")) (if_statement "if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }" (if "if") (parenthesized_expression "(piVar11 < (int *)((int)piVar3 + (int)piVar16))" (( "(") (binary_expression "piVar11 < (int *)((int)piVar3 + (int)piVar16)" (identifier "piVar11") (< "<") (cast_expression "(int *)((int)piVar3 + (int)piVar16)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + (int)piVar16)" (( "(") (binary_expression "(int)piVar3 + (int)piVar16" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16"))) () ")")))) () ")")) (compound_statement "{\n      piVar17 = (int *)((int)piVar11 - (int)piVar3);\n    }" ({ "{") (expression_statement "piVar17 = (int *)((int)piVar11 - (int)piVar3);" (assignment_expression "piVar17 = (int *)((int)piVar11 - (int)piVar3)" (identifier "piVar17") (= "=") (cast_expression "(int *)((int)piVar11 - (int)piVar3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 - (int)piVar3)" (( "(") (binary_expression "(int)piVar11 - (int)piVar3" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (- "-") (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3"))) () ")")))) (; ";")) (} "}"))) (if_statement "if (local_98 == (undefined *)0x0) {\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }\n    else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }" (if "if") (parenthesized_expression "(local_98 == (undefined *)0x0)" (( "(") (binary_expression "local_98 == (undefined *)0x0" (identifier "local_98") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);\n    }" ({ "{") (expression_statement "(**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);" (call_expression "(**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbe598))" (( "(") (pointer_expression "**(code **)(pcVar13 + 0xbe598)" (* "*") (pointer_expression "*(code **)(pcVar13 + 0xbe598)" (* "*") (cast_expression "(code **)(pcVar13 + 0xbe598)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0xbe598)" (( "(") (binary_expression "pcVar13 + 0xbe598" (identifier "pcVar13") (+ "+") (number_literal "0xbe598")) () ")"))))) () ")")) (argument_list "(piVar12,iVar4 + (int)piVar3,piVar17)" (( "(") (identifier "piVar12") (, ",") (binary_expression "iVar4 + (int)piVar3" (identifier "iVar4") (+ "+") (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3"))) (, ",") (identifier "piVar17") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }" (else "else") (compound_statement "{\n      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));\n      if (iVar15 != 0) goto LAB_000d1a60;\n      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);\n    }" ({ "{") (expression_statement "iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));" (assignment_expression "iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48))" (identifier "iVar15") (= "=") (call_expression "FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48))" (identifier "FUN_000c6d30") (argument_list "(*(undefined4 *)(iVar15 + 0x48))" (( "(") (pointer_expression "*(undefined4 *)(iVar15 + 0x48)" (* "*") (cast_expression "(undefined4 *)(iVar15 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x48)" (( "(") (binary_expression "iVar15 + 0x48" (identifier "iVar15") (+ "+") (number_literal "0x48")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar15 != 0) goto LAB_000d1a60;" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000d1a60;" (goto "goto") (statement_identifier "LAB_000d1a60") (; ";"))) (expression_statement "(**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);" (call_expression "(**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbe598))" (( "(") (pointer_expression "**(code **)(pcVar13 + 0xbe598)" (* "*") (pointer_expression "*(code **)(pcVar13 + 0xbe598)" (* "*") (cast_expression "(code **)(pcVar13 + 0xbe598)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0xbe598)" (( "(") (binary_expression "pcVar13 + 0xbe598" (identifier "pcVar13") (+ "+") (number_literal "0xbe598")) () ")"))))) () ")")) (argument_list "(iVar4 + (int)piVar3,piVar12,piVar17)" (( "(") (binary_expression "iVar4 + (int)piVar3" (identifier "iVar4") (+ "+") (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3"))) (, ",") (identifier "piVar12") (, ",") (identifier "piVar17") () ")"))) (; ";")) (} "}")))) (expression_statement "piVar12 = (int *)((int)piVar12 + (int)piVar17);" (assignment_expression "piVar12 = (int *)((int)piVar12 + (int)piVar17)" (identifier "piVar12") (= "=") (cast_expression "(int *)((int)piVar12 + (int)piVar17)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + (int)piVar17)" (( "(") (binary_expression "(int)piVar12 + (int)piVar17" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (cast_expression "(int)piVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar17"))) () ")")))) (; ";")) (expression_statement "piVar16 = (int *)((int)piVar16 - (int)piVar17);" (assignment_expression "piVar16 = (int *)((int)piVar16 - (int)piVar17)" (identifier "piVar16") (= "=") (cast_expression "(int *)((int)piVar16 - (int)piVar17)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 - (int)piVar17)" (( "(") (binary_expression "(int)piVar16 - (int)piVar17" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (- "-") (cast_expression "(int)piVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar17"))) () ")")))) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    uVar2 = (int)piVar3 - (int)piVar11;\n  }" (else "else") (compound_statement "{\n    uVar2 = (int)piVar3 - (int)piVar11;\n  }" ({ "{") (expression_statement "uVar2 = (int)piVar3 - (int)piVar11;" (assignment_expression "uVar2 = (int)piVar3 - (int)piVar11" (identifier "uVar2") (= "=") (binary_expression "(int)piVar3 - (int)piVar11" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (- "-") (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")))) (; ";")) (} "}")))) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar16 == (int *)0x0) goto LAB_000d1a60;" (if "if") (parenthesized_expression "(piVar16 == (int *)0x0)" (( "(") (binary_expression "piVar16 == (int *)0x0" (identifier "piVar16") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000d1a60;" (goto "goto") (statement_identifier "LAB_000d1a60") (; ";"))) (expression_statement "iVar15 = puVar19[9];" (assignment_expression "iVar15 = puVar19[9]" (identifier "iVar15") (= "=") (subscript_expression "puVar19[9]" (identifier "puVar19") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "uVar1 = *(ushort *)(iVar10 + 0x30);" (assignment_expression "uVar1 = *(ushort *)(iVar10 + 0x30)" (identifier "uVar1") (= "=") (pointer_expression "*(ushort *)(iVar10 + 0x30)" (* "*") (cast_expression "(ushort *)(iVar10 + 0x30)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x30)" (( "(") (binary_expression "iVar10 + 0x30" (identifier "iVar10") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "iStack_dc = (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1);" (assignment_expression "iStack_dc = (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1)" (identifier "iStack_dc") (= "=") (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1)" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220)" (* "*") (cast_expression "(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar13 + 0xbe21c) + 0x2220)" (( "(") (binary_expression "*(int *)(pcVar13 + 0xbe21c) + 0x2220" (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" (* "*") (cast_expression "(int *)(pcVar13 + 0xbe21c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0xbe21c)" (( "(") (binary_expression "pcVar13 + 0xbe21c" (identifier "pcVar13") (+ "+") (number_literal "0xbe21c")) () ")")))) (+ "+") (number_literal "0x2220")) () ")")))) () ")")) (argument_list "(iVar4 + (uint)uVar1)" (( "(") (binary_expression "iVar4 + (uint)uVar1" (identifier "iVar4") (+ "+") (cast_expression "(uint)uVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar1"))) () ")")))) (; ";")) (expression_statement "uVar18 = iVar15 - 4;" (assignment_expression "uVar18 = iVar15 - 4" (identifier "uVar18") (= "=") (binary_expression "iVar15 - 4" (identifier "iVar15") (- "-") (number_literal "4"))) (; ";")) (if_statement "if ((*(byte *)(iVar10 + 1) & 4) == 0) {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;\n    if ((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))) {\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }\n    (**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);\n    *(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;\nLAB_000d1bac:\n    uVar23 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }\n  else {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = uVar2 / uVar18;\n    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);\n    if (iVar4 == 0) goto LAB_000d1bac;\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar2 = uVar2 % uVar18;\n    iStack_dc = iVar4;\nLAB_000d1bb8:\n    iVar14 = uVar23 << 2;\n    iVar4 = *(int *)(pcVar13 + 0xbe21c);\n    iVar5 = *(int *)(pcVar13 + 0xbe21c);\n    iVar6 = *(int *)(pcVar13 + 0xbe21c);\n    iVar7 = *(int *)(pcVar13 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  }" (if "if") (parenthesized_expression "((*(byte *)(iVar10 + 1) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(iVar10 + 1) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar10 + 1) & 4)" (( "(") (binary_expression "*(byte *)(iVar10 + 1) & 4" (pointer_expression "*(byte *)(iVar10 + 1)" (* "*") (cast_expression "(byte *)(iVar10 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 1)" (( "(") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;\n    if ((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))) {\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }\n    (**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);\n    *(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;\nLAB_000d1bac:\n    uVar23 = 0;\n    if (iStack_dc != 0) goto LAB_000d1bb8;\n  }" ({ "{") (if_statement "if (uVar18 == 0) {\n      trap(7);\n    }" (if "if") (parenthesized_expression "(uVar18 == 0)" (( "(") (binary_expression "uVar18 == 0" (identifier "uVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      trap(7);\n    }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;" (assignment_expression "uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18" (identifier "uVar23") (= "=") (binary_expression "((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18" (parenthesized_expression "((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1)" (( "(") (binary_expression "(*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1" (parenthesized_expression "(*(int *)(iVar10 + 0x2c) + -1 + uVar18)" (( "(") (binary_expression "*(int *)(iVar10 + 0x2c) + -1 + uVar18" (binary_expression "*(int *)(iVar10 + 0x2c) + -1" (pointer_expression "*(int *)(iVar10 + 0x2c)" (* "*") (cast_expression "(int *)(iVar10 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x2c)" (( "(") (binary_expression "iVar10 + 0x2c" (identifier "iVar10") (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (number_literal "-1")) (+ "+") (identifier "uVar18")) () ")")) (- "-") (cast_expression "(uint)uVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar1"))) () ")")) (/ "/") (identifier "uVar18"))) (; ";")) (if_statement "if ((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))) {\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }" (if "if") (parenthesized_expression "((*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2)))" (( "(") (binary_expression "(*(int *)(iVar10 + 0xc) == 0) ||\n       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))" (parenthesized_expression "(*(int *)(iVar10 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0xc) == 0" (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2))" (( "(") (comma_expression "iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),\n       iVar4 < (int)(uVar23 << 2)" (assignment_expression "iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))()" (identifier "iVar4") (= "=") (call_expression "(*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))()" (parenthesized_expression "(*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))" (( "(") (pointer_expression "*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c))" (* "*") (cast_expression "(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c))" (( "(") (binary_expression "&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)" (pointer_expression "&DAT_00001030" (& "&") (identifier "DAT_00001030")) (+ "+") (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" (* "*") (cast_expression "(int *)(pcVar13 + 0xbe21c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0xbe21c)" (( "(") (binary_expression "pcVar13 + 0xbe21c" (identifier "pcVar13") (+ "+") (number_literal "0xbe21c")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar4 < (int)(uVar23 << 2)" (identifier "iVar4") (< "<") (cast_expression "(int)(uVar23 << 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar23 << 2)" (( "(") (binary_expression "uVar23 << 2" (identifier "uVar23") (<< "<<") (number_literal "2")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));\n      if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }\n      *(int *)(iVar10 + 0xc) = iVar4;\n    }" ({ "{") (expression_statement "iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));" (assignment_expression "iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc))" (identifier "iVar4") (= "=") (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc))" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944)" (* "*") (cast_expression "(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar13 + 0xbe2c8) + 0x5944)" (( "(") (binary_expression "*(int *)(pcVar13 + 0xbe2c8) + 0x5944" (pointer_expression "*(int *)(pcVar13 + 0xbe2c8)" (* "*") (cast_expression "(int *)(pcVar13 + 0xbe2c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0xbe2c8)" (( "(") (binary_expression "pcVar13 + 0xbe2c8" (identifier "pcVar13") (+ "+") (number_literal "0xbe2c8")) () ")")))) (+ "+") (number_literal "0x5944")) () ")")))) () ")")) (argument_list "(*(undefined4 *)(iVar10 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar15 = 7;\n        goto LAB_000d1a60;\n      }" ({ "{") (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" (identifier "iVar15") (= "=") (number_literal "7")) (; ";")) (goto_statement "goto LAB_000d1a60;" (goto "goto") (statement_identifier "LAB_000d1a60") (; ";")) (} "}"))) (expression_statement "*(int *)(iVar10 + 0xc) = iVar4;" (assignment_expression "*(int *)(iVar10 + 0xc) = iVar4" (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);" (call_expression "(**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbe4c4))" (( "(") (pointer_expression "**(code **)(pcVar13 + 0xbe4c4)" (* "*") (pointer_expression "*(code **)(pcVar13 + 0xbe4c4)" (* "*") (cast_expression "(code **)(pcVar13 + 0xbe4c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0xbe4c4)" (( "(") (binary_expression "pcVar13 + 0xbe4c4" (identifier "pcVar13") (+ "+") (number_literal "0xbe4c4")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2)" (( "(") (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (number_literal "0") (, ",") (binary_expression "uVar23 << 2" (identifier "uVar23") (<< "<<") (number_literal "2")) () ")"))) (; ";")) (expression_statement "*(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;" (assignment_expression "*(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4" (pointer_expression "*(byte *)(iVar10 + 1)" (* "*") (cast_expression "(byte *)(iVar10 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 1)" (( "(") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar10 + 1) | 4" (pointer_expression "*(byte *)(iVar10 + 1)" (* "*") (cast_expression "(byte *)(iVar10 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 1)" (( "(") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1")) () ")")))) (| "|") (number_literal "4"))) (; ";")) (labeled_statement "LAB_000d1bac:\n    uVar23 = 0;" (statement_identifier "LAB_000d1bac") (: ":") (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" (identifier "uVar23") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (iStack_dc != 0) goto LAB_000d1bb8;" (if "if") (parenthesized_expression "(iStack_dc != 0)" (( "(") (binary_expression "iStack_dc != 0" (identifier "iStack_dc") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000d1bb8;" (goto "goto") (statement_identifier "LAB_000d1bb8") (; ";"))) (} "}")) (else_clause "else {\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = uVar2 / uVar18;\n    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);\n    if (iVar4 == 0) goto LAB_000d1bac;\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar2 = uVar2 % uVar18;\n    iStack_dc = iVar4;\nLAB_000d1bb8:\n    iVar14 = uVar23 << 2;\n    iVar4 = *(int *)(pcVar13 + 0xbe21c);\n    iVar5 = *(int *)(pcVar13 + 0xbe21c);\n    iVar6 = *(int *)(pcVar13 + 0xbe21c);\n    iVar7 = *(int *)(pcVar13 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  }" (else "else") (compound_statement "{\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar23 = uVar2 / uVar18;\n    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);\n    if (iVar4 == 0) goto LAB_000d1bac;\n    if (uVar18 == 0) {\n      trap(7);\n    }\n    uVar2 = uVar2 % uVar18;\n    iStack_dc = iVar4;\nLAB_000d1bb8:\n    iVar14 = uVar23 << 2;\n    iVar4 = *(int *)(pcVar13 + 0xbe21c);\n    iVar5 = *(int *)(pcVar13 + 0xbe21c);\n    iVar6 = *(int *)(pcVar13 + 0xbe21c);\n    iVar7 = *(int *)(pcVar13 + 0xbe2b8);\n    do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);\n    if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n  }" ({ "{") (if_statement "if (uVar18 == 0) {\n      trap(7);\n    }" (if "if") (parenthesized_expression "(uVar18 == 0)" (( "(") (binary_expression "uVar18 == 0" (identifier "uVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      trap(7);\n    }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar23 = uVar2 / uVar18;" (assignment_expression "uVar23 = uVar2 / uVar18" (identifier "uVar23") (= "=") (binary_expression "uVar2 / uVar18" (identifier "uVar2") (/ "/") (identifier "uVar18"))) (; ";")) (expression_statement "iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);" (assignment_expression "iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4)" (* "*") (cast_expression "(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar10 + 0xc) + uVar23 * 4)" (( "(") (binary_expression "*(int *)(iVar10 + 0xc) + uVar23 * 4" (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (binary_expression "uVar23 * 4" (identifier "uVar23") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_000d1bac;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000d1bac;" (goto "goto") (statement_identifier "LAB_000d1bac") (; ";"))) (if_statement "if (uVar18 == 0) {\n      trap(7);\n    }" (if "if") (parenthesized_expression "(uVar18 == 0)" (( "(") (binary_expression "uVar18 == 0" (identifier "uVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      trap(7);\n    }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = uVar2 % uVar18;" (assignment_expression "uVar2 = uVar2 % uVar18" (identifier "uVar2") (= "=") (binary_expression "uVar2 % uVar18" (identifier "uVar2") (% "%") (identifier "uVar18"))) (; ";")) (expression_statement "iStack_dc = iVar4;" (assignment_expression "iStack_dc = iVar4" (identifier "iStack_dc") (= "=") (identifier "iVar4")) (; ";")) (labeled_statement "LAB_000d1bb8:\n    iVar14 = uVar23 << 2;" (statement_identifier "LAB_000d1bb8") (: ":") (expression_statement "iVar14 = uVar23 << 2;" (assignment_expression "iVar14 = uVar23 << 2" (identifier "iVar14") (= "=") (binary_expression "uVar23 << 2" (identifier "uVar23") (<< "<<") (number_literal "2"))) (; ";"))) (expression_statement "iVar4 = *(int *)(pcVar13 + 0xbe21c);" (assignment_expression "iVar4 = *(int *)(pcVar13 + 0xbe21c)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" (* "*") (cast_expression "(int *)(pcVar13 + 0xbe21c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0xbe21c)" (( "(") (binary_expression "pcVar13 + 0xbe21c" (identifier "pcVar13") (+ "+") (number_literal "0xbe21c")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)(pcVar13 + 0xbe21c);" (assignment_expression "iVar5 = *(int *)(pcVar13 + 0xbe21c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" (* "*") (cast_expression "(int *)(pcVar13 + 0xbe21c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0xbe21c)" (( "(") (binary_expression "pcVar13 + 0xbe21c" (identifier "pcVar13") (+ "+") (number_literal "0xbe21c")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(pcVar13 + 0xbe21c);" (assignment_expression "iVar6 = *(int *)(pcVar13 + 0xbe21c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcVar13 + 0xbe21c)" (* "*") (cast_expression "(int *)(pcVar13 + 0xbe21c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0xbe21c)" (( "(") (binary_expression "pcVar13 + 0xbe21c" (identifier "pcVar13") (+ "+") (number_literal "0xbe21c")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(pcVar13 + 0xbe2b8);" (assignment_expression "iVar7 = *(int *)(pcVar13 + 0xbe2b8)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(pcVar13 + 0xbe2b8)" (* "*") (cast_expression "(int *)(pcVar13 + 0xbe2b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0xbe2b8)" (( "(") (binary_expression "pcVar13 + 0xbe2b8" (identifier "pcVar13") (+ "+") (number_literal "0xbe2b8")) () ")"))))) (; ";")) (do_statement "do {\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    } while (iStack_dc != 0);" (do "do") (compound_statement "{\n      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;\n      if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }\n      if (iVar15 != 0) goto LAB_000d1a60;\n      iVar14 = iVar14 + 4;\n    }" ({ "{") (expression_statement "*(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;" (assignment_expression "*(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc" (pointer_expression "*(int *)(*(int *)(iVar10 + 0xc) + iVar14)" (* "*") (cast_expression "(int *)(*(int *)(iVar10 + 0xc) + iVar14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar10 + 0xc) + iVar14)" (( "(") (binary_expression "*(int *)(iVar10 + 0xc) + iVar14" (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (identifier "iVar14")) () ")")))) (= "=") (identifier "iStack_dc")) (; ";")) (if_statement "if (uVar2 < uVar18) {\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }\n      else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }" (if "if") (parenthesized_expression "(uVar2 < uVar18)" (( "(") (binary_expression "uVar2 < uVar18" (identifier "uVar2") (< "<") (identifier "uVar18")) () ")")) (compound_statement "{\n        piVar11 = piVar16;\n        if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }\n        if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }\n        piVar16 = (int *)((int)piVar16 - (int)piVar11);\n        piVar12 = (int *)((int)piVar12 + (int)piVar11);\n        if (piVar16 == (int *)0x0) goto LAB_000d1a60;\n      }" ({ "{") (expression_statement "piVar11 = piVar16;" (assignment_expression "piVar11 = piVar16" (identifier "piVar11") (= "=") (identifier "piVar16")) (; ";")) (if_statement "if (uVar18 < uVar2 + (int)piVar16) {\n          piVar11 = (int *)(uVar18 - uVar2);\n        }" (if "if") (parenthesized_expression "(uVar18 < uVar2 + (int)piVar16)" (( "(") (binary_expression "uVar18 < uVar2 + (int)piVar16" (identifier "uVar18") (< "<") (binary_expression "uVar2 + (int)piVar16" (identifier "uVar2") (+ "+") (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")))) () ")")) (compound_statement "{\n          piVar11 = (int *)(uVar18 - uVar2);\n        }" ({ "{") (expression_statement "piVar11 = (int *)(uVar18 - uVar2);" (assignment_expression "piVar11 = (int *)(uVar18 - uVar2)" (identifier "piVar11") (= "=") (cast_expression "(int *)(uVar18 - uVar2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar18 - uVar2)" (( "(") (binary_expression "uVar18 - uVar2" (identifier "uVar18") (- "-") (identifier "uVar2")) () ")")))) (; ";")) (} "}"))) (if_statement "if (local_98 == (undefined *)0x0) {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }\n        else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }" (if "if") (parenthesized_expression "(local_98 == (undefined *)0x0)" (( "(") (binary_expression "local_98 == (undefined *)0x0" (identifier "local_98") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);\n          if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }\n        }" ({ "{") (expression_statement "iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);" (assignment_expression "iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2)" (identifier "iVar15") (= "=") (call_expression "(*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2)" (parenthesized_expression "(*(code *)(iVar4 + 0x491c))" (( "(") (pointer_expression "*(code *)(iVar4 + 0x491c)" (* "*") (cast_expression "(code *)(iVar4 + 0x491c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x491c)" (( "(") (binary_expression "iVar4 + 0x491c" (identifier "iVar4") (+ "+") (number_literal "0x491c")) () ")")))) () ")")) (argument_list "(*puVar19,iStack_dc,&iStack_d8,2)" (( "(") (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (, ",") (identifier "iStack_dc") (, ",") (pointer_expression "&iStack_d8" (& "&") (identifier "iStack_d8")) (, ",") (number_literal "2") () ")")))) (; ";")) (if_statement "if (iVar15 == 0) {\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar8 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);\n            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);\n            goto LAB_000d1dcc;\n          }" ({ "{") (expression_statement "iVar8 = *(int *)(iStack_d8 + 4);" (assignment_expression "iVar8 = *(int *)(iStack_d8 + 4)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iStack_d8 + 4)" (* "*") (cast_expression "(int *)(iStack_d8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_d8 + 4)" (( "(") (binary_expression "iStack_d8 + 4" (identifier "iStack_d8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);" (assignment_expression "iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8)" (identifier "iStack_dc") (= "=") (call_expression "(*(code *)(iVar5 + 0x2220))(iVar8)" (parenthesized_expression "(*(code *)(iVar5 + 0x2220))" (( "(") (pointer_expression "*(code *)(iVar5 + 0x2220)" (* "*") (cast_expression "(code *)(iVar5 + 0x2220)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2220)" (( "(") (binary_expression "iVar5 + 0x2220" (identifier "iVar5") (+ "+") (number_literal "0x2220")) () ")")))) () ")")) (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);" (call_expression "(**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbe598))" (( "(") (pointer_expression "**(code **)(pcVar13 + 0xbe598)" (* "*") (pointer_expression "*(code **)(pcVar13 + 0xbe598)" (* "*") (cast_expression "(code **)(pcVar13 + 0xbe598)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0xbe598)" (( "(") (binary_expression "pcVar13 + 0xbe598" (identifier "pcVar13") (+ "+") (number_literal "0xbe598")) () ")"))))) () ")")) (argument_list "(piVar12,iVar8 + uVar2 + 4,piVar11)" (( "(") (identifier "piVar12") (, ",") (binary_expression "iVar8 + uVar2 + 4" (binary_expression "iVar8 + uVar2" (identifier "iVar8") (+ "+") (identifier "uVar2")) (+ "+") (number_literal "4")) (, ",") (identifier "piVar11") () ")"))) (; ";")) (goto_statement "goto LAB_000d1dcc;" (goto "goto") (statement_identifier "LAB_000d1dcc") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }" (else "else") (compound_statement "{\n          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);\n          iVar8 = iStack_d8;\n          if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }\n        }" ({ "{") (expression_statement "iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);" (assignment_expression "iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0)" (identifier "iVar15") (= "=") (call_expression "(*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0)" (parenthesized_expression "(*(code *)(iVar4 + 0x491c))" (( "(") (pointer_expression "*(code *)(iVar4 + 0x491c)" (* "*") (cast_expression "(code *)(iVar4 + 0x491c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x491c)" (( "(") (binary_expression "iVar4 + 0x491c" (identifier "iVar4") (+ "+") (number_literal "0x491c")) () ")")))) () ")")) (argument_list "(*puVar19,iStack_dc,&iStack_d8,0)" (( "(") (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (, ",") (identifier "iStack_dc") (, ",") (pointer_expression "&iStack_d8" (& "&") (identifier "iStack_d8")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar8 = iStack_d8;" (assignment_expression "iVar8 = iStack_d8" (identifier "iVar8") (= "=") (identifier "iStack_d8")) (; ";")) (if_statement "if (iVar15 == 0) {\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar9 = *(int *)(iStack_d8 + 4);\n            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);\n            iVar15 = FUN_000c6d30(iVar8);\n            if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }\nLAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);\n            uVar2 = 0;\n          }" ({ "{") (expression_statement "iVar9 = *(int *)(iStack_d8 + 4);" (assignment_expression "iVar9 = *(int *)(iStack_d8 + 4)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iStack_d8 + 4)" (* "*") (cast_expression "(int *)(iStack_d8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_d8 + 4)" (( "(") (binary_expression "iStack_d8 + 4" (identifier "iStack_d8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);" (assignment_expression "iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9)" (identifier "iStack_dc") (= "=") (call_expression "(*(code *)(iVar5 + 0x2220))(iVar9)" (parenthesized_expression "(*(code *)(iVar5 + 0x2220))" (( "(") (pointer_expression "*(code *)(iVar5 + 0x2220)" (* "*") (cast_expression "(code *)(iVar5 + 0x2220)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2220)" (( "(") (binary_expression "iVar5 + 0x2220" (identifier "iVar5") (+ "+") (number_literal "0x2220")) () ")")))) () ")")) (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (; ";")) (expression_statement "iVar15 = FUN_000c6d30(iVar8);" (assignment_expression "iVar15 = FUN_000c6d30(iVar8)" (identifier "iVar15") (= "=") (call_expression "FUN_000c6d30(iVar8)" (identifier "FUN_000c6d30") (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")")))) (; ";")) (if_statement "if (iVar15 == 0) {\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);\n            }" ({ "{") (expression_statement "(**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);" (call_expression "(**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbe598))" (( "(") (pointer_expression "**(code **)(pcVar13 + 0xbe598)" (* "*") (pointer_expression "*(code **)(pcVar13 + 0xbe598)" (* "*") (cast_expression "(code **)(pcVar13 + 0xbe598)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0xbe598)" (( "(") (binary_expression "pcVar13 + 0xbe598" (identifier "pcVar13") (+ "+") (number_literal "0xbe598")) () ")"))))) () ")")) (argument_list "(iVar9 + uVar2 + 4,piVar12,piVar11)" (( "(") (binary_expression "iVar9 + uVar2 + 4" (binary_expression "iVar9 + uVar2" (identifier "iVar9") (+ "+") (identifier "uVar2")) (+ "+") (number_literal "4")) (, ",") (identifier "piVar12") (, ",") (identifier "piVar11") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_000d1dcc:\n            (*(code *)(iVar6 + 0x49ec))(iStack_d8);" (statement_identifier "LAB_000d1dcc") (: ":") (expression_statement "(*(code *)(iVar6 + 0x49ec))(iStack_d8);" (call_expression "(*(code *)(iVar6 + 0x49ec))(iStack_d8)" (parenthesized_expression "(*(code *)(iVar6 + 0x49ec))" (( "(") (pointer_expression "*(code *)(iVar6 + 0x49ec)" (* "*") (cast_expression "(code *)(iVar6 + 0x49ec)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x49ec)" (( "(") (binary_expression "iVar6 + 0x49ec" (identifier "iVar6") (+ "+") (number_literal "0x49ec")) () ")")))) () ")")) (argument_list "(iStack_d8)" (( "(") (identifier "iStack_d8") () ")"))) (; ";"))) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")))) (expression_statement "piVar16 = (int *)((int)piVar16 - (int)piVar11);" (assignment_expression "piVar16 = (int *)((int)piVar16 - (int)piVar11)" (identifier "piVar16") (= "=") (cast_expression "(int *)((int)piVar16 - (int)piVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 - (int)piVar11)" (( "(") (binary_expression "(int)piVar16 - (int)piVar11" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (- "-") (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11"))) () ")")))) (; ";")) (expression_statement "piVar12 = (int *)((int)piVar12 + (int)piVar11);" (assignment_expression "piVar12 = (int *)((int)piVar12 + (int)piVar11)" (identifier "piVar12") (= "=") (cast_expression "(int *)((int)piVar12 + (int)piVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + (int)piVar11)" (( "(") (binary_expression "(int)piVar12 + (int)piVar11" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11"))) () ")")))) (; ";")) (if_statement "if (piVar16 == (int *)0x0) goto LAB_000d1a60;" (if "if") (parenthesized_expression "(piVar16 == (int *)0x0)" (( "(") (binary_expression "piVar16 == (int *)0x0" (identifier "piVar16") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000d1a60;" (goto "goto") (statement_identifier "LAB_000d1a60") (; ";"))) (} "}")) (else_clause "else {\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }" (else "else") (compound_statement "{\n        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);\n        iVar15 = 0;\n        if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }\n        iStack_dc = iVar8;\n        uVar2 = uVar2 - uVar18;\n      }" ({ "{") (expression_statement "iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);" (assignment_expression "iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4)" (* "*") (cast_expression "(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar10 + 0xc) + iVar14 + 4)" (( "(") (binary_expression "*(int *)(iVar10 + 0xc) + iVar14 + 4" (binary_expression "*(int *)(iVar10 + 0xc) + iVar14" (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (identifier "iVar14")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar8 == 0) {\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);\n          iVar8 = iStack_dc;\n        }" ({ "{") (expression_statement "iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);" (assignment_expression "iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc)" (identifier "iVar15") (= "=") (call_expression "(*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc)" (parenthesized_expression "(*(code *)(iVar7 + 0x43f4))" (( "(") (pointer_expression "*(code *)(iVar7 + 0x43f4)" (* "*") (cast_expression "(code *)(iVar7 + 0x43f4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x43f4)" (( "(") (binary_expression "iVar7 + 0x43f4" (identifier "iVar7") (+ "+") (number_literal "0x43f4")) () ")")))) () ")")) (argument_list "(puVar19,iStack_dc,0,&iStack_dc)" (( "(") (identifier "puVar19") (, ",") (identifier "iStack_dc") (, ",") (number_literal "0") (, ",") (pointer_expression "&iStack_dc" (& "&") (identifier "iStack_dc")) () ")")))) (; ";")) (expression_statement "iVar8 = iStack_dc;" (assignment_expression "iVar8 = iStack_dc" (identifier "iVar8") (= "=") (identifier "iStack_dc")) (; ";")) (} "}"))) (expression_statement "iStack_dc = iVar8;" (assignment_expression "iStack_dc = iVar8" (identifier "iStack_dc") (= "=") (identifier "iVar8")) (; ";")) (expression_statement "uVar2 = uVar2 - uVar18;" (assignment_expression "uVar2 = uVar2 - uVar18" (identifier "uVar2") (= "=") (binary_expression "uVar2 - uVar18" (identifier "uVar2") (- "-") (identifier "uVar18"))) (; ";")) (} "}")))) (if_statement "if (iVar15 != 0) goto LAB_000d1a60;" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000d1a60;" (goto "goto") (statement_identifier "LAB_000d1a60") (; ";"))) (expression_statement "iVar14 = iVar14 + 4;" (assignment_expression "iVar14 = iVar14 + 4" (identifier "iVar14") (= "=") (binary_expression "iVar14 + 4" (identifier "iVar14") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iStack_dc != 0)" (( "(") (binary_expression "iStack_dc != 0" (identifier "iStack_dc") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (piVar16 == (int *)0x0) goto LAB_000d1a60;" (if "if") (parenthesized_expression "(piVar16 == (int *)0x0)" (( "(") (binary_expression "piVar16 == (int *)0x0" (identifier "piVar16") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000d1a60;" (goto "goto") (statement_identifier "LAB_000d1a60") (; ";"))) (} "}")))) (expression_statement "iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f);" (assignment_expression "iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f)" (identifier "iVar15") (= "=") (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f)" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" (* "*") (cast_expression "(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28)" (( "(") (binary_expression "*(int *)(pcVar13 + 0xbe2b8) + 0x3b28" (pointer_expression "*(int *)(pcVar13 + 0xbe2b8)" (* "*") (cast_expression "(int *)(pcVar13 + 0xbe2b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0xbe2b8)" (( "(") (binary_expression "pcVar13 + 0xbe2b8" (identifier "pcVar13") (+ "+") (number_literal "0xbe2b8")) () ")")))) (+ "+") (number_literal "0x3b28")) () ")")))) () ")")) (argument_list "(0x1094f)" (( "(") (number_literal "0x1094f") () ")")))) (; ";")) (labeled_statement "LAB_000d1a60:\n  if (iStack_d4 != **(int **)(pcVar13 + 0xbe590)) {\n    pcVar13 = *(code **)(pcVar13 + 0xbe564);\n    iVar4 = iStack_d4;\n    (*pcVar13)();\n    if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }\n    return iVar15;\n  }" (statement_identifier "LAB_000d1a60") (: ":") (if_statement "if (iStack_d4 != **(int **)(pcVar13 + 0xbe590)) {\n    pcVar13 = *(code **)(pcVar13 + 0xbe564);\n    iVar4 = iStack_d4;\n    (*pcVar13)();\n    if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }\n    return iVar15;\n  }" (if "if") (parenthesized_expression "(iStack_d4 != **(int **)(pcVar13 + 0xbe590))" (( "(") (binary_expression "iStack_d4 != **(int **)(pcVar13 + 0xbe590)" (identifier "iStack_d4") (!= "!=") (pointer_expression "**(int **)(pcVar13 + 0xbe590)" (* "*") (pointer_expression "*(int **)(pcVar13 + 0xbe590)" (* "*") (cast_expression "(int **)(pcVar13 + 0xbe590)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0xbe590)" (( "(") (binary_expression "pcVar13 + 0xbe590" (identifier "pcVar13") (+ "+") (number_literal "0xbe590")) () ")")))))) () ")")) (compound_statement "{\n    pcVar13 = *(code **)(pcVar13 + 0xbe564);\n    iVar4 = iStack_d4;\n    (*pcVar13)();\n    if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }\n    return iVar15;\n  }" ({ "{") (expression_statement "pcVar13 = *(code **)(pcVar13 + 0xbe564);" (assignment_expression "pcVar13 = *(code **)(pcVar13 + 0xbe564)" (identifier "pcVar13") (= "=") (pointer_expression "*(code **)(pcVar13 + 0xbe564)" (* "*") (cast_expression "(code **)(pcVar13 + 0xbe564)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0xbe564)" (( "(") (binary_expression "pcVar13 + 0xbe564" (identifier "pcVar13") (+ "+") (number_literal "0xbe564")) () ")"))))) (; ";")) (expression_statement "iVar4 = iStack_d4;" (assignment_expression "iVar4 = iStack_d4" (identifier "iVar4") (= "=") (identifier "iStack_d4")) (; ";")) (expression_statement "(*pcVar13)();" (call_expression "(*pcVar13)()" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(char *)(iVar4 + 0x45) == '\0') {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }\n    else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar4 + 0x45) == '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 0x45) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x45)" (* "*") (cast_expression "(char *)(iVar4 + 0x45)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x45)" (( "(") (binary_expression "iVar4 + 0x45" (identifier "iVar4") (+ "+") (number_literal "0x45")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      uVar2 = *(uint *)(iVar4 + 0x2c);\n      *(undefined4 *)(iVar4 + 0x38) = 0;\n      *(uint *)(iVar4 + 0x3c) = uVar2;\n      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);\n      if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }\n    }" ({ "{") (expression_statement "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();" (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))()" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" (* "*") (cast_expression "(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" (( "(") (binary_expression "*(int *)(pcVar13 + 0xbdd3c) + 0x5c00" (pointer_expression "*(int *)(pcVar13 + 0xbdd3c)" (* "*") (cast_expression "(int *)(pcVar13 + 0xbdd3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0xbdd3c)" (( "(") (binary_expression "pcVar13 + 0xbdd3c" (identifier "pcVar13") (+ "+") (number_literal "0xbdd3c")) () ")")))) (+ "+") (number_literal "0x5c00")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar2 = *(uint *)(iVar4 + 0x2c);" (assignment_expression "uVar2 = *(uint *)(iVar4 + 0x2c)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(iVar4 + 0x2c)" (* "*") (cast_expression "(uint *)(iVar4 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x2c)" (( "(") (binary_expression "iVar4 + 0x2c" (identifier "iVar4") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x38) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x38)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x38)" (( "(") (binary_expression "iVar4 + 0x38" (identifier "iVar4") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint *)(iVar4 + 0x3c) = uVar2;" (assignment_expression "*(uint *)(iVar4 + 0x3c) = uVar2" (pointer_expression "*(uint *)(iVar4 + 0x3c)" (* "*") (cast_expression "(uint *)(iVar4 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x3c)" (( "(") (binary_expression "iVar4 + 0x3c" (identifier "iVar4") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);" (assignment_expression "iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2)" (identifier "iVar10") (= "=") (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2)" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068)" (* "*") (cast_expression "(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar13 + 0xbdd3c) + 0x1068)" (( "(") (binary_expression "*(int *)(pcVar13 + 0xbdd3c) + 0x1068" (pointer_expression "*(int *)(pcVar13 + 0xbdd3c)" (* "*") (cast_expression "(int *)(pcVar13 + 0xbdd3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0xbdd3c)" (( "(") (binary_expression "pcVar13 + 0xbdd3c" (identifier "pcVar13") (+ "+") (number_literal "0xbdd3c")) () ")")))) (+ "+") (number_literal "0x1068")) () ")")))) () ")")) (argument_list "(uVar2 + 0x11 < uVar2)" (( "(") (binary_expression "uVar2 + 0x11 < uVar2" (binary_expression "uVar2 + 0x11" (identifier "uVar2") (+ "+") (number_literal "0x11")) (< "<") (identifier "uVar2")) () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n        iVar15 = 7;\n      }\n      else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar15 = 7;\n      }" ({ "{") (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" (identifier "iVar15") (= "=") (number_literal "7")) (; ";")) (} "}")) (else_clause "else {\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }" (else "else") (compound_statement "{\n        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);\n        if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }\n      }" ({ "{") (expression_statement "iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);" (assignment_expression "iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0)" (identifier "iVar15") (= "=") (call_expression "FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0)" (identifier "FUN_000d193c") (argument_list "(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0)" (( "(") (identifier "iVar4") (, ",") (number_literal "0") (, ",") (pointer_expression "*(undefined4 *)(iVar4 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x3c)" (( "(") (binary_expression "iVar4 + 0x3c" (identifier "iVar4") (+ "+") (number_literal "0x3c")) () ")")))) (, ",") (identifier "iVar10") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar15 == 0) {\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }\n        else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);\n          *(int *)(iVar4 + 0x10) = iVar10;\n        }" ({ "{") (expression_statement "(**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);" (call_expression "(**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbdfe4))" (( "(") (pointer_expression "**(code **)(pcVar13 + 0xbdfe4)" (* "*") (pointer_expression "*(code **)(pcVar13 + 0xbdfe4)" (* "*") (cast_expression "(code **)(pcVar13 + 0xbdfe4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0xbdfe4)" (( "(") (binary_expression "pcVar13 + 0xbdfe4" (identifier "pcVar13") (+ "+") (number_literal "0xbdfe4")) () ")"))))) () ")")) (argument_list "(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11)" (( "(") (binary_expression "iVar10 + *(int *)(iVar4 + 0x3c)" (identifier "iVar10") (+ "+") (pointer_expression "*(int *)(iVar4 + 0x3c)" (* "*") (cast_expression "(int *)(iVar4 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x3c)" (( "(") (binary_expression "iVar4 + 0x3c" (identifier "iVar4") (+ "+") (number_literal "0x3c")) () ")"))))) (, ",") (number_literal "0") (, ",") (number_literal "0x11") () ")"))) (; ";")) (expression_statement "*(int *)(iVar4 + 0x10) = iVar10;" (assignment_expression "*(int *)(iVar4 + 0x10) = iVar10" (pointer_expression "*(int *)(iVar4 + 0x10)" (* "*") (cast_expression "(int *)(iVar4 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (} "}")) (else_clause "else {\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }" (else "else") (compound_statement "{\n          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);\n        }" ({ "{") (expression_statement "(**(code **)(pcVar13 + 0xbdb5c))(iVar10);" (call_expression "(**(code **)(pcVar13 + 0xbdb5c))(iVar10)" (parenthesized_expression "(**(code **)(pcVar13 + 0xbdb5c))" (( "(") (pointer_expression "**(code **)(pcVar13 + 0xbdb5c)" (* "*") (pointer_expression "*(code **)(pcVar13 + 0xbdb5c)" (* "*") (cast_expression "(code **)(pcVar13 + 0xbdb5c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar13 + 0xbdb5c)" (( "(") (binary_expression "pcVar13 + 0xbdb5c" (identifier "pcVar13") (+ "+") (number_literal "0xbdb5c")) () ")"))))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")"))) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }" (else "else") (compound_statement "{\n      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();\n      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);\n      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);\n      iVar15 = 0;\n    }" ({ "{") (expression_statement "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();" (call_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))()" (parenthesized_expression "(*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" (* "*") (cast_expression "(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00)" (( "(") (binary_expression "*(int *)(pcVar13 + 0xbdd3c) + 0x5c00" (pointer_expression "*(int *)(pcVar13 + 0xbdd3c)" (* "*") (cast_expression "(int *)(pcVar13 + 0xbdd3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar13 + 0xbdd3c)" (( "(") (binary_expression "pcVar13 + 0xbdd3c" (identifier "pcVar13") (+ "+") (number_literal "0xbdd3c")) () ")")))) (+ "+") (number_literal "0x5c00")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);" (assignment_expression "*(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24)" (pointer_expression "*(undefined4 *)(iVar4 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x3c)" (( "(") (binary_expression "iVar4 + 0x3c" (identifier "iVar4") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x24)" (( "(") (binary_expression "iVar4 + 0x24" (identifier "iVar4") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);" (assignment_expression "*(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20)" (pointer_expression "*(undefined4 *)(iVar4 + 0x38)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x38)" (( "(") (binary_expression "iVar4 + 0x38" (identifier "iVar4") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x20)" (( "(") (binary_expression "iVar4 + 0x20" (identifier "iVar4") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (} "}")))) (return_statement "return iVar15;" (return "return") (identifier "iVar15") (; ";")) (} "}")))) (return_statement "return iVar15;" (return "return") (identifier "iVar15") (; ";")) (} "}")))

int function_1(type_1 *pBt,type_2 var_2,int var_11,int *var_10)

{
  type_3 uVar1;
  type_4 *pPg;
  int var_14;
  type_5 var_4;
  type_5 var_18;
  type_4 **var_21;
  int var_29;
  int var_30;
  int var_32;
  int var_31;
  type_6 uVar10;
  type_7 *var_34;
  type_8 *pCur;
  type_9 *pInfo;
  int *unaff_s1;
  int var_8;
  int var_6;
  int var_19;
  void *var_20;
  int var_28;
  int var_24;
  int *unaff_s4;
  type_4 **var_22;
  type_6 unaff_s5;
  type_10 *unaff_s6;
  type_6 *puVar17;
  type_10 *unaff_s7;
  int var_1;
  type_10 *var_15;
  type_5 var_9;
  type_10 *pcVar19;
  type_5 var_26;
  int var_27;
  type_4 *pPStack_d8;
  type_8 *var_33;
  int iStack_d0;
  type_9 *pCStack_cc;
  void *pvStack_c8;
  type_5 uStack_c4;
  type_4 **ppPStack_c0;
  type_6 uStack_bc;
  type_10 *pcStack_b8;
  type_10 *pcStack_b4;
  type_5 uStack_b0;
  type_10 *pcStack_ac;
  type_10 *var_16;
  type_4 *pPStack_90;
  int var_23;
  int iStack_88;
  int *piStack_84;
  int iStack_80;
  type_1 *pBStack_7c;
  int *piStack_78;
  type_10 *pcStack_74;
  type_6 uStack_60;
  int var_5;
  type_11 *pPage;
  int var_3;
  type_9 info;
  
  var_5 = var_1 + 0xc65e0;
  var_14 = **(int **)(&LAB_000beb8c + var_1);
  if (pBt->nPage < var_2) {
    iStack_88 = (*(type_10 *)(*(int *)(&LAB_000be8b4 + var_1) + 0x3b28))(0x119d6);
    pInfo = (type_9 *)var_11;
  }
  else {
    uStack_60 = 0;
    pInfo = (type_9 *)&pPage;
    var_3 = (*(type_10 *)(*(int *)(&LAB_000be8b4 + var_1) + 0x46c4))();
    iStack_88 = var_3;
    unaff_s4 = var_10;
    if (var_3 == 0) {
      if (pPage->bBusy == '\0') {
        pPage->bBusy = '\x01';
        var_4 = (type_5)pPage->nCell;
        var_9 = (type_5)pPage->hdrOffset;
        if (var_4 != 0) {
          var_6 = 0;
          unaff_s7 = (type_10 *)(*(int *)(var_5 + -0x7dc8) + 0x2220);
          unaff_s6 = (type_10 *)(*(int *)(var_5 + -0x7d6c) + 0x1340);
          unaff_s5 = *(type_6 *)(var_5 + -0x7d6c);
          var_8 = 0;
          do {
            var_3 = 0;
            unaff_s1 = (int *)(pPage->aData +
                              (*(type_3 *)(pPage->aCellIdx + var_6) & pPage->maskPage));
            if (pPage->leaf == '\0') {
              var_2 = (*unaff_s7)(unaff_s1);
              pInfo = (type_9 *)0x1;
              var_3 = (*unaff_s6)(pBt,var_2,1,var_10);
              if (var_3 != 0) goto LAB_000d1454;
            }
            var_3 = 0;
            pInfo = &info;
            var_2 = (type_2)unaff_s1;
            var_3 = var_7(pPage,(type_7 *)unaff_s1,pInfo);
            if (var_3 != 0) goto LAB_000d1454;
            var_8 = var_8 + 1;
            var_4 = (type_5)pPage->nCell;
            var_6 = var_6 + 2;
          } while (var_8 < (int)var_4);
        }
        if (pPage->leaf == '\0') {
          var_2 = (*(type_10 *)(*(int *)(var_5 + -0x7dc8) + 0x2220))(pPage->aData + var_9 + 8);
          pInfo = (type_9 *)0x1;
          var_3 = function_1(pBt,var_2,1,var_10);
          if (var_3 != 0) goto LAB_000d1454;
        }
        else if (var_10 != (int *)0x0) {
          *var_10 = *var_10 + var_4;
        }
        if (var_11 == 0) {
          var_3 = var_12(pPage->pDbPage);
          if (var_3 == 0) {
            var_2 = pPage->aData[var_9] | 8;
            (*(type_10 *)(*(int *)(var_5 + -0x7d2c) + 0x3c90))();
          }
        }
        else {
          var_2 = (type_2)&var_3;
          var_13(pPage,(int *)var_2);
        }
      }
      else {
        var_3 = (*(type_10 *)(*(int *)(var_5 + -0x7d2c) + 0x3b28))(0x119db);
      }
LAB_000d1454:
      pPage->bBusy = '\0';
      (*(type_10 *)(*(int *)(var_5 + -0x7dc8) + 0x5aac))(pPage);
      iStack_88 = var_3;
    }
  }
  if (var_14 == **(int **)(var_5 + -0x7a54)) {
    return iStack_88;
  }
  var_15 = *(type_10 **)(var_5 + -0x7a80);
  pcVar19 = dbpageUpdate;
  (*var_15)();
  var_16 = var_15 + 0xc62b8;
  var_23 = **(int **)(var_15 + 0xbe864);
  pPStack_90 = (type_4 *)0x0;
  piStack_84 = unaff_s1;
  iStack_80 = var_6;
  pBStack_7c = pBt;
  piStack_78 = unaff_s4;
  pcStack_74 = pcVar19;
  if (*(int *)(*(int *)(var_14 + 0xc) + 0x24) << 3 < 0) {
    var_8 = *(int *)(var_15 + 0xbe2f4) + -0x4564;
LAB_000d187c:
    (**(type_10 **)(var_16 + -0x7fa8))(*(type_6 *)(var_14 + 8));
                    /* WARNING: Subroutine does not return */
    var_17((char *)(*(int *)(var_16 + -0x7fc4) + -0x60a0),var_8);
  }
  if ((int *)var_2 == (int *)0x1) {
    var_8 = *(int *)(var_15 + 0xbe2f4) + -0x4558;
    goto LAB_000d187c;
  }
  var_15 = *(type_10 **)(var_15 + 0xbe318);
  var_4 = (*var_15)(*(type_6 *)&pInfo->nKey);
  var_18 = (*var_15)((int)pInfo->nKey);
  if (var_4 != var_18) {
    var_8 = *(int *)(var_16 + -0x7fc4) + -0x4538;
    goto LAB_000d187c;
  }
  uVar10._0_2_ = pInfo->nLocal;
  uVar10._2_2_ = pInfo->nSize;
  var_8 = (**(type_10 **)(var_16 + -0x7fa4))(uVar10);
  if (var_8 == 0) {
    var_8 = *(int *)(var_16 + -0x7fc4) + -0x4548;
    goto LAB_000d187c;
  }
  var_19 = *(int *)(var_14 + 0xc);
  var_8 = (*(type_10 *)(*(int *)(var_16 + -0x7d64) + -0x6d2c))(var_19,var_8);
  if (var_8 < 0) {
    var_8 = *(int *)(var_16 + -0x7fc4) + -0x4548;
    goto LAB_000d187c;
  }
  if (var_4 == 0) {
    var_8 = *(int *)(var_16 + -0x7fc4) + -0x4584;
    goto LAB_000d187c;
  }
  var_20 = *(void **)(*(int *)(var_19 + 0x10) + var_8 * 0x10 + 4);
  if (var_20 == (void *)0x0) {
    var_8 = *(int *)(var_16 + -0x7fc4) + -0x4584;
    goto LAB_000d187c;
  }
  if (*(type_5 *)(*(int *)((int)var_20 + 4) + 0x2c) < var_4) {
    var_8 = *(int *)(var_16 + -0x7fc4) + -0x4584;
    goto LAB_000d187c;
  }
  if (*(char *)((*(type_3 *)(pInfo->nPayload + 8) & 0x1f) + *(int *)(var_16 + -0x7fc4) + 0x65d0)
      != '\x04') {
    var_8 = *(int *)(var_16 + -0x7fc4) + -0x4574;
    goto LAB_000d187c;
  }
  var_22 = *(type_4 ***)(*(int *)((int)var_20 + 4) + 0x20);
  var_21 = (type_4 **)(**(type_10 **)(var_16 + -0x7f60))();
  var_8 = 0;
  if (var_21 != var_22) {
    var_8 = *(int *)(var_16 + -0x7fc4) + -0x4574;
    goto LAB_000d187c;
  }
  var_21 = &pPStack_90;
  var_18 = var_4;
  var_14 = (*(type_10 *)(*(int *)(var_16 + -0x7dc8) + 0x491c))
                    (**(type_6 **)((int)var_20 + 4),var_4,var_21,0);
  if ((var_14 == 0) && (var_14 = var_12(pPStack_90), var_14 == 0)) {
    var_20 = pPStack_90->pData;
    var_18 = (**(type_10 **)(var_16 + -0x7f5c))(pInfo->nPayload);
    var_21 = var_22;
    (**(type_10 **)(var_16 + -0x7a4c))(var_20);
  }
  (*(type_10 *)(*(int *)(var_16 + -0x7dc8) + 0x49ec))(pPStack_90);
  if (var_23 == **(int **)(var_16 + -0x7a54)) {
    return var_14;
  }
  var_15 = *(type_10 **)(var_16 + -0x7a80);
  pcVar19 = var_35;
  var_19 = var_23;
  (*var_15)();
  var_33 = (type_8 *)**(type_6 **)(var_15 + 0xbe590);
  var_24 = *(int *)(var_19 + 0x74);
  puVar17 = *(type_6 **)(var_19 + 0x14);
  iStack_d0 = var_14;
  pCStack_cc = pInfo;
  pvStack_c8 = var_20;
  uStack_c4 = var_4;
  ppPStack_c0 = var_22;
  uStack_bc = unaff_s5;
  pcStack_b8 = unaff_s6;
  pcStack_b4 = unaff_s7;
  uStack_b0 = var_9;
  pcStack_ac = pcVar19;
  (*(type_10 *)(*(int *)(var_15 + 0xbe21c) + 0x5c00))();
  var_14 = *(int *)(var_19 + 0x28);
  var_4 = (type_5)*(type_3 *)(var_19 + 0x30);
  if (puVar17[9] - var_4 < (type_5)(var_14 - *(int *)(var_24 + 0x38))) {
    var_24 = (*(type_10 *)(*(int *)(var_15 + 0xbe2b8) + 0x3b28))(0x108be);
    goto LAB_000d1a60;
  }
  if (var_18 < var_4) {
    var_22 = var_21;
    if (var_4 < var_18 + (int)var_21) {
      var_22 = (type_4 **)(var_4 - var_18);
    }
    if (var_16 == (type_10 *)0x0) {
      (**(type_10 **)(var_15 + 0xbe598))(var_8,var_14 + var_18,var_22);
    }
    else {
      var_24 = var_12(*(type_4 **)(var_24 + 0x48));
      if (var_24 != 0) goto LAB_000d1a60;
      (**(type_10 **)(var_15 + 0xbe598))(var_14 + var_18,var_8,var_22);
    }
    var_8 = var_8 + (int)var_22;
    var_21 = (type_4 **)((int)var_21 - (int)var_22);
    var_18 = 0;
  }
  else {
    var_18 = var_18 - var_4;
  }
  var_24 = 0;
  if (var_21 == (type_4 **)0x0) goto LAB_000d1a60;
  var_24 = puVar17[9];
  uVar1 = *(type_3 *)(var_19 + 0x30);
  var_27 = (*(type_10 *)(*(int *)(var_15 + 0xbe21c) + 0x2220))(var_14 + (type_5)uVar1);
  var_4 = var_24 - 4;
  if ((*(type_12 *)(var_19 + 1) & 4) == 0) {
    if (var_4 == 0) {
      var_25(7);
    }
    var_26 = ((*(int *)(var_19 + 0x2c) + -1 + var_4) - (type_5)uVar1) / var_4;
    if ((*(int *)(var_19 + 0xc) == 0) ||
       (var_14 = (*(type_10 *)(*(int *)(var_15 + 0xbe21c) + 0x1030))(), var_14 < (int)(var_26 << 2))) {
      var_14 = (*(type_10 *)(*(int *)(var_15 + 0xbe2c8) + 0x5944))(*(type_6 *)(var_19 + 0xc));
      if (var_14 == 0) {
        var_24 = 7;
        goto LAB_000d1a60;
      }
      *(int *)(var_19 + 0xc) = var_14;
    }
    (**(type_10 **)(var_15 + 0xbe4c4))(*(type_6 *)(var_19 + 0xc),0,var_26 << 2);
    *(type_12 *)(var_19 + 1) = *(type_12 *)(var_19 + 1) | 4;
LAB_000d1bac:
    var_26 = 0;
    if (var_27 != 0) goto LAB_000d1bb8;
  }
  else {
    if (var_4 == 0) {
      var_25(7);
    }
    var_26 = var_18 / var_4;
    var_14 = *(int *)(*(int *)(var_19 + 0xc) + var_26 * 4);
    if (var_14 == 0) goto LAB_000d1bac;
    if (var_4 == 0) {
      var_25(7);
    }
    var_18 = var_18 % var_4;
    var_27 = var_14;
LAB_000d1bb8:
    var_28 = var_26 << 2;
    var_14 = *(int *)(var_15 + 0xbe21c);
    var_29 = *(int *)(var_15 + 0xbe21c);
    var_30 = *(int *)(var_15 + 0xbe21c);
    var_32 = *(int *)(var_15 + 0xbe2b8);
    do {
      *(int *)(*(int *)(var_19 + 0xc) + var_28) = var_27;
      if (var_18 < var_4) {
        var_22 = var_21;
        if (var_4 < var_18 + (int)var_21) {
          var_22 = (type_4 **)(var_4 - var_18);
        }
        if (var_16 == (type_10 *)0x0) {
          var_24 = (*(type_10 *)(var_14 + 0x491c))(*puVar17,var_27,&pPStack_d8,2);
          if (var_24 == 0) {
            var_20 = pPStack_d8->pData;
            var_27 = (*(type_10 *)(var_29 + 0x2220))(var_20);
            (**(type_10 **)(var_15 + 0xbe598))(var_8,(int)var_20 + var_18 + 4,var_22);
            goto LAB_000d1dcc;
          }
        }
        else {
          var_24 = (*(type_10 *)(var_14 + 0x491c))(*puVar17,var_27,&pPStack_d8,0);
          pPg = pPStack_d8;
          if (var_24 == 0) {
            var_20 = pPStack_d8->pData;
            var_27 = (*(type_10 *)(var_29 + 0x2220))(var_20);
            var_24 = var_12(pPg);
            if (var_24 == 0) {
              (**(type_10 **)(var_15 + 0xbe598))((int)var_20 + var_18 + 4,var_8,var_22);
            }
LAB_000d1dcc:
            (*(type_10 *)(var_30 + 0x49ec))(pPStack_d8);
            var_18 = 0;
          }
        }
        var_21 = (type_4 **)((int)var_21 - (int)var_22);
        var_8 = var_8 + (int)var_22;
        if (var_21 == (type_4 **)0x0) goto LAB_000d1a60;
      }
      else {
        var_31 = *(int *)(*(int *)(var_19 + 0xc) + var_28 + 4);
        var_24 = 0;
        if (var_31 == 0) {
          var_24 = (*(type_10 *)(var_32 + 0x43f4))(puVar17,var_27,0,&var_27);
          var_31 = var_27;
        }
        var_27 = var_31;
        var_18 = var_18 - var_4;
      }
      if (var_24 != 0) goto LAB_000d1a60;
      var_28 = var_28 + 4;
    } while (var_27 != 0);
    if (var_21 == (type_4 **)0x0) goto LAB_000d1a60;
  }
  var_24 = (*(type_10 *)(*(int *)(var_15 + 0xbe2b8) + 0x3b28))(0x1094f);
LAB_000d1a60:
  if (var_33 != (type_8 *)**(int **)(var_15 + 0xbe590)) {
    var_15 = *(type_10 **)(var_15 + 0xbe564);
    pCur = var_33;
    (*var_15)();
    if (pCur->curIntKey == '\0') {
      (*(type_10 *)(*(int *)(var_15 + 0xbdd3c) + 0x5c00))();
      var_4 = (pCur->info).nPayload;
      *(type_6 *)&pCur->nKey = 0;
      *(type_5 *)((int)&pCur->nKey + 4) = var_4;
      var_34 = (type_7 *)(*(type_10 *)(*(int *)(var_15 + 0xbdd3c) + 0x1068))(var_4 + 0x11 < var_4);
      if (var_34 == (type_7 *)0x0) {
        var_14 = 7;
      }
      else {
        var_14 = var_35(pCur,0,(type_13)pCur->nKey,var_34,0);
        if (var_14 == 0) {
          (**(type_10 **)(var_15 + 0xbdfe4))(var_34 + (int)pCur->nKey,0,0x11);
          pCur->pKey = var_34;
        }
        else {
          (**(type_10 **)(var_15 + 0xbdb5c))(var_34);
        }
      }
    }
    else {
      (*(type_10 *)(*(int *)(var_15 + 0xbdd3c) + 0x5c00))();
      uVar10 = *(type_6 *)&(pCur->info).nKey;
      *(int *)((int)&pCur->nKey + 4) = (int)(pCur->info).nKey;
      *(type_6 *)&pCur->nKey = uVar10;
      var_14 = 0;
    }
    return var_14;
  }
  return var_24;
}


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

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

{
  ushort uVar1;
  uint uVar2;
  int *piVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int *piVar11;
  int *piVar12;
  int *unaff_s1;
  code *unaff_s2;
  code *pcVar13;
  int iVar14;
  int iVar15;
  int *unaff_s4;
  int *piVar16;
  undefined *unaff_s5;
  int *piVar17;
  uint uVar18;
  code *unaff_s6;
  undefined4 *puVar19;
  code *unaff_s7;
  undefined *puVar20;
  uint unaff_s8;
  undefined4 uVar21;
  code *pcVar22;
  uint uVar23;
  int iStack_dc;
  int iStack_d8;
  int iStack_d4;
  int iStack_d0;
  int *piStack_cc;
  code *pcStack_c8;
  int *piStack_c4;
  int *piStack_c0;
  undefined *puStack_bc;
  code *pcStack_b8;
  code *pcStack_b4;
  uint uStack_b0;
  code *pcStack_ac;
  undefined *local_98;
  int local_90;
  int local_8c;
  int local_88;
  int *local_84;
  code *local_80;
  int *local_7c;
  int *local_78;
  undefined4 local_74;
  undefined4 local_60;
  int local_50;
  int local_4c;
  int aiStack_48 [7];
  int local_2c;
  
  local_2c = *(int *)PTR___stack_chk_guard_0018fecc;
  if ((int *)param_1[0xb] < param_2) {
    local_88 = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119d6);
    piVar11 = param_3;
    piVar12 = param_4;
  }
  else {
    local_60 = 0;
    piVar12 = (int *)0x0;
    piVar11 = &local_50;
    local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x46c4))();
    local_88 = local_4c;
    unaff_s4 = param_4;
    if (local_4c == 0) {
      if (*(char *)(local_50 + 1) == '\0') {
        *(undefined1 *)(local_50 + 1) = 1;
        puVar20 = PTR_LAB_0018fbb4;
        uVar2 = (uint)*(ushort *)(local_50 + 0x16);
        unaff_s8 = (uint)*(byte *)(local_50 + 9);
        if (uVar2 != 0) {
          unaff_s2 = (code *)0x0;
          unaff_s7 = (code *)(PTR_LAB_0018fb58 + 0x2220);
          unaff_s6 = (code *)(PTR_LAB_0018fbb4 + 0x1340);
          iVar4 = 0;
          do {
            local_4c = 0;
            unaff_s1 = (int *)(*(int *)(local_50 + 0x38) +
                              (uint)(*(ushort *)(unaff_s2 + *(int *)(local_50 + 0x40)) &
                                    *(ushort *)(local_50 + 0x18)));
            unaff_s5 = puVar20;
            if (*(char *)(local_50 + 8) == '\0') {
              param_2 = (int *)(*unaff_s7)(unaff_s1);
              piVar11 = (int *)0x1;
              piVar12 = param_4;
              local_4c = (*unaff_s6)(param_1,param_2,1,param_4);
              if (local_4c != 0) goto LAB_000d1454;
            }
            local_4c = 0;
            piVar11 = aiStack_48;
            param_2 = unaff_s1;
            local_4c = FUN_000ce738(local_50);
            if (local_4c != 0) goto LAB_000d1454;
            iVar4 = iVar4 + 1;
            uVar2 = (uint)*(ushort *)(local_50 + 0x16);
            unaff_s2 = unaff_s2 + 2;
          } while (iVar4 < (int)uVar2);
        }
        if (*(char *)(local_50 + 8) == '\0') {
          param_2 = (int *)(*(code *)(PTR_LAB_0018fb58 + 0x2220))
                                     (*(int *)(local_50 + 0x38) + unaff_s8 + 8);
          piVar11 = (int *)0x1;
          piVar12 = param_4;
          local_4c = MASKED(param_1,param_2,1,param_4);
          if (local_4c != 0) goto LAB_000d1454;
        }
        else if (param_4 != (int *)0x0) {
          *param_4 = *param_4 + uVar2;
        }
        if (param_3 == (int *)0x0) {
          local_4c = FUN_000c6d30(*(undefined4 *)(local_50 + 0x48));
          if (local_4c == 0) {
            param_2 = (int *)(*(byte *)(*(int *)(local_50 + 0x38) + unaff_s8) | 8);
            (*(code *)(PTR_LAB_0018fbf4 + 0x3c90))();
          }
        }
        else {
          param_2 = &local_4c;
          FUN_000ce9ec(local_50);
        }
      }
      else {
        local_4c = (*(code *)(PTR_LAB_0018fbf4 + 0x3b28))(0x119db);
      }
LAB_000d1454:
      *(undefined1 *)(local_50 + 1) = 0;
      (*(code *)(PTR_LAB_0018fb58 + 0x5aac))(local_50);
      local_88 = local_4c;
    }
  }
  if (local_2c == *(int *)PTR___stack_chk_guard_0018fecc) {
    return local_88;
  }
  uVar21 = 0xd1668;
  iVar4 = local_2c;
  puVar20 = PTR___stack_chk_fail_0018fea0;
  (*(code *)PTR___stack_chk_fail_0018fea0)();
  local_98 = puVar20 + 0xc62b8;
  local_8c = **(int **)(puVar20 + 0xbe864);
  local_90 = 0;
  piVar16 = piVar11;
  local_84 = unaff_s1;
  local_80 = unaff_s2;
  local_7c = param_1;
  local_78 = unaff_s4;
  local_74 = uVar21;
  if (*(int *)(*(int *)(iVar4 + 0xc) + 0x24) << 3 < 0) {
    piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4564);
LAB_000d187c:
    (**(code **)(local_98 + -0x7fa8))(*(undefined4 *)(iVar4 + 8));
    piVar3 = piVar11;
    uVar21 = sqlite3_mprintf(*(int *)(local_98 + -0x7fc4) + -0x60a0);
    *(undefined4 *)(iVar4 + 8) = uVar21;
    iVar4 = 1;
  }
  else {
    if (param_2 == (int *)0x1) {
      piVar11 = (int *)(*(int *)(puVar20 + 0xbe2f4) + -0x4558);
      goto LAB_000d187c;
    }
    pcVar13 = *(code **)(puVar20 + 0xbe318);
    param_1 = (int *)(*pcVar13)(*piVar11);
    piVar3 = (int *)(*pcVar13)(piVar11[1]);
    unaff_s2 = pcVar13;
    if (param_1 != piVar3) {
      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4538);
      goto LAB_000d187c;
    }
    iVar10 = (**(code **)(local_98 + -0x7fa4))(piVar11[4]);
    if (iVar10 == 0) {
      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);
      goto LAB_000d187c;
    }
    unaff_s2 = *(code **)(iVar4 + 0xc);
    iVar10 = (*(code *)(*(int *)(local_98 + -0x7d64) + -0x6d2c))(unaff_s2,iVar10);
    if (iVar10 < 0) {
      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4548);
      goto LAB_000d187c;
    }
    if (param_1 == (int *)0x0) {
      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);
      goto LAB_000d187c;
    }
    unaff_s2 = *(code **)(*(int *)(unaff_s2 + 0x10) + iVar10 * 0x10 + 4);
    if (unaff_s2 == (code *)0x0) {
      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);
      goto LAB_000d187c;
    }
    if (*(int **)(*(int *)(unaff_s2 + 4) + 0x2c) < param_1) {
      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4584);
      goto LAB_000d187c;
    }
    if (*(char *)((*(ushort *)(piVar11[3] + 8) & 0x1f) + *(int *)(local_98 + -0x7fc4) + 0x65d0) !=
        '\x04') {
      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);
      goto LAB_000d187c;
    }
    unaff_s4 = *(int **)(*(int *)(unaff_s2 + 4) + 0x20);
    piVar3 = (int *)(**(code **)(local_98 + -0x7f60))();
    piVar12 = (int *)0x0;
    if (piVar3 != unaff_s4) {
      piVar11 = (int *)(*(int *)(local_98 + -0x7fc4) + -0x4574);
      goto LAB_000d187c;
    }
    piVar16 = &local_90;
    piVar3 = param_1;
    iVar4 = (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x491c))
                      (**(undefined4 **)(unaff_s2 + 4),param_1,piVar16,0);
    if ((iVar4 == 0) && (iVar4 = FUN_000c6d30(local_90), iVar4 == 0)) {
      unaff_s2 = *(code **)(local_90 + 4);
      piVar3 = (int *)(**(code **)(local_98 + -0x7f5c))(piVar11[3]);
      piVar16 = unaff_s4;
      (**(code **)(local_98 + -0x7a4c))(unaff_s2);
    }
    (*(code *)(*(int *)(local_98 + -0x7dc8) + 0x49ec))(local_90);
  }
  if (local_8c == **(int **)(local_98 + -0x7a54)) {
    return iVar4;
  }
  pcVar13 = *(code **)(local_98 + -0x7a80);
  pcVar22 = FUN_000d193c;
  iVar10 = local_8c;
  (*pcVar13)();
  iStack_d4 = **(int **)(pcVar13 + 0xbe590);
  iVar15 = *(int *)(iVar10 + 0x74);
  puVar19 = *(undefined4 **)(iVar10 + 0x14);
  iStack_d0 = iVar4;
  piStack_cc = piVar11;
  pcStack_c8 = unaff_s2;
  piStack_c4 = param_1;
  piStack_c0 = unaff_s4;
  puStack_bc = unaff_s5;
  pcStack_b8 = unaff_s6;
  pcStack_b4 = unaff_s7;
  uStack_b0 = unaff_s8;
  pcStack_ac = pcVar22;
  (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x5c00))();
  iVar4 = *(int *)(iVar10 + 0x28);
  piVar11 = (int *)(uint)*(ushort *)(iVar10 + 0x30);
  if ((uint)(puVar19[9] - (int)piVar11) < (uint)(iVar4 - *(int *)(iVar15 + 0x38))) {
    iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x108be);
    goto LAB_000d1a60;
  }
  if (piVar3 < piVar11) {
    piVar17 = piVar16;
    if (piVar11 < (int *)((int)piVar3 + (int)piVar16)) {
      piVar17 = (int *)((int)piVar11 - (int)piVar3);
    }
    if (local_98 == (undefined *)0x0) {
      (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar4 + (int)piVar3,piVar17);
    }
    else {
      iVar15 = FUN_000c6d30(*(undefined4 *)(iVar15 + 0x48));
      if (iVar15 != 0) goto LAB_000d1a60;
      (**(code **)(pcVar13 + 0xbe598))(iVar4 + (int)piVar3,piVar12,piVar17);
    }
    piVar12 = (int *)((int)piVar12 + (int)piVar17);
    piVar16 = (int *)((int)piVar16 - (int)piVar17);
    uVar2 = 0;
  }
  else {
    uVar2 = (int)piVar3 - (int)piVar11;
  }
  iVar15 = 0;
  if (piVar16 == (int *)0x0) goto LAB_000d1a60;
  iVar15 = puVar19[9];
  uVar1 = *(ushort *)(iVar10 + 0x30);
  iStack_dc = (*(code *)(*(int *)(pcVar13 + 0xbe21c) + 0x2220))(iVar4 + (uint)uVar1);
  uVar18 = iVar15 - 4;
  if ((*(byte *)(iVar10 + 1) & 4) == 0) {
    if (uVar18 == 0) {
      trap(7);
    }
    uVar23 = ((*(int *)(iVar10 + 0x2c) + -1 + uVar18) - (uint)uVar1) / uVar18;
    if ((*(int *)(iVar10 + 0xc) == 0) ||
       (iVar4 = (*(code *)(&DAT_00001030 + *(int *)(pcVar13 + 0xbe21c)))(),
       iVar4 < (int)(uVar23 << 2))) {
      iVar4 = (*(code *)(*(int *)(pcVar13 + 0xbe2c8) + 0x5944))(*(undefined4 *)(iVar10 + 0xc));
      if (iVar4 == 0) {
        iVar15 = 7;
        goto LAB_000d1a60;
      }
      *(int *)(iVar10 + 0xc) = iVar4;
    }
    (**(code **)(pcVar13 + 0xbe4c4))(*(undefined4 *)(iVar10 + 0xc),0,uVar23 << 2);
    *(byte *)(iVar10 + 1) = *(byte *)(iVar10 + 1) | 4;
LAB_000d1bac:
    uVar23 = 0;
    if (iStack_dc != 0) goto LAB_000d1bb8;
  }
  else {
    if (uVar18 == 0) {
      trap(7);
    }
    uVar23 = uVar2 / uVar18;
    iVar4 = *(int *)(*(int *)(iVar10 + 0xc) + uVar23 * 4);
    if (iVar4 == 0) goto LAB_000d1bac;
    if (uVar18 == 0) {
      trap(7);
    }
    uVar2 = uVar2 % uVar18;
    iStack_dc = iVar4;
LAB_000d1bb8:
    iVar14 = uVar23 << 2;
    iVar4 = *(int *)(pcVar13 + 0xbe21c);
    iVar5 = *(int *)(pcVar13 + 0xbe21c);
    iVar6 = *(int *)(pcVar13 + 0xbe21c);
    iVar7 = *(int *)(pcVar13 + 0xbe2b8);
    do {
      *(int *)(*(int *)(iVar10 + 0xc) + iVar14) = iStack_dc;
      if (uVar2 < uVar18) {
        piVar11 = piVar16;
        if (uVar18 < uVar2 + (int)piVar16) {
          piVar11 = (int *)(uVar18 - uVar2);
        }
        if (local_98 == (undefined *)0x0) {
          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,2);
          if (iVar15 == 0) {
            iVar8 = *(int *)(iStack_d8 + 4);
            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar8);
            (**(code **)(pcVar13 + 0xbe598))(piVar12,iVar8 + uVar2 + 4,piVar11);
            goto LAB_000d1dcc;
          }
        }
        else {
          iVar15 = (*(code *)(iVar4 + 0x491c))(*puVar19,iStack_dc,&iStack_d8,0);
          iVar8 = iStack_d8;
          if (iVar15 == 0) {
            iVar9 = *(int *)(iStack_d8 + 4);
            iStack_dc = (*(code *)(iVar5 + 0x2220))(iVar9);
            iVar15 = FUN_000c6d30(iVar8);
            if (iVar15 == 0) {
              (**(code **)(pcVar13 + 0xbe598))(iVar9 + uVar2 + 4,piVar12,piVar11);
            }
LAB_000d1dcc:
            (*(code *)(iVar6 + 0x49ec))(iStack_d8);
            uVar2 = 0;
          }
        }
        piVar16 = (int *)((int)piVar16 - (int)piVar11);
        piVar12 = (int *)((int)piVar12 + (int)piVar11);
        if (piVar16 == (int *)0x0) goto LAB_000d1a60;
      }
      else {
        iVar8 = *(int *)(*(int *)(iVar10 + 0xc) + iVar14 + 4);
        iVar15 = 0;
        if (iVar8 == 0) {
          iVar15 = (*(code *)(iVar7 + 0x43f4))(puVar19,iStack_dc,0,&iStack_dc);
          iVar8 = iStack_dc;
        }
        iStack_dc = iVar8;
        uVar2 = uVar2 - uVar18;
      }
      if (iVar15 != 0) goto LAB_000d1a60;
      iVar14 = iVar14 + 4;
    } while (iStack_dc != 0);
    if (piVar16 == (int *)0x0) goto LAB_000d1a60;
  }
  iVar15 = (*(code *)(*(int *)(pcVar13 + 0xbe2b8) + 0x3b28))(0x1094f);
LAB_000d1a60:
  if (iStack_d4 != **(int **)(pcVar13 + 0xbe590)) {
    pcVar13 = *(code **)(pcVar13 + 0xbe564);
    iVar4 = iStack_d4;
    (*pcVar13)();
    if (*(char *)(iVar4 + 0x45) == '\0') {
      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();
      uVar2 = *(uint *)(iVar4 + 0x2c);
      *(undefined4 *)(iVar4 + 0x38) = 0;
      *(uint *)(iVar4 + 0x3c) = uVar2;
      iVar10 = (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x1068))(uVar2 + 0x11 < uVar2);
      if (iVar10 == 0) {
        iVar15 = 7;
      }
      else {
        iVar15 = FUN_000d193c(iVar4,0,*(undefined4 *)(iVar4 + 0x3c),iVar10,0);
        if (iVar15 == 0) {
          (**(code **)(pcVar13 + 0xbdfe4))(iVar10 + *(int *)(iVar4 + 0x3c),0,0x11);
          *(int *)(iVar4 + 0x10) = iVar10;
        }
        else {
          (**(code **)(pcVar13 + 0xbdb5c))(iVar10);
        }
      }
    }
    else {
      (*(code *)(*(int *)(pcVar13 + 0xbdd3c) + 0x5c00))();
      *(undefined4 *)(iVar4 + 0x3c) = *(undefined4 *)(iVar4 + 0x24);
      *(undefined4 *)(iVar4 + 0x38) = *(undefined4 *)(iVar4 + 0x20);
      iVar15 = 0;
    }
    return iVar15;
  }
  return iVar15;
}

