
/* WARNING: Function: __x86.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */

int __regparm3 vdbeCloseStatement(Vdbe *p,int eOp)

{
  u8 uVar1;
  sqlite3 *db;
  Btree *p_00;
  BtShared *pBt;
  uint uVar2;
  undefined4 uVar3;
  void *p_01;
  Bitvec *p_02;
  sqlite3_io_methods *psVar4;
  int iSavepoint;
  Pgno PVar5;
  int iVar6;
  int iVar7;
  undefined4 *puVar8;
  int iVar9;
  int local_50;
  int local_3c;
  int local_38;
  Pager *local_30;
  
  db = p->db;
  iVar6 = db->nDb;
  iSavepoint = p->iStatement + -1;
  if (iVar6 < 1) {
    db->nStatement = db->nStatement + -1;
    p->iStatement = 0;
LAB_000826b7:
    if (eOp == 2) {
      if (db->aVTrans == (VTable **)0x0) {
        local_50 = 0;
        goto LAB_000826f1;
      }
      local_50 = sqlite3VtabSavepoint(db,2,iSavepoint);
      if ((local_50 != 0) || (db->aVTrans == (VTable **)0x0)) goto LAB_000826f1;
    }
    else if (db->aVTrans == (VTable **)0x0) {
      return 0;
    }
    local_50 = sqlite3VtabSavepoint(db,1,iSavepoint);
  }
  else {
    iVar9 = 0;
    local_50 = 0;
    do {
      p_00 = db->aDb[iVar9].pBt;
      iVar7 = local_50;
      if (p_00 != (Btree *)0x0) {
        uVar1 = p_00->inTrans;
        if (eOp == 2) {
          iVar7 = 0;
          if (uVar1 != '\x02') goto LAB_0008257d;
          iVar7 = sqlite3BtreeSavepoint(p_00,2,iSavepoint);
          if (iVar7 == 0) {
            uVar1 = p_00->inTrans;
            goto joined_r0x00082572;
          }
LAB_0008265a:
          iVar6 = db->nDb;
        }
        else {
joined_r0x00082572:
          if (uVar1 == '\x02') {
            pBt = p_00->pBt;
            if (p_00->sharable == '\0') {
              local_30 = pBt->pPager;
              iVar7 = local_30->errCode;
              if (iVar7 != 0) goto LAB_0008265a;
LAB_000825fe:
              iVar6 = local_30->nSavepoint;
              local_3c = iSavepoint;
              local_38 = iSavepoint * 0x2c;
              if (iSavepoint < iVar6) {
                do {
                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);
                  if (p_01 != (void *)0x0) {
                    if (*(int *)((int)p_01 + 8) != 0) {
                      puVar8 = (undefined4 *)((int)p_01 + 0xc);
                      do {
                        p_02 = (Bitvec *)*puVar8;
                        puVar8 = puVar8 + 1;
                        sqlite3BitvecDestroy(p_02);
                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);
                    }
                    sqlite3_free(p_01);
                    iVar6 = local_30->nSavepoint;
                  }
                  local_3c = local_3c + 1;
                  local_38 = local_38 + 0x2c;
                } while (local_3c < iVar6);
                local_30->nSavepoint = iSavepoint;
                if (iSavepoint != 0) goto LAB_0008260b;
                psVar4 = local_30->sjfd->pMethods;
                if (psVar4 != (sqlite3_io_methods *)0x0) {
                  if (psVar4 == &MemJournalMethods) {
                    iVar7 = memjrnlTruncate(local_30->sjfd,0);
                    local_30->nSubRec = 0;
                    if (iVar7 != 0) goto LAB_00082643;
                  }
                  else {
                    local_30->nSubRec = 0;
                  }
                }
LAB_00082617:
                iVar7 = 0;
                if (pBt->nPage == 0) goto LAB_00082805;
              }
              else {
LAB_0008260b:
                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;
                pBt->nPage = 0;
LAB_00082805:
                iVar7 = newDatabase(pBt);
              }
              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);
              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |
                      uVar2 << 0x18;
              if (PVar5 == 0) {
                PVar5 = pBt->pPager->dbSize;
              }
              pBt->nPage = PVar5;
LAB_00082643:
              if (p_00->sharable == '\0') goto LAB_0008265a;
              iVar6 = p_00->wantToLock;
            }
            else {
              iVar6 = p_00->wantToLock + 1;
              p_00->wantToLock = iVar6;
              if (p_00->locked == '\0') {
                btreeLockCarefully(p_00);
                local_30 = pBt->pPager;
                iVar7 = local_30->errCode;
                if (iVar7 == 0) goto LAB_000825fe;
                goto LAB_00082643;
              }
              local_30 = pBt->pPager;
              iVar7 = local_30->errCode;
              if (iVar7 == 0) goto LAB_000825fe;
            }
            p_00->wantToLock = iVar6 + -1;
            if (iVar6 + -1 != 0) goto LAB_0008265a;
            unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);
            iVar6 = db->nDb;
          }
          else {
            iVar7 = 0;
            iVar6 = db->nDb;
          }
        }
LAB_0008257d:
        if (local_50 != 0) {
          iVar7 = local_50;
        }
      }
      local_50 = iVar7;
      iVar9 = iVar9 + 1;
    } while (iVar9 < iVar6);
    db->nStatement = db->nStatement + -1;
    p->iStatement = 0;
    if (local_50 == 0) goto LAB_000826b7;
  }
  if (eOp != 2) {
    return local_50;
  }
LAB_000826f1:
  uVar3 = *(undefined4 *)((int)&p->nStmtDefCons + 4);
  *(int *)&db->nDeferredCons = (int)p->nStmtDefCons;
  *(undefined4 *)((int)&db->nDeferredCons + 4) = uVar3;
  uVar3 = *(undefined4 *)((int)&p->nStmtDefImmCons + 4);
  *(int *)&db->nDeferredImmCons = (int)p->nStmtDefImmCons;
  *(undefined4 *)((int)&db->nDeferredImmCons + 4) = uVar3;
  return local_50;
}



/* WARNING: Function: __i686.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */

int __regparm3 FUN_00082510(int *param_1,int param_2)

{
  char cVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  undefined *puVar5;
  int iVar6;
  uint uVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int local_50;
  int local_3c;
  int local_38;
  int local_30;
  
  iVar2 = *param_1;
  iVar9 = *(int *)(iVar2 + 0x14);
  iVar6 = param_1[0xc] + -1;
  if (iVar9 < 1) {
    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;
    param_1[0xc] = 0;
LAB_000826b7:
    if (param_2 == 2) {
      if (*(int *)(iVar2 + 0x174) == 0) {
        local_50 = 0;
        goto LAB_000826f1;
      }
      local_50 = FUN_000430f0();
      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;
    }
    else if (*(int *)(iVar2 + 0x174) == 0) {
      return 0;
    }
    local_50 = FUN_000430f0();
  }
  else {
    iVar10 = 0;
    local_50 = 0;
    do {
      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);
      iVar8 = local_50;
      if (iVar3 != 0) {
        cVar1 = *(char *)(iVar3 + 8);
        if (param_2 == 2) {
          iVar8 = 0;
          if (cVar1 != '\x02') goto LAB_0008257d;
          iVar8 = FUN_00082410();
          if (iVar8 == 0) {
            cVar1 = *(char *)(iVar3 + 8);
            goto joined_r0x00082572;
          }
LAB_0008265a:
          iVar9 = *(int *)(iVar2 + 0x14);
        }
        else {
joined_r0x00082572:
          if (cVar1 == '\x02') {
            piVar4 = *(int **)(iVar3 + 4);
            if (*(char *)(iVar3 + 9) == '\0') {
              local_30 = *piVar4;
              iVar8 = *(int *)(local_30 + 0x28);
              if (iVar8 != 0) goto LAB_0008265a;
LAB_000825fe:
              iVar9 = *(int *)(local_30 + 0x60);
              local_3c = iVar6;
              local_38 = iVar6 * 0x2c;
              if (iVar6 < iVar9) {
                do {
                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);
                  if (iVar8 != 0) {
                    if (*(int *)(iVar8 + 8) != 0) {
                      iVar9 = iVar8 + 0xc;
                      do {
                        iVar9 = iVar9 + 4;
                        FUN_000297b0();
                      } while (iVar8 + 0x200 != iVar9);
                    }
                    sqlite3_free(iVar8);
                    iVar9 = *(int *)(local_30 + 0x60);
                  }
                  local_3c = local_3c + 1;
                  local_38 = local_38 + 0x2c;
                } while (local_3c < iVar9);
                *(int *)(local_30 + 0x60) = iVar6;
                if (iVar6 != 0) goto LAB_0008260b;
                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);
                if (puVar5 != (undefined *)0x0) {
                  if (puVar5 == &DAT_001058c0) {
                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);
                    *(undefined4 *)(local_30 + 0x34) = 0;
                    if (iVar8 != 0) goto LAB_00082643;
                  }
                  else {
                    *(undefined4 *)(local_30 + 0x34) = 0;
                  }
                }
LAB_00082617:
                iVar8 = 0;
                if (piVar4[0xc] == 0) goto LAB_00082805;
              }
              else {
LAB_0008260b:
                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;
                piVar4[0xc] = 0;
LAB_00082805:
                iVar8 = FUN_000761e0();
              }
              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);
              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |
                      uVar7 << 0x18;
              if (uVar7 == 0) {
                uVar7 = *(uint *)(*piVar4 + 0x18);
              }
              piVar4[0xc] = uVar7;
LAB_00082643:
              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;
              iVar9 = *(int *)(iVar3 + 0xc);
            }
            else {
              iVar9 = *(int *)(iVar3 + 0xc) + 1;
              *(int *)(iVar3 + 0xc) = iVar9;
              if (*(char *)(iVar3 + 10) == '\0') {
                FUN_00024a50();
                local_30 = *piVar4;
                iVar8 = *(int *)(local_30 + 0x28);
                if (iVar8 == 0) goto LAB_000825fe;
                goto LAB_00082643;
              }
              local_30 = *piVar4;
              iVar8 = *(int *)(local_30 + 0x28);
              if (iVar8 == 0) goto LAB_000825fe;
            }
            *(int *)(iVar3 + 0xc) = iVar9 + -1;
            if (iVar9 + -1 != 0) goto LAB_0008265a;
            FUN_00024a20();
            iVar9 = *(int *)(iVar2 + 0x14);
          }
          else {
            iVar8 = 0;
            iVar9 = *(int *)(iVar2 + 0x14);
          }
        }
LAB_0008257d:
        if (local_50 != 0) {
          iVar8 = local_50;
        }
      }
      local_50 = iVar8;
      iVar10 = iVar10 + 1;
    } while (iVar10 < iVar9);
    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;
    param_1[0xc] = 0;
    if (local_50 == 0) goto LAB_000826b7;
  }
  if (param_2 != 2) {
    return local_50;
  }
LAB_000826f1:
  iVar9 = param_1[0x12];
  *(int *)(iVar2 + 0x1dc) = param_1[0x11];
  *(int *)(iVar2 + 0x1e0) = iVar9;
  iVar9 = param_1[0x14];
  *(int *)(iVar2 + 0x1e4) = param_1[0x13];
  *(int *)(iVar2 + 0x1e8) = iVar9;
  return local_50;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000d0aa7
ADD ECX,0x83ae7
SUB ESP,0x4c
MOV dword ptr [ESP + 0x10],EDX
MOV EDX,dword ptr [EAX]
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [EAX + 0x30]
MOV dword ptr [ESP + 0x28],ECX
MOV dword ptr [ESP + 0x8],EDX
MOV EDX,dword ptr [EDX + 0x14]
MOV dword ptr [ESP + 0xc],EAX
SUB EAX,0x1
MOV dword ptr [ESP + 0x18],EAX
TEST EDX,EDX
JLE 0x000826a1
IMUL EAX,EAX,0x2c
XOR EDI,EDI
MOV dword ptr [ESP + 0xc],0x0
MOV dword ptr [ESP + 0x30],EAX
LEA EAX,[ECX + 0xfffff8c0]
MOV dword ptr [ESP + 0x34],EAX
JMP 0x00082595
CMP AL,0x2
JZ 0x000825e0
MOV EAX,dword ptr [ESP + 0x8]
XOR EBX,EBX
MOV EDX,dword ptr [EAX + 0x14]
MOV EAX,dword ptr [ESP + 0xc]
TEST EAX,EAX
CMOVNZ EBX,EAX
MOV dword ptr [ESP + 0xc],EBX
ADD EDI,0x1
CMP EDI,EDX
JGE 0x00082670
MOV ECX,dword ptr [ESP + 0x8]
MOV EAX,EDI
SHL EAX,0x4
ADD EAX,dword ptr [ECX + 0x10]
MOV ESI,dword ptr [EAX + 0x4]
TEST ESI,ESI
JZ 0x0008258a
CMP dword ptr [ESP + 0x10],0x2
MOVZX EAX,byte ptr [ESI + 0x8]
JNZ 0x00082570
XOR EBX,EBX
CMP AL,0x2
JNZ 0x0008257d
MOV ECX,dword ptr [ESP + 0x18]
MOV EDX,0x2
MOV EAX,ESI
CALL 0x00082410
TEST EAX,EAX
MOV EBX,EAX
JNZ 0x0008265a
MOVZX EAX,byte ptr [ESI + 0x8]
CMP AL,0x2
JNZ 0x00082574
NOP
LEA ESI,[ESI]
CMP byte ptr [ESI + 0x9],0x0
MOV EAX,dword ptr [ESI + 0x4]
MOV dword ptr [ESP + 0x14],EAX
JNZ 0x00082729
MOV EAX,dword ptr [EAX]
MOV EBX,dword ptr [EAX + 0x28]
MOV dword ptr [ESP + 0x2c],EAX
TEST EBX,EBX
JNZ 0x0008265a
MOV EAX,dword ptr [EAX + 0x60]
CMP dword ptr [ESP + 0x18],EAX
JL 0x00082811
MOV EBX,dword ptr [ESP + 0x18]
TEST EBX,EBX
JS 0x000827f0
MOV EAX,dword ptr [ESP + 0x14]
XOR EBX,EBX
MOV EDX,dword ptr [EAX + 0x30]
TEST EDX,EDX
JZ 0x00082805
MOV EDX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EDX + 0xc]
MOV EAX,dword ptr [EAX + 0x38]
MOV EAX,dword ptr [EAX + 0x1c]
BSWAP EAX
TEST EAX,EAX
JNZ 0x00082640
MOV EAX,dword ptr [EDX]
MOV EAX,dword ptr [EAX + 0x18]
MOV dword ptr [EDX + 0x30],EAX
CMP byte ptr [ESI + 0x9],0x0
JZ 0x0008265a
MOV EAX,dword ptr [ESI + 0xc]
SUB EAX,0x1
TEST EAX,EAX
MOV dword ptr [ESI + 0xc],EAX
JZ 0x000827a0
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [EAX + 0x14]
JMP 0x0008257d
MOV EAX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0xc]
SUB dword ptr [EAX + 0x1d8],0x1
MOV EAX,dword ptr [ESP + 0x1c]
TEST ECX,ECX
MOV dword ptr [EAX + 0x30],0x0
JZ 0x000826b7
CMP dword ptr [ESP + 0x10],0x2
JZ 0x000826f1
MOV EAX,dword ptr [ESP + 0xc]
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x8]
SUB dword ptr [EAX + 0x1d8],0x1
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [EAX + 0x30],0x0
CMP dword ptr [ESP + 0x10],0x2
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x174]
JZ 0x00082760
TEST EAX,EAX
JZ 0x000827b7
MOV ECX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,0x1
CALL 0x000430f0
CMP dword ptr [ESP + 0x10],0x2
MOV dword ptr [ESP + 0xc],EAX
JNZ 0x00082695
MOV EDI,dword ptr [ESP + 0x1c]
MOV ECX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EDI + 0x44]
MOV EDX,dword ptr [EDI + 0x48]
MOV dword ptr [ECX + 0x1dc],EAX
MOV dword ptr [ECX + 0x1e0],EDX
MOV EAX,dword ptr [EDI + 0x4c]
MOV EDX,dword ptr [EDI + 0x50]
MOV dword ptr [ECX + 0x1e4],EAX
MOV dword ptr [ECX + 0x1e8],EDX
MOV EAX,dword ptr [ESP + 0xc]
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESI + 0xc]
ADD EAX,0x1
CMP byte ptr [ESI + 0xa],0x0
MOV dword ptr [ESI + 0xc],EAX
JZ 0x000827cb
MOV EDX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EDX]
MOV EBX,dword ptr [EDX + 0x28]
MOV dword ptr [ESP + 0x2c],EDX
TEST EBX,EBX
JNZ 0x0008264c
MOV EAX,EDX
JMP 0x000825fe
TEST EAX,EAX
JZ 0x000828e0
MOV ECX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,0x2
CALL 0x000430f0
TEST EAX,EAX
MOV dword ptr [ESP + 0xc],EAX
JNZ 0x000826f1
MOV EAX,dword ptr [ESP + 0x8]
CMP dword ptr [EAX + 0x174],0x0
JNZ 0x000826d4
JMP 0x000826f1
MOV EAX,dword ptr [ESI + 0x4]
LEA EDX,[ESI + 0xa]
CALL 0x00024a20
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [EAX + 0x14]
JMP 0x0008257d
MOV dword ptr [ESP + 0xc],0x0
MOV EAX,dword ptr [ESP + 0xc]
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,ESI
CALL 0x00024a50
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX]
MOV EBX,dword ptr [EAX + 0x28]
MOV dword ptr [ESP + 0x2c],EAX
TEST EBX,EBX
JZ 0x000825fe
JMP 0x00082643
MOV EAX,dword ptr [ESP + 0x14]
TEST byte ptr [EAX + 0x18],0x10
JZ 0x00082617
MOV dword ptr [EAX + 0x30],0x0
CALL 0x000761e0
MOV EBX,EAX
JMP 0x00082628
MOV EDX,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x3c],EDI
MOV EDI,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x38],ESI
MOV dword ptr [ESP + 0x24],EDX
MOV EDX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x20],EDX
LEA ESI,[ESI]
MOV EDX,dword ptr [EDI + 0x5c]
MOV ECX,dword ptr [ESP + 0x24]
MOV EBP,dword ptr [EDX + ECX*0x1 + 0x10]
TEST EBP,EBP
JZ 0x00082871
MOV ESI,dword ptr [EBP + 0x8]
TEST ESI,ESI
JZ 0x0008285e
LEA ESI,[EBP + 0xc]
LEA EBX,[EBP + 0x200]
NOP
MOV EAX,dword ptr [ESI]
ADD ESI,0x4
CALL 0x000297b0
CMP EBX,ESI
JNZ 0x00082850
SUB ESP,0xc
PUSH EBP
MOV EBX,dword ptr [ESP + 0x38]
CALL 0x00016d30
MOV EAX,dword ptr [EDI + 0x60]
ADD ESP,0x10
ADD dword ptr [ESP + 0x20],0x1
ADD dword ptr [ESP + 0x24],0x2c
MOV ECX,dword ptr [ESP + 0x20]
CMP ECX,EAX
JL 0x00082830
MOV EAX,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [ESP + 0x2c]
MOV ESI,dword ptr [ESP + 0x38]
MOV EDI,dword ptr [ESP + 0x3c]
TEST EAX,EAX
MOV dword ptr [EDX + 0x60],EAX
JNZ 0x0008260b
MOV EAX,dword ptr [EDX + 0x44]
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
JZ 0x00082617
CMP EDX,dword ptr [ESP + 0x34]
JNZ 0x000828ed
SUB ESP,0x4
PUSH 0x0
PUSH 0x0
PUSH EAX
CALL 0x000250b0
MOV EBX,EAX
MOV EAX,dword ptr [ESP + 0x3c]
ADD ESP,0x10
TEST EBX,EBX
MOV dword ptr [EAX + 0x34],0x0
JZ 0x00082617
JMP 0x00082643
MOV dword ptr [ESP + 0xc],0x0
JMP 0x000826f1
MOV EAX,dword ptr [ESP + 0x2c]
MOV dword ptr [EAX + 0x34],0x0
JMP 0x00082617
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */\n\nint __regparm3 FUN_00082510(int *param_1,int param_2)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int local_50;\n  int local_3c;\n  int local_38;\n  int local_30;\n  \n  iVar2 = *param_1;\n  iVar9 = *(int *)(iVar2 + 0x14);\n  iVar6 = param_1[0xc] + -1;\n  if (iVar9 < 1) {\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\nLAB_000826b7:\n    if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }\n    local_50 = FUN_000430f0();\n  }\n  else {\n    iVar10 = 0;\n    local_50 = 0;\n    do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }\n  if (param_2 != 2) {\n    return local_50;\n  }\nLAB_000826f1:\n  iVar9 = param_1[0x12];\n  *(int *)(iVar2 + 0x1dc) = param_1[0x11];\n  *(int *)(iVar2 + 0x1e0) = iVar9;\n  iVar9 = param_1[0x14];\n  *(int *)(iVar2 + 0x1e4) = param_1[0x13];\n  *(int *)(iVar2 + 0x1e8) = iVar9;\n  return local_50;\n}\n\n" comment (function_definition "int __regparm3 FUN_00082510(int *param_1,int param_2)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int local_50;\n  int local_3c;\n  int local_38;\n  int local_30;\n  \n  iVar2 = *param_1;\n  iVar9 = *(int *)(iVar2 + 0x14);\n  iVar6 = param_1[0xc] + -1;\n  if (iVar9 < 1) {\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\nLAB_000826b7:\n    if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }\n    local_50 = FUN_000430f0();\n  }\n  else {\n    iVar10 = 0;\n    local_50 = 0;\n    do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }\n  if (param_2 != 2) {\n    return local_50;\n  }\nLAB_000826f1:\n  iVar9 = param_1[0x12];\n  *(int *)(iVar2 + 0x1dc) = param_1[0x11];\n  *(int *)(iVar2 + 0x1e0) = iVar9;\n  iVar9 = param_1[0x14];\n  *(int *)(iVar2 + 0x1e4) = param_1[0x13];\n  *(int *)(iVar2 + 0x1e8) = iVar9;\n  return local_50;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00082510(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int local_50;\n  int local_3c;\n  int local_38;\n  int local_30;\n  \n  iVar2 = *param_1;\n  iVar9 = *(int *)(iVar2 + 0x14);\n  iVar6 = param_1[0xc] + -1;\n  if (iVar9 < 1) {\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\nLAB_000826b7:\n    if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }\n    local_50 = FUN_000430f0();\n  }\n  else {\n    iVar10 = 0;\n    local_50 = 0;\n    do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }\n  if (param_2 != 2) {\n    return local_50;\n  }\nLAB_000826f1:\n  iVar9 = param_1[0x12];\n  *(int *)(iVar2 + 0x1dc) = param_1[0x11];\n  *(int *)(iVar2 + 0x1e0) = iVar9;\n  iVar9 = param_1[0x14];\n  *(int *)(iVar2 + 0x1e4) = param_1[0x13];\n  *(int *)(iVar2 + 0x1e8) = iVar9;\n  return local_50;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (expression_statement "iVar2 = *param_1;" (assignment_expression "iVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar9 = *(int *)(iVar2 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar2 + 0x14)" identifier = (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = param_1[0xc] + -1;" (assignment_expression "iVar6 = param_1[0xc] + -1" identifier = (binary_expression "param_1[0xc] + -1" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (iVar9 < 1) {\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\nLAB_000826b7:\n    if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }\n    local_50 = FUN_000430f0();\n  }\n  else {\n    iVar10 = 0;\n    local_50 = 0;\n    do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }" if (parenthesized_expression "(iVar9 < 1)" ( (binary_expression "iVar9 < 1" identifier < number_literal) )) (compound_statement "{\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\nLAB_000826b7:\n    if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }\n    local_50 = FUN_000430f0();\n  }" { (expression_statement "*(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;" (assignment_expression "*(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1" (pointer_expression "*(int *)(iVar2 + 0x1d8)" * (cast_expression "(int *)(iVar2 + 0x1d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1d8)" ( (binary_expression "iVar2 + 0x1d8" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar2 + 0x1d8) + -1" (pointer_expression "*(int *)(iVar2 + 0x1d8)" * (cast_expression "(int *)(iVar2 + 0x1d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1d8)" ( (binary_expression "iVar2 + 0x1d8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_000826b7:\n    if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }" statement_identifier : (if_statement "if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }" if (parenthesized_expression "(param_2 == 2)" ( (binary_expression "param_2 == 2" identifier == number_literal) )) (compound_statement "{\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }" { (if_statement "if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }" if (parenthesized_expression "(*(int *)(iVar2 + 0x174) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x174) == 0" (pointer_expression "*(int *)(iVar2 + 0x174)" * (cast_expression "(int *)(iVar2 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x174)" ( (binary_expression "iVar2 + 0x174" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        local_50 = 0;\n        goto LAB_000826f1;\n      }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000826f1;" goto statement_identifier ;) })) (expression_statement "local_50 = FUN_000430f0();" (assignment_expression "local_50 = FUN_000430f0()" identifier = (call_expression "FUN_000430f0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;" if (parenthesized_expression "((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0))" ( (binary_expression "(local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)" (parenthesized_expression "(local_50 != 0)" ( (binary_expression "local_50 != 0" identifier != number_literal) )) || (parenthesized_expression "(*(int *)(iVar2 + 0x174) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x174) == 0" (pointer_expression "*(int *)(iVar2 + 0x174)" * (cast_expression "(int *)(iVar2 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x174)" ( (binary_expression "iVar2 + 0x174" identifier + number_literal) )))) == number_literal) ))) )) (goto_statement "goto LAB_000826f1;" goto statement_identifier ;)) }) (else_clause "else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }" else (if_statement "if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }" if (parenthesized_expression "(*(int *)(iVar2 + 0x174) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x174) == 0" (pointer_expression "*(int *)(iVar2 + 0x174)" * (cast_expression "(int *)(iVar2 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x174)" ( (binary_expression "iVar2 + 0x174" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) }))))) (expression_statement "local_50 = FUN_000430f0();" (assignment_expression "local_50 = FUN_000430f0()" identifier = (call_expression "FUN_000430f0()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n    iVar10 = 0;\n    local_50 = 0;\n    do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }" else (compound_statement "{\n    iVar10 = 0;\n    local_50 = 0;\n    do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);" do (compound_statement "{\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    }" { (expression_statement "iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);" (assignment_expression "iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4)" identifier = (pointer_expression "*(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4)" * (cast_expression "(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4)" ( (binary_expression "iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4" (binary_expression "iVar10 * 0x10 + *(int *)(iVar2 + 0x10)" (binary_expression "iVar10 * 0x10" identifier * number_literal) + (pointer_expression "*(int *)(iVar2 + 0x10)" * (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "iVar8 = local_50;" (assignment_expression "iVar8 = local_50" identifier = identifier) ;) (if_statement "if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }" { (expression_statement "cVar1 = *(char *)(iVar3 + 8);" (assignment_expression "cVar1 = *(char *)(iVar3 + 8)" identifier = (pointer_expression "*(char *)(iVar3 + 8)" * (cast_expression "(char *)(iVar3 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;) (if_statement "if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }" if (parenthesized_expression "(param_2 == 2)" ( (binary_expression "param_2 == 2" identifier == number_literal) )) (compound_statement "{\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (cVar1 != '\x02') goto LAB_0008257d;" if (parenthesized_expression "(cVar1 != '\x02')" ( (binary_expression "cVar1 != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008257d;" goto statement_identifier ;)) (expression_statement "iVar8 = FUN_00082410();" (assignment_expression "iVar8 = FUN_00082410()" identifier = (call_expression "FUN_00082410()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }" { (expression_statement "cVar1 = *(char *)(iVar3 + 8);" (assignment_expression "cVar1 = *(char *)(iVar3 + 8)" identifier = (pointer_expression "*(char *)(iVar3 + 8)" * (cast_expression "(char *)(iVar3 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x00082572;" goto statement_identifier ;) })) (labeled_statement "LAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);" statement_identifier : (expression_statement "iVar9 = *(int *)(iVar2 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar2 + 0x14)" identifier = (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;)) }) (else_clause "else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }" else (compound_statement "{\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }" { (labeled_statement "joined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }" statement_identifier : (if_statement "if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }" if (parenthesized_expression "(cVar1 == '\x02')" ( (binary_expression "cVar1 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }" { (expression_statement "piVar4 = *(int **)(iVar3 + 4);" (assignment_expression "piVar4 = *(int **)(iVar3 + 4)" identifier = (pointer_expression "*(int **)(iVar3 + 4)" * (cast_expression "(int **)(iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }" if (parenthesized_expression "(*(char *)(iVar3 + 9) == '\0')" ( (binary_expression "*(char *)(iVar3 + 9) == '\0'" (pointer_expression "*(char *)(iVar3 + 9)" * (cast_expression "(char *)(iVar3 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 9)" ( (binary_expression "iVar3 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }" { (expression_statement "local_30 = *piVar4;" (assignment_expression "local_30 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "iVar8 = *(int *)(local_30 + 0x28);" (assignment_expression "iVar8 = *(int *)(local_30 + 0x28)" identifier = (pointer_expression "*(int *)(local_30 + 0x28)" * (cast_expression "(int *)(local_30 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x28)" ( (binary_expression "local_30 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 != 0) goto LAB_0008265a;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008265a;" goto statement_identifier ;)) (labeled_statement "LAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);" statement_identifier : (expression_statement "iVar9 = *(int *)(local_30 + 0x60);" (assignment_expression "iVar9 = *(int *)(local_30 + 0x60)" identifier = (pointer_expression "*(int *)(local_30 + 0x60)" * (cast_expression "(int *)(local_30 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x60)" ( (binary_expression "local_30 + 0x60" identifier + number_literal) ))))) ;)) (expression_statement "local_3c = iVar6;" (assignment_expression "local_3c = iVar6" identifier = identifier) ;) (expression_statement "local_38 = iVar6 * 0x2c;" (assignment_expression "local_38 = iVar6 * 0x2c" identifier = (binary_expression "iVar6 * 0x2c" identifier * number_literal)) ;) (if_statement "if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }" if (parenthesized_expression "(iVar6 < iVar9)" ( (binary_expression "iVar6 < iVar9" identifier < identifier) )) (compound_statement "{\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }" { (do_statement "do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);" do (compound_statement "{\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                }" { (expression_statement "iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);" (assignment_expression "iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38)" identifier = (pointer_expression "*(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38)" * (cast_expression "(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_30 + 0x5c) + 0x10 + local_38)" ( (binary_expression "*(int *)(local_30 + 0x5c) + 0x10 + local_38" (binary_expression "*(int *)(local_30 + 0x5c) + 0x10" (pointer_expression "*(int *)(local_30 + 0x5c)" * (cast_expression "(int *)(local_30 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x5c)" ( (binary_expression "local_30 + 0x5c" identifier + number_literal) )))) + number_literal) + identifier) ))))) ;) (if_statement "if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }" { (if_statement "if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }" if (parenthesized_expression "(*(int *)(iVar8 + 8) != 0)" ( (binary_expression "*(int *)(iVar8 + 8) != 0" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }" { (expression_statement "iVar9 = iVar8 + 0xc;" (assignment_expression "iVar9 = iVar8 + 0xc" identifier = (binary_expression "iVar8 + 0xc" identifier + number_literal)) ;) (do_statement "do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);" do (compound_statement "{\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      }" { (expression_statement "iVar9 = iVar9 + 4;" (assignment_expression "iVar9 = iVar9 + 4" identifier = (binary_expression "iVar9 + 4" identifier + number_literal)) ;) (expression_statement "FUN_000297b0();" (call_expression "FUN_000297b0()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(iVar8 + 0x200 != iVar9)" ( (binary_expression "iVar8 + 0x200 != iVar9" (binary_expression "iVar8 + 0x200" identifier + number_literal) != identifier) )) ;) })) (expression_statement "sqlite3_free(iVar8);" (call_expression "sqlite3_free(iVar8)" identifier (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "iVar9 = *(int *)(local_30 + 0x60);" (assignment_expression "iVar9 = *(int *)(local_30 + 0x60)" identifier = (pointer_expression "*(int *)(local_30 + 0x60)" * (cast_expression "(int *)(local_30 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x60)" ( (binary_expression "local_30 + 0x60" identifier + number_literal) ))))) ;) })) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) (expression_statement "local_38 = local_38 + 0x2c;" (assignment_expression "local_38 = local_38 + 0x2c" identifier = (binary_expression "local_38 + 0x2c" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_3c < iVar9)" ( (binary_expression "local_3c < iVar9" identifier < identifier) )) ;) (expression_statement "*(int *)(local_30 + 0x60) = iVar6;" (assignment_expression "*(int *)(local_30 + 0x60) = iVar6" (pointer_expression "*(int *)(local_30 + 0x60)" * (cast_expression "(int *)(local_30 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x60)" ( (binary_expression "local_30 + 0x60" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar6 != 0) goto LAB_0008260b;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008260b;" goto statement_identifier ;)) (expression_statement "puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);" (assignment_expression "puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44)" identifier = (cast_expression "(undefined *)**(undefined4 **)(local_30 + 0x44)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(local_30 + 0x44)" * (pointer_expression "*(undefined4 **)(local_30 + 0x44)" * (cast_expression "(undefined4 **)(local_30 + 0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_30 + 0x44)" ( (binary_expression "local_30 + 0x44" identifier + number_literal) ))))))) ;) (if_statement "if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }" if (parenthesized_expression "(puVar5 != (undefined *)0x0)" ( (binary_expression "puVar5 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }" { (if_statement "if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }" if (parenthesized_expression "(puVar5 == &DAT_001058c0)" ( (binary_expression "puVar5 == &DAT_001058c0" identifier == (pointer_expression "&DAT_001058c0" & identifier)) )) (compound_statement "{\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }" { (expression_statement "iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);" (assignment_expression "iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0)" identifier = (call_expression "FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0)" identifier (argument_list "(*(undefined4 **)(local_30 + 0x44),0,0)" ( (pointer_expression "*(undefined4 **)(local_30 + 0x44)" * (cast_expression "(undefined4 **)(local_30 + 0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_30 + 0x44)" ( (binary_expression "local_30 + 0x44" identifier + number_literal) )))) , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(local_30 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(local_30 + 0x34) = 0" (pointer_expression "*(undefined4 *)(local_30 + 0x34)" * (cast_expression "(undefined4 *)(local_30 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x34)" ( (binary_expression "local_30 + 0x34" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (iVar8 != 0) goto LAB_00082643;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00082643;" goto statement_identifier ;)) }) (else_clause "else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }" else (compound_statement "{\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }" { (expression_statement "*(undefined4 *)(local_30 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(local_30 + 0x34) = 0" (pointer_expression "*(undefined4 *)(local_30 + 0x34)" * (cast_expression "(undefined4 *)(local_30 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x34)" ( (binary_expression "local_30 + 0x34" identifier + number_literal) )))) = number_literal) ;) }))) })) (labeled_statement "LAB_00082617:\n                iVar8 = 0;" statement_identifier : (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;)) (if_statement "if (piVar4[0xc] == 0) goto LAB_00082805;" if (parenthesized_expression "(piVar4[0xc] == 0)" ( (binary_expression "piVar4[0xc] == 0" (subscript_expression "piVar4[0xc]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00082805;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }" else (compound_statement "{\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }" { (labeled_statement "LAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;" statement_identifier : (if_statement "if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;" if (parenthesized_expression "((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0))" ( (binary_expression "(-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)" (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) || (parenthesized_expression "((*(byte *)(piVar4 + 6) & 0x10) == 0)" ( (binary_expression "(*(byte *)(piVar4 + 6) & 0x10) == 0" (parenthesized_expression "(*(byte *)(piVar4 + 6) & 0x10)" ( (binary_expression "*(byte *)(piVar4 + 6) & 0x10" (pointer_expression "*(byte *)(piVar4 + 6)" * (cast_expression "(byte *)(piVar4 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 6)" ( (binary_expression "piVar4 + 6" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00082617;" goto statement_identifier ;))) (expression_statement "piVar4[0xc] = 0;" (assignment_expression "piVar4[0xc] = 0" (subscript_expression "piVar4[0xc]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00082805:\n                iVar8 = FUN_000761e0();" statement_identifier : (expression_statement "iVar8 = FUN_000761e0();" (assignment_expression "iVar8 = FUN_000761e0()" identifier = (call_expression "FUN_000761e0()" identifier (argument_list "()" ( )))) ;)) }))) (expression_statement "uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);" (assignment_expression "uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c)" identifier = (pointer_expression "*(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c)" * (cast_expression "(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(piVar4[3] + 0x38) + 0x1c)" ( (binary_expression "*(int *)(piVar4[3] + 0x38) + 0x1c" (pointer_expression "*(int *)(piVar4[3] + 0x38)" * (cast_expression "(int *)(piVar4[3] + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[3] + 0x38)" ( (binary_expression "piVar4[3] + 0x38" (subscript_expression "piVar4[3]" identifier [ number_literal ]) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;" (assignment_expression "uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18" identifier = (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" ( (binary_expression "uVar7 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" ( (binary_expression "uVar7 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar7 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }" { (expression_statement "uVar7 = *(uint *)(*piVar4 + 0x18);" (assignment_expression "uVar7 = *(uint *)(*piVar4 + 0x18)" identifier = (pointer_expression "*(uint *)(*piVar4 + 0x18)" * (cast_expression "(uint *)(*piVar4 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + 0x18)" ( (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) })) (expression_statement "piVar4[0xc] = uVar7;" (assignment_expression "piVar4[0xc] = uVar7" (subscript_expression "piVar4[0xc]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;" statement_identifier : (if_statement "if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;" if (parenthesized_expression "(*(char *)(iVar3 + 9) == '\0')" ( (binary_expression "*(char *)(iVar3 + 9) == '\0'" (pointer_expression "*(char *)(iVar3 + 9)" * (cast_expression "(char *)(iVar3 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 9)" ( (binary_expression "iVar3 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008265a;" goto statement_identifier ;))) (expression_statement "iVar9 = *(int *)(iVar3 + 0xc);" (assignment_expression "iVar9 = *(int *)(iVar3 + 0xc)" identifier = (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }" else (compound_statement "{\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }" { (expression_statement "iVar9 = *(int *)(iVar3 + 0xc) + 1;" (assignment_expression "iVar9 = *(int *)(iVar3 + 0xc) + 1" identifier = (binary_expression "*(int *)(iVar3 + 0xc) + 1" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(iVar3 + 0xc) = iVar9;" (assignment_expression "*(int *)(iVar3 + 0xc) = iVar9" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }" if (parenthesized_expression "(*(char *)(iVar3 + 10) == '\0')" ( (binary_expression "*(char *)(iVar3 + 10) == '\0'" (pointer_expression "*(char *)(iVar3 + 10)" * (cast_expression "(char *)(iVar3 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 10)" ( (binary_expression "iVar3 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }" { (expression_statement "FUN_00024a50();" (call_expression "FUN_00024a50()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = *piVar4;" (assignment_expression "local_30 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "iVar8 = *(int *)(local_30 + 0x28);" (assignment_expression "iVar8 = *(int *)(local_30 + 0x28)" identifier = (pointer_expression "*(int *)(local_30 + 0x28)" * (cast_expression "(int *)(local_30 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x28)" ( (binary_expression "local_30 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_000825fe;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000825fe;" goto statement_identifier ;)) (goto_statement "goto LAB_00082643;" goto statement_identifier ;) })) (expression_statement "local_30 = *piVar4;" (assignment_expression "local_30 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "iVar8 = *(int *)(local_30 + 0x28);" (assignment_expression "iVar8 = *(int *)(local_30 + 0x28)" identifier = (pointer_expression "*(int *)(local_30 + 0x28)" * (cast_expression "(int *)(local_30 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x28)" ( (binary_expression "local_30 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_000825fe;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000825fe;" goto statement_identifier ;)) }))) (expression_statement "*(int *)(iVar3 + 0xc) = iVar9 + -1;" (assignment_expression "*(int *)(iVar3 + 0xc) = iVar9 + -1" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (if_statement "if (iVar9 + -1 != 0) goto LAB_0008265a;" if (parenthesized_expression "(iVar9 + -1 != 0)" ( (binary_expression "iVar9 + -1 != 0" (binary_expression "iVar9 + -1" identifier + number_literal) != number_literal) )) (goto_statement "goto LAB_0008265a;" goto statement_identifier ;)) (expression_statement "FUN_00024a20();" (call_expression "FUN_00024a20()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar9 = *(int *)(iVar2 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar2 + 0x14)" identifier = (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }" else (compound_statement "{\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = *(int *)(iVar2 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar2 + 0x14)" identifier = (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) })))) }))) (labeled_statement "LAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }" statement_identifier : (if_statement "if (local_50 != 0) {\n          iVar8 = local_50;\n        }" if (parenthesized_expression "(local_50 != 0)" ( (binary_expression "local_50 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar8 = local_50;\n        }" { (expression_statement "iVar8 = local_50;" (assignment_expression "iVar8 = local_50" identifier = identifier) ;) }))) })) (expression_statement "local_50 = iVar8;" (assignment_expression "local_50 = iVar8" identifier = identifier) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar10 < iVar9)" ( (binary_expression "iVar10 < iVar9" identifier < identifier) )) ;) (expression_statement "*(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;" (assignment_expression "*(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1" (pointer_expression "*(int *)(iVar2 + 0x1d8)" * (cast_expression "(int *)(iVar2 + 0x1d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1d8)" ( (binary_expression "iVar2 + 0x1d8" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar2 + 0x1d8) + -1" (pointer_expression "*(int *)(iVar2 + 0x1d8)" * (cast_expression "(int *)(iVar2 + 0x1d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1d8)" ( (binary_expression "iVar2 + 0x1d8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_50 == 0) goto LAB_000826b7;" if (parenthesized_expression "(local_50 == 0)" ( (binary_expression "local_50 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000826b7;" goto statement_identifier ;)) }))) (if_statement "if (param_2 != 2) {\n    return local_50;\n  }" if (parenthesized_expression "(param_2 != 2)" ( (binary_expression "param_2 != 2" identifier != number_literal) )) (compound_statement "{\n    return local_50;\n  }" { (return_statement "return local_50;" return identifier ;) })) (labeled_statement "LAB_000826f1:\n  iVar9 = param_1[0x12];" statement_identifier : (expression_statement "iVar9 = param_1[0x12];" (assignment_expression "iVar9 = param_1[0x12]" identifier = (subscript_expression "param_1[0x12]" identifier [ number_literal ])) ;)) (expression_statement "*(int *)(iVar2 + 0x1dc) = param_1[0x11];" (assignment_expression "*(int *)(iVar2 + 0x1dc) = param_1[0x11]" (pointer_expression "*(int *)(iVar2 + 0x1dc)" * (cast_expression "(int *)(iVar2 + 0x1dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1dc)" ( (binary_expression "iVar2 + 0x1dc" identifier + number_literal) )))) = (subscript_expression "param_1[0x11]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar2 + 0x1e0) = iVar9;" (assignment_expression "*(int *)(iVar2 + 0x1e0) = iVar9" (pointer_expression "*(int *)(iVar2 + 0x1e0)" * (cast_expression "(int *)(iVar2 + 0x1e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1e0)" ( (binary_expression "iVar2 + 0x1e0" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar9 = param_1[0x14];" (assignment_expression "iVar9 = param_1[0x14]" identifier = (subscript_expression "param_1[0x14]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar2 + 0x1e4) = param_1[0x13];" (assignment_expression "*(int *)(iVar2 + 0x1e4) = param_1[0x13]" (pointer_expression "*(int *)(iVar2 + 0x1e4)" * (cast_expression "(int *)(iVar2 + 0x1e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1e4)" ( (binary_expression "iVar2 + 0x1e4" identifier + number_literal) )))) = (subscript_expression "param_1[0x13]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar2 + 0x1e8) = iVar9;" (assignment_expression "*(int *)(iVar2 + 0x1e8) = iVar9" (pointer_expression "*(int *)(iVar2 + 0x1e8)" * (cast_expression "(int *)(iVar2 + 0x1e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1e8)" ( (binary_expression "iVar2 + 0x1e8" identifier + number_literal) )))) = identifier) ;) (return_statement "return local_50;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */\n\nint __regparm3 vdbeCloseStatement(Vdbe *p,int eOp)\n\n{\n  u8 uVar1;\n  sqlite3 *db;\n  Btree *p_00;\n  BtShared *pBt;\n  uint uVar2;\n  undefined4 uVar3;\n  void *p_01;\n  Bitvec *p_02;\n  sqlite3_io_methods *psVar4;\n  int iSavepoint;\n  Pgno PVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int local_50;\n  int local_3c;\n  int local_38;\n  Pager *local_30;\n  \n  db = p->db;\n  iVar6 = db->nDb;\n  iSavepoint = p->iStatement + -1;\n  if (iVar6 < 1) {\n    db->nStatement = db->nStatement + -1;\n    p->iStatement = 0;\nLAB_000826b7:\n    if (eOp == 2) {\n      if (db->aVTrans == (VTable **)0x0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = sqlite3VtabSavepoint(db,2,iSavepoint);\n      if ((local_50 != 0) || (db->aVTrans == (VTable **)0x0)) goto LAB_000826f1;\n    }\n    else if (db->aVTrans == (VTable **)0x0) {\n      return 0;\n    }\n    local_50 = sqlite3VtabSavepoint(db,1,iSavepoint);\n  }\n  else {\n    iVar9 = 0;\n    local_50 = 0;\n    do {\n      p_00 = db->aDb[iVar9].pBt;\n      iVar7 = local_50;\n      if (p_00 != (Btree *)0x0) {\n        uVar1 = p_00->inTrans;\n        if (eOp == 2) {\n          iVar7 = 0;\n          if (uVar1 != '\x02') goto LAB_0008257d;\n          iVar7 = sqlite3BtreeSavepoint(p_00,2,iSavepoint);\n          if (iVar7 == 0) {\n            uVar1 = p_00->inTrans;\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar6 = db->nDb;\n        }\n        else {\njoined_r0x00082572:\n          if (uVar1 == '\x02') {\n            pBt = p_00->pBt;\n            if (p_00->sharable == '\0') {\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }\n            else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }\n            p_00->wantToLock = iVar6 + -1;\n            if (iVar6 + -1 != 0) goto LAB_0008265a;\n            unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);\n            iVar6 = db->nDb;\n          }\n          else {\n            iVar7 = 0;\n            iVar6 = db->nDb;\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar7 = local_50;\n        }\n      }\n      local_50 = iVar7;\n      iVar9 = iVar9 + 1;\n    } while (iVar9 < iVar6);\n    db->nStatement = db->nStatement + -1;\n    p->iStatement = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }\n  if (eOp != 2) {\n    return local_50;\n  }\nLAB_000826f1:\n  uVar3 = *(undefined4 *)((int)&p->nStmtDefCons + 4);\n  *(int *)&db->nDeferredCons = (int)p->nStmtDefCons;\n  *(undefined4 *)((int)&db->nDeferredCons + 4) = uVar3;\n  uVar3 = *(undefined4 *)((int)&p->nStmtDefImmCons + 4);\n  *(int *)&db->nDeferredImmCons = (int)p->nStmtDefImmCons;\n  *(undefined4 *)((int)&db->nDeferredImmCons + 4) = uVar3;\n  return local_50;\n}\n\n" comment (function_definition "int __regparm3 vdbeCloseStatement(Vdbe *p,int eOp)\n\n{\n  u8 uVar1;\n  sqlite3 *db;\n  Btree *p_00;\n  BtShared *pBt;\n  uint uVar2;\n  undefined4 uVar3;\n  void *p_01;\n  Bitvec *p_02;\n  sqlite3_io_methods *psVar4;\n  int iSavepoint;\n  Pgno PVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int local_50;\n  int local_3c;\n  int local_38;\n  Pager *local_30;\n  \n  db = p->db;\n  iVar6 = db->nDb;\n  iSavepoint = p->iStatement + -1;\n  if (iVar6 < 1) {\n    db->nStatement = db->nStatement + -1;\n    p->iStatement = 0;\nLAB_000826b7:\n    if (eOp == 2) {\n      if (db->aVTrans == (VTable **)0x0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = sqlite3VtabSavepoint(db,2,iSavepoint);\n      if ((local_50 != 0) || (db->aVTrans == (VTable **)0x0)) goto LAB_000826f1;\n    }\n    else if (db->aVTrans == (VTable **)0x0) {\n      return 0;\n    }\n    local_50 = sqlite3VtabSavepoint(db,1,iSavepoint);\n  }\n  else {\n    iVar9 = 0;\n    local_50 = 0;\n    do {\n      p_00 = db->aDb[iVar9].pBt;\n      iVar7 = local_50;\n      if (p_00 != (Btree *)0x0) {\n        uVar1 = p_00->inTrans;\n        if (eOp == 2) {\n          iVar7 = 0;\n          if (uVar1 != '\x02') goto LAB_0008257d;\n          iVar7 = sqlite3BtreeSavepoint(p_00,2,iSavepoint);\n          if (iVar7 == 0) {\n            uVar1 = p_00->inTrans;\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar6 = db->nDb;\n        }\n        else {\njoined_r0x00082572:\n          if (uVar1 == '\x02') {\n            pBt = p_00->pBt;\n            if (p_00->sharable == '\0') {\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }\n            else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }\n            p_00->wantToLock = iVar6 + -1;\n            if (iVar6 + -1 != 0) goto LAB_0008265a;\n            unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);\n            iVar6 = db->nDb;\n          }\n          else {\n            iVar7 = 0;\n            iVar6 = db->nDb;\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar7 = local_50;\n        }\n      }\n      local_50 = iVar7;\n      iVar9 = iVar9 + 1;\n    } while (iVar9 < iVar6);\n    db->nStatement = db->nStatement + -1;\n    p->iStatement = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }\n  if (eOp != 2) {\n    return local_50;\n  }\nLAB_000826f1:\n  uVar3 = *(undefined4 *)((int)&p->nStmtDefCons + 4);\n  *(int *)&db->nDeferredCons = (int)p->nStmtDefCons;\n  *(undefined4 *)((int)&db->nDeferredCons + 4) = uVar3;\n  uVar3 = *(undefined4 *)((int)&p->nStmtDefImmCons + 4);\n  *(int *)&db->nDeferredImmCons = (int)p->nStmtDefImmCons;\n  *(undefined4 *)((int)&db->nDeferredImmCons + 4) = uVar3;\n  return local_50;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "vdbeCloseStatement(Vdbe *p,int eOp)" identifier (parameter_list "(Vdbe *p,int eOp)" ( (parameter_declaration "Vdbe *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "int eOp" primitive_type identifier) ))) (compound_statement "{\n  u8 uVar1;\n  sqlite3 *db;\n  Btree *p_00;\n  BtShared *pBt;\n  uint uVar2;\n  undefined4 uVar3;\n  void *p_01;\n  Bitvec *p_02;\n  sqlite3_io_methods *psVar4;\n  int iSavepoint;\n  Pgno PVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int local_50;\n  int local_3c;\n  int local_38;\n  Pager *local_30;\n  \n  db = p->db;\n  iVar6 = db->nDb;\n  iSavepoint = p->iStatement + -1;\n  if (iVar6 < 1) {\n    db->nStatement = db->nStatement + -1;\n    p->iStatement = 0;\nLAB_000826b7:\n    if (eOp == 2) {\n      if (db->aVTrans == (VTable **)0x0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = sqlite3VtabSavepoint(db,2,iSavepoint);\n      if ((local_50 != 0) || (db->aVTrans == (VTable **)0x0)) goto LAB_000826f1;\n    }\n    else if (db->aVTrans == (VTable **)0x0) {\n      return 0;\n    }\n    local_50 = sqlite3VtabSavepoint(db,1,iSavepoint);\n  }\n  else {\n    iVar9 = 0;\n    local_50 = 0;\n    do {\n      p_00 = db->aDb[iVar9].pBt;\n      iVar7 = local_50;\n      if (p_00 != (Btree *)0x0) {\n        uVar1 = p_00->inTrans;\n        if (eOp == 2) {\n          iVar7 = 0;\n          if (uVar1 != '\x02') goto LAB_0008257d;\n          iVar7 = sqlite3BtreeSavepoint(p_00,2,iSavepoint);\n          if (iVar7 == 0) {\n            uVar1 = p_00->inTrans;\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar6 = db->nDb;\n        }\n        else {\njoined_r0x00082572:\n          if (uVar1 == '\x02') {\n            pBt = p_00->pBt;\n            if (p_00->sharable == '\0') {\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }\n            else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }\n            p_00->wantToLock = iVar6 + -1;\n            if (iVar6 + -1 != 0) goto LAB_0008265a;\n            unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);\n            iVar6 = db->nDb;\n          }\n          else {\n            iVar7 = 0;\n            iVar6 = db->nDb;\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar7 = local_50;\n        }\n      }\n      local_50 = iVar7;\n      iVar9 = iVar9 + 1;\n    } while (iVar9 < iVar6);\n    db->nStatement = db->nStatement + -1;\n    p->iStatement = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }\n  if (eOp != 2) {\n    return local_50;\n  }\nLAB_000826f1:\n  uVar3 = *(undefined4 *)((int)&p->nStmtDefCons + 4);\n  *(int *)&db->nDeferredCons = (int)p->nStmtDefCons;\n  *(undefined4 *)((int)&db->nDeferredCons + 4) = uVar3;\n  uVar3 = *(undefined4 *)((int)&p->nStmtDefImmCons + 4);\n  *(int *)&db->nDeferredImmCons = (int)p->nStmtDefImmCons;\n  *(undefined4 *)((int)&db->nDeferredImmCons + 4) = uVar3;\n  return local_50;\n}" { (declaration "u8 uVar1;" type_identifier identifier ;) (declaration "sqlite3 *db;" type_identifier (pointer_declarator "*db" * identifier) ;) (declaration "Btree *p_00;" type_identifier (pointer_declarator "*p_00" * identifier) ;) (declaration "BtShared *pBt;" type_identifier (pointer_declarator "*pBt" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "void *p_01;" primitive_type (pointer_declarator "*p_01" * identifier) ;) (declaration "Bitvec *p_02;" type_identifier (pointer_declarator "*p_02" * identifier) ;) (declaration "sqlite3_io_methods *psVar4;" type_identifier (pointer_declarator "*psVar4" * identifier) ;) (declaration "int iSavepoint;" primitive_type identifier ;) (declaration "Pgno PVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "Pager *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (expression_statement "db = p->db;" (assignment_expression "db = p->db" identifier = (field_expression "p->db" identifier -> field_identifier)) ;) (expression_statement "iVar6 = db->nDb;" (assignment_expression "iVar6 = db->nDb" identifier = (field_expression "db->nDb" identifier -> field_identifier)) ;) (expression_statement "iSavepoint = p->iStatement + -1;" (assignment_expression "iSavepoint = p->iStatement + -1" identifier = (binary_expression "p->iStatement + -1" (field_expression "p->iStatement" identifier -> field_identifier) + number_literal)) ;) (if_statement "if (iVar6 < 1) {\n    db->nStatement = db->nStatement + -1;\n    p->iStatement = 0;\nLAB_000826b7:\n    if (eOp == 2) {\n      if (db->aVTrans == (VTable **)0x0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = sqlite3VtabSavepoint(db,2,iSavepoint);\n      if ((local_50 != 0) || (db->aVTrans == (VTable **)0x0)) goto LAB_000826f1;\n    }\n    else if (db->aVTrans == (VTable **)0x0) {\n      return 0;\n    }\n    local_50 = sqlite3VtabSavepoint(db,1,iSavepoint);\n  }\n  else {\n    iVar9 = 0;\n    local_50 = 0;\n    do {\n      p_00 = db->aDb[iVar9].pBt;\n      iVar7 = local_50;\n      if (p_00 != (Btree *)0x0) {\n        uVar1 = p_00->inTrans;\n        if (eOp == 2) {\n          iVar7 = 0;\n          if (uVar1 != '\x02') goto LAB_0008257d;\n          iVar7 = sqlite3BtreeSavepoint(p_00,2,iSavepoint);\n          if (iVar7 == 0) {\n            uVar1 = p_00->inTrans;\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar6 = db->nDb;\n        }\n        else {\njoined_r0x00082572:\n          if (uVar1 == '\x02') {\n            pBt = p_00->pBt;\n            if (p_00->sharable == '\0') {\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }\n            else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }\n            p_00->wantToLock = iVar6 + -1;\n            if (iVar6 + -1 != 0) goto LAB_0008265a;\n            unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);\n            iVar6 = db->nDb;\n          }\n          else {\n            iVar7 = 0;\n            iVar6 = db->nDb;\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar7 = local_50;\n        }\n      }\n      local_50 = iVar7;\n      iVar9 = iVar9 + 1;\n    } while (iVar9 < iVar6);\n    db->nStatement = db->nStatement + -1;\n    p->iStatement = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }" if (parenthesized_expression "(iVar6 < 1)" ( (binary_expression "iVar6 < 1" identifier < number_literal) )) (compound_statement "{\n    db->nStatement = db->nStatement + -1;\n    p->iStatement = 0;\nLAB_000826b7:\n    if (eOp == 2) {\n      if (db->aVTrans == (VTable **)0x0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = sqlite3VtabSavepoint(db,2,iSavepoint);\n      if ((local_50 != 0) || (db->aVTrans == (VTable **)0x0)) goto LAB_000826f1;\n    }\n    else if (db->aVTrans == (VTable **)0x0) {\n      return 0;\n    }\n    local_50 = sqlite3VtabSavepoint(db,1,iSavepoint);\n  }" { (expression_statement "db->nStatement = db->nStatement + -1;" (assignment_expression "db->nStatement = db->nStatement + -1" (field_expression "db->nStatement" identifier -> field_identifier) = (binary_expression "db->nStatement + -1" (field_expression "db->nStatement" identifier -> field_identifier) + number_literal)) ;) (expression_statement "p->iStatement = 0;" (assignment_expression "p->iStatement = 0" (field_expression "p->iStatement" identifier -> field_identifier) = number_literal) ;) (labeled_statement "LAB_000826b7:\n    if (eOp == 2) {\n      if (db->aVTrans == (VTable **)0x0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = sqlite3VtabSavepoint(db,2,iSavepoint);\n      if ((local_50 != 0) || (db->aVTrans == (VTable **)0x0)) goto LAB_000826f1;\n    }\n    else if (db->aVTrans == (VTable **)0x0) {\n      return 0;\n    }" statement_identifier : (if_statement "if (eOp == 2) {\n      if (db->aVTrans == (VTable **)0x0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = sqlite3VtabSavepoint(db,2,iSavepoint);\n      if ((local_50 != 0) || (db->aVTrans == (VTable **)0x0)) goto LAB_000826f1;\n    }\n    else if (db->aVTrans == (VTable **)0x0) {\n      return 0;\n    }" if (parenthesized_expression "(eOp == 2)" ( (binary_expression "eOp == 2" identifier == number_literal) )) (compound_statement "{\n      if (db->aVTrans == (VTable **)0x0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = sqlite3VtabSavepoint(db,2,iSavepoint);\n      if ((local_50 != 0) || (db->aVTrans == (VTable **)0x0)) goto LAB_000826f1;\n    }" { (if_statement "if (db->aVTrans == (VTable **)0x0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }" if (parenthesized_expression "(db->aVTrans == (VTable **)0x0)" ( (binary_expression "db->aVTrans == (VTable **)0x0" (field_expression "db->aVTrans" identifier -> field_identifier) == (cast_expression "(VTable **)0x0" ( (type_descriptor "VTable **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        local_50 = 0;\n        goto LAB_000826f1;\n      }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000826f1;" goto statement_identifier ;) })) (expression_statement "local_50 = sqlite3VtabSavepoint(db,2,iSavepoint);" (assignment_expression "local_50 = sqlite3VtabSavepoint(db,2,iSavepoint)" identifier = (call_expression "sqlite3VtabSavepoint(db,2,iSavepoint)" identifier (argument_list "(db,2,iSavepoint)" ( identifier , number_literal , identifier )))) ;) (if_statement "if ((local_50 != 0) || (db->aVTrans == (VTable **)0x0)) goto LAB_000826f1;" if (parenthesized_expression "((local_50 != 0) || (db->aVTrans == (VTable **)0x0))" ( (binary_expression "(local_50 != 0) || (db->aVTrans == (VTable **)0x0)" (parenthesized_expression "(local_50 != 0)" ( (binary_expression "local_50 != 0" identifier != number_literal) )) || (parenthesized_expression "(db->aVTrans == (VTable **)0x0)" ( (binary_expression "db->aVTrans == (VTable **)0x0" (field_expression "db->aVTrans" identifier -> field_identifier) == (cast_expression "(VTable **)0x0" ( (type_descriptor "VTable **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ))) )) (goto_statement "goto LAB_000826f1;" goto statement_identifier ;)) }) (else_clause "else if (db->aVTrans == (VTable **)0x0) {\n      return 0;\n    }" else (if_statement "if (db->aVTrans == (VTable **)0x0) {\n      return 0;\n    }" if (parenthesized_expression "(db->aVTrans == (VTable **)0x0)" ( (binary_expression "db->aVTrans == (VTable **)0x0" (field_expression "db->aVTrans" identifier -> field_identifier) == (cast_expression "(VTable **)0x0" ( (type_descriptor "VTable **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) }))))) (expression_statement "local_50 = sqlite3VtabSavepoint(db,1,iSavepoint);" (assignment_expression "local_50 = sqlite3VtabSavepoint(db,1,iSavepoint)" identifier = (call_expression "sqlite3VtabSavepoint(db,1,iSavepoint)" identifier (argument_list "(db,1,iSavepoint)" ( identifier , number_literal , identifier )))) ;) }) (else_clause "else {\n    iVar9 = 0;\n    local_50 = 0;\n    do {\n      p_00 = db->aDb[iVar9].pBt;\n      iVar7 = local_50;\n      if (p_00 != (Btree *)0x0) {\n        uVar1 = p_00->inTrans;\n        if (eOp == 2) {\n          iVar7 = 0;\n          if (uVar1 != '\x02') goto LAB_0008257d;\n          iVar7 = sqlite3BtreeSavepoint(p_00,2,iSavepoint);\n          if (iVar7 == 0) {\n            uVar1 = p_00->inTrans;\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar6 = db->nDb;\n        }\n        else {\njoined_r0x00082572:\n          if (uVar1 == '\x02') {\n            pBt = p_00->pBt;\n            if (p_00->sharable == '\0') {\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }\n            else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }\n            p_00->wantToLock = iVar6 + -1;\n            if (iVar6 + -1 != 0) goto LAB_0008265a;\n            unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);\n            iVar6 = db->nDb;\n          }\n          else {\n            iVar7 = 0;\n            iVar6 = db->nDb;\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar7 = local_50;\n        }\n      }\n      local_50 = iVar7;\n      iVar9 = iVar9 + 1;\n    } while (iVar9 < iVar6);\n    db->nStatement = db->nStatement + -1;\n    p->iStatement = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }" else (compound_statement "{\n    iVar9 = 0;\n    local_50 = 0;\n    do {\n      p_00 = db->aDb[iVar9].pBt;\n      iVar7 = local_50;\n      if (p_00 != (Btree *)0x0) {\n        uVar1 = p_00->inTrans;\n        if (eOp == 2) {\n          iVar7 = 0;\n          if (uVar1 != '\x02') goto LAB_0008257d;\n          iVar7 = sqlite3BtreeSavepoint(p_00,2,iSavepoint);\n          if (iVar7 == 0) {\n            uVar1 = p_00->inTrans;\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar6 = db->nDb;\n        }\n        else {\njoined_r0x00082572:\n          if (uVar1 == '\x02') {\n            pBt = p_00->pBt;\n            if (p_00->sharable == '\0') {\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }\n            else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }\n            p_00->wantToLock = iVar6 + -1;\n            if (iVar6 + -1 != 0) goto LAB_0008265a;\n            unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);\n            iVar6 = db->nDb;\n          }\n          else {\n            iVar7 = 0;\n            iVar6 = db->nDb;\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar7 = local_50;\n        }\n      }\n      local_50 = iVar7;\n      iVar9 = iVar9 + 1;\n    } while (iVar9 < iVar6);\n    db->nStatement = db->nStatement + -1;\n    p->iStatement = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (do_statement "do {\n      p_00 = db->aDb[iVar9].pBt;\n      iVar7 = local_50;\n      if (p_00 != (Btree *)0x0) {\n        uVar1 = p_00->inTrans;\n        if (eOp == 2) {\n          iVar7 = 0;\n          if (uVar1 != '\x02') goto LAB_0008257d;\n          iVar7 = sqlite3BtreeSavepoint(p_00,2,iSavepoint);\n          if (iVar7 == 0) {\n            uVar1 = p_00->inTrans;\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar6 = db->nDb;\n        }\n        else {\njoined_r0x00082572:\n          if (uVar1 == '\x02') {\n            pBt = p_00->pBt;\n            if (p_00->sharable == '\0') {\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }\n            else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }\n            p_00->wantToLock = iVar6 + -1;\n            if (iVar6 + -1 != 0) goto LAB_0008265a;\n            unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);\n            iVar6 = db->nDb;\n          }\n          else {\n            iVar7 = 0;\n            iVar6 = db->nDb;\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar7 = local_50;\n        }\n      }\n      local_50 = iVar7;\n      iVar9 = iVar9 + 1;\n    } while (iVar9 < iVar6);" do (compound_statement "{\n      p_00 = db->aDb[iVar9].pBt;\n      iVar7 = local_50;\n      if (p_00 != (Btree *)0x0) {\n        uVar1 = p_00->inTrans;\n        if (eOp == 2) {\n          iVar7 = 0;\n          if (uVar1 != '\x02') goto LAB_0008257d;\n          iVar7 = sqlite3BtreeSavepoint(p_00,2,iSavepoint);\n          if (iVar7 == 0) {\n            uVar1 = p_00->inTrans;\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar6 = db->nDb;\n        }\n        else {\njoined_r0x00082572:\n          if (uVar1 == '\x02') {\n            pBt = p_00->pBt;\n            if (p_00->sharable == '\0') {\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }\n            else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }\n            p_00->wantToLock = iVar6 + -1;\n            if (iVar6 + -1 != 0) goto LAB_0008265a;\n            unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);\n            iVar6 = db->nDb;\n          }\n          else {\n            iVar7 = 0;\n            iVar6 = db->nDb;\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar7 = local_50;\n        }\n      }\n      local_50 = iVar7;\n      iVar9 = iVar9 + 1;\n    }" { (expression_statement "p_00 = db->aDb[iVar9].pBt;" (assignment_expression "p_00 = db->aDb[iVar9].pBt" identifier = (field_expression "db->aDb[iVar9].pBt" (subscript_expression "db->aDb[iVar9]" (field_expression "db->aDb" identifier -> field_identifier) [ identifier ]) . field_identifier)) ;) (expression_statement "iVar7 = local_50;" (assignment_expression "iVar7 = local_50" identifier = identifier) ;) (if_statement "if (p_00 != (Btree *)0x0) {\n        uVar1 = p_00->inTrans;\n        if (eOp == 2) {\n          iVar7 = 0;\n          if (uVar1 != '\x02') goto LAB_0008257d;\n          iVar7 = sqlite3BtreeSavepoint(p_00,2,iSavepoint);\n          if (iVar7 == 0) {\n            uVar1 = p_00->inTrans;\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar6 = db->nDb;\n        }\n        else {\njoined_r0x00082572:\n          if (uVar1 == '\x02') {\n            pBt = p_00->pBt;\n            if (p_00->sharable == '\0') {\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }\n            else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }\n            p_00->wantToLock = iVar6 + -1;\n            if (iVar6 + -1 != 0) goto LAB_0008265a;\n            unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);\n            iVar6 = db->nDb;\n          }\n          else {\n            iVar7 = 0;\n            iVar6 = db->nDb;\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar7 = local_50;\n        }\n      }" if (parenthesized_expression "(p_00 != (Btree *)0x0)" ( (binary_expression "p_00 != (Btree *)0x0" identifier != (cast_expression "(Btree *)0x0" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar1 = p_00->inTrans;\n        if (eOp == 2) {\n          iVar7 = 0;\n          if (uVar1 != '\x02') goto LAB_0008257d;\n          iVar7 = sqlite3BtreeSavepoint(p_00,2,iSavepoint);\n          if (iVar7 == 0) {\n            uVar1 = p_00->inTrans;\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar6 = db->nDb;\n        }\n        else {\njoined_r0x00082572:\n          if (uVar1 == '\x02') {\n            pBt = p_00->pBt;\n            if (p_00->sharable == '\0') {\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }\n            else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }\n            p_00->wantToLock = iVar6 + -1;\n            if (iVar6 + -1 != 0) goto LAB_0008265a;\n            unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);\n            iVar6 = db->nDb;\n          }\n          else {\n            iVar7 = 0;\n            iVar6 = db->nDb;\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar7 = local_50;\n        }\n      }" { (expression_statement "uVar1 = p_00->inTrans;" (assignment_expression "uVar1 = p_00->inTrans" identifier = (field_expression "p_00->inTrans" identifier -> field_identifier)) ;) (if_statement "if (eOp == 2) {\n          iVar7 = 0;\n          if (uVar1 != '\x02') goto LAB_0008257d;\n          iVar7 = sqlite3BtreeSavepoint(p_00,2,iSavepoint);\n          if (iVar7 == 0) {\n            uVar1 = p_00->inTrans;\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar6 = db->nDb;\n        }\n        else {\njoined_r0x00082572:\n          if (uVar1 == '\x02') {\n            pBt = p_00->pBt;\n            if (p_00->sharable == '\0') {\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }\n            else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }\n            p_00->wantToLock = iVar6 + -1;\n            if (iVar6 + -1 != 0) goto LAB_0008265a;\n            unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);\n            iVar6 = db->nDb;\n          }\n          else {\n            iVar7 = 0;\n            iVar6 = db->nDb;\n          }\n        }" if (parenthesized_expression "(eOp == 2)" ( (binary_expression "eOp == 2" identifier == number_literal) )) (compound_statement "{\n          iVar7 = 0;\n          if (uVar1 != '\x02') goto LAB_0008257d;\n          iVar7 = sqlite3BtreeSavepoint(p_00,2,iSavepoint);\n          if (iVar7 == 0) {\n            uVar1 = p_00->inTrans;\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar6 = db->nDb;\n        }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (if_statement "if (uVar1 != '\x02') goto LAB_0008257d;" if (parenthesized_expression "(uVar1 != '\x02')" ( (binary_expression "uVar1 != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008257d;" goto statement_identifier ;)) (expression_statement "iVar7 = sqlite3BtreeSavepoint(p_00,2,iSavepoint);" (assignment_expression "iVar7 = sqlite3BtreeSavepoint(p_00,2,iSavepoint)" identifier = (call_expression "sqlite3BtreeSavepoint(p_00,2,iSavepoint)" identifier (argument_list "(p_00,2,iSavepoint)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n            uVar1 = p_00->inTrans;\n            goto joined_r0x00082572;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar1 = p_00->inTrans;\n            goto joined_r0x00082572;\n          }" { (expression_statement "uVar1 = p_00->inTrans;" (assignment_expression "uVar1 = p_00->inTrans" identifier = (field_expression "p_00->inTrans" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x00082572;" goto statement_identifier ;) })) (labeled_statement "LAB_0008265a:\n          iVar6 = db->nDb;" statement_identifier : (expression_statement "iVar6 = db->nDb;" (assignment_expression "iVar6 = db->nDb" identifier = (field_expression "db->nDb" identifier -> field_identifier)) ;)) }) (else_clause "else {\njoined_r0x00082572:\n          if (uVar1 == '\x02') {\n            pBt = p_00->pBt;\n            if (p_00->sharable == '\0') {\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }\n            else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }\n            p_00->wantToLock = iVar6 + -1;\n            if (iVar6 + -1 != 0) goto LAB_0008265a;\n            unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);\n            iVar6 = db->nDb;\n          }\n          else {\n            iVar7 = 0;\n            iVar6 = db->nDb;\n          }\n        }" else (compound_statement "{\njoined_r0x00082572:\n          if (uVar1 == '\x02') {\n            pBt = p_00->pBt;\n            if (p_00->sharable == '\0') {\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }\n            else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }\n            p_00->wantToLock = iVar6 + -1;\n            if (iVar6 + -1 != 0) goto LAB_0008265a;\n            unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);\n            iVar6 = db->nDb;\n          }\n          else {\n            iVar7 = 0;\n            iVar6 = db->nDb;\n          }\n        }" { (labeled_statement "joined_r0x00082572:\n          if (uVar1 == '\x02') {\n            pBt = p_00->pBt;\n            if (p_00->sharable == '\0') {\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }\n            else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }\n            p_00->wantToLock = iVar6 + -1;\n            if (iVar6 + -1 != 0) goto LAB_0008265a;\n            unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);\n            iVar6 = db->nDb;\n          }\n          else {\n            iVar7 = 0;\n            iVar6 = db->nDb;\n          }" statement_identifier : (if_statement "if (uVar1 == '\x02') {\n            pBt = p_00->pBt;\n            if (p_00->sharable == '\0') {\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }\n            else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }\n            p_00->wantToLock = iVar6 + -1;\n            if (iVar6 + -1 != 0) goto LAB_0008265a;\n            unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);\n            iVar6 = db->nDb;\n          }\n          else {\n            iVar7 = 0;\n            iVar6 = db->nDb;\n          }" if (parenthesized_expression "(uVar1 == '\x02')" ( (binary_expression "uVar1 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n            pBt = p_00->pBt;\n            if (p_00->sharable == '\0') {\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }\n            else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }\n            p_00->wantToLock = iVar6 + -1;\n            if (iVar6 + -1 != 0) goto LAB_0008265a;\n            unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);\n            iVar6 = db->nDb;\n          }" { (expression_statement "pBt = p_00->pBt;" (assignment_expression "pBt = p_00->pBt" identifier = (field_expression "p_00->pBt" identifier -> field_identifier)) ;) (if_statement "if (p_00->sharable == '\0') {\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }\n            else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }" if (parenthesized_expression "(p_00->sharable == '\0')" ( (binary_expression "p_00->sharable == '\0'" (field_expression "p_00->sharable" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar6 = local_30->nSavepoint;\n              local_3c = iSavepoint;\n              local_38 = iSavepoint * 0x2c;\n              if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }\n              uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);\n              PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;\n              if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }\n              pBt->nPage = PVar5;\nLAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;\n              iVar6 = p_00->wantToLock;\n            }" { (expression_statement "local_30 = pBt->pPager;" (assignment_expression "local_30 = pBt->pPager" identifier = (field_expression "pBt->pPager" identifier -> field_identifier)) ;) (expression_statement "iVar7 = local_30->errCode;" (assignment_expression "iVar7 = local_30->errCode" identifier = (field_expression "local_30->errCode" identifier -> field_identifier)) ;) (if_statement "if (iVar7 != 0) goto LAB_0008265a;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008265a;" goto statement_identifier ;)) (labeled_statement "LAB_000825fe:\n              iVar6 = local_30->nSavepoint;" statement_identifier : (expression_statement "iVar6 = local_30->nSavepoint;" (assignment_expression "iVar6 = local_30->nSavepoint" identifier = (field_expression "local_30->nSavepoint" identifier -> field_identifier)) ;)) (expression_statement "local_3c = iSavepoint;" (assignment_expression "local_3c = iSavepoint" identifier = identifier) ;) (expression_statement "local_38 = iSavepoint * 0x2c;" (assignment_expression "local_38 = iSavepoint * 0x2c" identifier = (binary_expression "iSavepoint * 0x2c" identifier * number_literal)) ;) (if_statement "if (iSavepoint < iVar6) {\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }" if (parenthesized_expression "(iSavepoint < iVar6)" ( (binary_expression "iSavepoint < iVar6" identifier < identifier) )) (compound_statement "{\n                do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);\n                local_30->nSavepoint = iSavepoint;\n                if (iSavepoint != 0) goto LAB_0008260b;\n                psVar4 = local_30->sjfd->pMethods;\n                if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }\nLAB_00082617:\n                iVar7 = 0;\n                if (pBt->nPage == 0) goto LAB_00082805;\n              }" { (do_statement "do {\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar6);" do (compound_statement "{\n                  p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);\n                  if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                }" { (expression_statement "p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc);" (assignment_expression "p_01 = *(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc)" identifier = (pointer_expression "*(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc)" * (cast_expression "(void **)((int)local_30->aSavepoint->aWalData + local_38 + -0xc)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_30->aSavepoint->aWalData + local_38 + -0xc)" ( (binary_expression "(int)local_30->aSavepoint->aWalData + local_38 + -0xc" (binary_expression "(int)local_30->aSavepoint->aWalData + local_38" (cast_expression "(int)local_30->aSavepoint->aWalData" ( (type_descriptor "int" primitive_type) ) (field_expression "local_30->aSavepoint->aWalData" (field_expression "local_30->aSavepoint" identifier -> field_identifier) -> field_identifier)) + identifier) + number_literal) ))))) ;) (if_statement "if (p_01 != (void *)0x0) {\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }" if (parenthesized_expression "(p_01 != (void *)0x0)" ( (binary_expression "p_01 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }\n                    sqlite3_free(p_01);\n                    iVar6 = local_30->nSavepoint;\n                  }" { (if_statement "if (*(int *)((int)p_01 + 8) != 0) {\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }" if (parenthesized_expression "(*(int *)((int)p_01 + 8) != 0)" ( (binary_expression "*(int *)((int)p_01 + 8) != 0" (pointer_expression "*(int *)((int)p_01 + 8)" * (cast_expression "(int *)((int)p_01 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_01 + 8)" ( (binary_expression "(int)p_01 + 8" (cast_expression "(int)p_01" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n                      puVar8 = (undefined4 *)((int)p_01 + 0xc);\n                      do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);\n                    }" { (expression_statement "puVar8 = (undefined4 *)((int)p_01 + 0xc);" (assignment_expression "puVar8 = (undefined4 *)((int)p_01 + 0xc)" identifier = (cast_expression "(undefined4 *)((int)p_01 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_01 + 0xc)" ( (binary_expression "(int)p_01 + 0xc" (cast_expression "(int)p_01" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      } while ((undefined4 *)((int)p_01 + 0x200) != puVar8);" do (compound_statement "{\n                        p_02 = (Bitvec *)*puVar8;\n                        puVar8 = puVar8 + 1;\n                        sqlite3BitvecDestroy(p_02);\n                      }" { (expression_statement "p_02 = (Bitvec *)*puVar8;" (assignment_expression "p_02 = (Bitvec *)*puVar8" identifier = (cast_expression "(Bitvec *)*puVar8" ( (type_descriptor "Bitvec *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) ;) (expression_statement "puVar8 = puVar8 + 1;" (assignment_expression "puVar8 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;) (expression_statement "sqlite3BitvecDestroy(p_02);" (call_expression "sqlite3BitvecDestroy(p_02)" identifier (argument_list "(p_02)" ( identifier ))) ;) }) while (parenthesized_expression "((undefined4 *)((int)p_01 + 0x200) != puVar8)" ( (binary_expression "(undefined4 *)((int)p_01 + 0x200) != puVar8" (cast_expression "(undefined4 *)((int)p_01 + 0x200)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_01 + 0x200)" ( (binary_expression "(int)p_01 + 0x200" (cast_expression "(int)p_01" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) != identifier) )) ;) })) (expression_statement "sqlite3_free(p_01);" (call_expression "sqlite3_free(p_01)" identifier (argument_list "(p_01)" ( identifier ))) ;) (expression_statement "iVar6 = local_30->nSavepoint;" (assignment_expression "iVar6 = local_30->nSavepoint" identifier = (field_expression "local_30->nSavepoint" identifier -> field_identifier)) ;) })) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) (expression_statement "local_38 = local_38 + 0x2c;" (assignment_expression "local_38 = local_38 + 0x2c" identifier = (binary_expression "local_38 + 0x2c" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_3c < iVar6)" ( (binary_expression "local_3c < iVar6" identifier < identifier) )) ;) (expression_statement "local_30->nSavepoint = iSavepoint;" (assignment_expression "local_30->nSavepoint = iSavepoint" (field_expression "local_30->nSavepoint" identifier -> field_identifier) = identifier) ;) (if_statement "if (iSavepoint != 0) goto LAB_0008260b;" if (parenthesized_expression "(iSavepoint != 0)" ( (binary_expression "iSavepoint != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008260b;" goto statement_identifier ;)) (expression_statement "psVar4 = local_30->sjfd->pMethods;" (assignment_expression "psVar4 = local_30->sjfd->pMethods" identifier = (field_expression "local_30->sjfd->pMethods" (field_expression "local_30->sjfd" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (psVar4 != (sqlite3_io_methods *)0x0) {\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }" if (parenthesized_expression "(psVar4 != (sqlite3_io_methods *)0x0)" ( (binary_expression "psVar4 != (sqlite3_io_methods *)0x0" identifier != (cast_expression "(sqlite3_io_methods *)0x0" ( (type_descriptor "sqlite3_io_methods *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }\n                }" { (if_statement "if (psVar4 == &MemJournalMethods) {\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    local_30->nSubRec = 0;\n                  }" if (parenthesized_expression "(psVar4 == &MemJournalMethods)" ( (binary_expression "psVar4 == &MemJournalMethods" identifier == (pointer_expression "&MemJournalMethods" & identifier)) )) (compound_statement "{\n                    iVar7 = memjrnlTruncate(local_30->sjfd,0);\n                    local_30->nSubRec = 0;\n                    if (iVar7 != 0) goto LAB_00082643;\n                  }" { (expression_statement "iVar7 = memjrnlTruncate(local_30->sjfd,0);" (assignment_expression "iVar7 = memjrnlTruncate(local_30->sjfd,0)" identifier = (call_expression "memjrnlTruncate(local_30->sjfd,0)" identifier (argument_list "(local_30->sjfd,0)" ( (field_expression "local_30->sjfd" identifier -> field_identifier) , number_literal )))) ;) (expression_statement "local_30->nSubRec = 0;" (assignment_expression "local_30->nSubRec = 0" (field_expression "local_30->nSubRec" identifier -> field_identifier) = number_literal) ;) (if_statement "if (iVar7 != 0) goto LAB_00082643;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00082643;" goto statement_identifier ;)) }) (else_clause "else {\n                    local_30->nSubRec = 0;\n                  }" else (compound_statement "{\n                    local_30->nSubRec = 0;\n                  }" { (expression_statement "local_30->nSubRec = 0;" (assignment_expression "local_30->nSubRec = 0" (field_expression "local_30->nSubRec" identifier -> field_identifier) = number_literal) ;) }))) })) (labeled_statement "LAB_00082617:\n                iVar7 = 0;" statement_identifier : (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;)) (if_statement "if (pBt->nPage == 0) goto LAB_00082805;" if (parenthesized_expression "(pBt->nPage == 0)" ( (binary_expression "pBt->nPage == 0" (field_expression "pBt->nPage" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_00082805;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }" else (compound_statement "{\nLAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;\n                pBt->nPage = 0;\nLAB_00082805:\n                iVar7 = newDatabase(pBt);\n              }" { (labeled_statement "LAB_0008260b:\n                if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;" statement_identifier : (if_statement "if ((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;" if (parenthesized_expression "((-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0))" ( (binary_expression "(-1 < iSavepoint) || ((pBt->btsFlags & 0x10) == 0)" (parenthesized_expression "(-1 < iSavepoint)" ( (binary_expression "-1 < iSavepoint" number_literal < identifier) )) || (parenthesized_expression "((pBt->btsFlags & 0x10) == 0)" ( (binary_expression "(pBt->btsFlags & 0x10) == 0" (parenthesized_expression "(pBt->btsFlags & 0x10)" ( (binary_expression "pBt->btsFlags & 0x10" (field_expression "pBt->btsFlags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00082617;" goto statement_identifier ;))) (expression_statement "pBt->nPage = 0;" (assignment_expression "pBt->nPage = 0" (field_expression "pBt->nPage" identifier -> field_identifier) = number_literal) ;) (labeled_statement "LAB_00082805:\n                iVar7 = newDatabase(pBt);" statement_identifier : (expression_statement "iVar7 = newDatabase(pBt);" (assignment_expression "iVar7 = newDatabase(pBt)" identifier = (call_expression "newDatabase(pBt)" identifier (argument_list "(pBt)" ( identifier )))) ;)) }))) (expression_statement "uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c);" (assignment_expression "uVar2 = *(uint *)(pBt->pPage1->aData + 0x1c)" identifier = (pointer_expression "*(uint *)(pBt->pPage1->aData + 0x1c)" * (cast_expression "(uint *)(pBt->pPage1->aData + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pBt->pPage1->aData + 0x1c)" ( (binary_expression "pBt->pPage1->aData + 0x1c" (field_expression "pBt->pPage1->aData" (field_expression "pBt->pPage1" identifier -> field_identifier) -> field_identifier) + number_literal) ))))) ;) (expression_statement "PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18;" (assignment_expression "PVar5 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18" identifier = (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x18" identifier << number_literal))) ;) (if_statement "if (PVar5 == 0) {\n                PVar5 = pBt->pPager->dbSize;\n              }" if (parenthesized_expression "(PVar5 == 0)" ( (binary_expression "PVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                PVar5 = pBt->pPager->dbSize;\n              }" { (expression_statement "PVar5 = pBt->pPager->dbSize;" (assignment_expression "PVar5 = pBt->pPager->dbSize" identifier = (field_expression "pBt->pPager->dbSize" (field_expression "pBt->pPager" identifier -> field_identifier) -> field_identifier)) ;) })) (expression_statement "pBt->nPage = PVar5;" (assignment_expression "pBt->nPage = PVar5" (field_expression "pBt->nPage" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_00082643:\n              if (p_00->sharable == '\0') goto LAB_0008265a;" statement_identifier : (if_statement "if (p_00->sharable == '\0') goto LAB_0008265a;" if (parenthesized_expression "(p_00->sharable == '\0')" ( (binary_expression "p_00->sharable == '\0'" (field_expression "p_00->sharable" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008265a;" goto statement_identifier ;))) (expression_statement "iVar6 = p_00->wantToLock;" (assignment_expression "iVar6 = p_00->wantToLock" identifier = (field_expression "p_00->wantToLock" identifier -> field_identifier)) ;) }) (else_clause "else {\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }" else (compound_statement "{\n              iVar6 = p_00->wantToLock + 1;\n              p_00->wantToLock = iVar6;\n              if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = pBt->pPager;\n              iVar7 = local_30->errCode;\n              if (iVar7 == 0) goto LAB_000825fe;\n            }" { (expression_statement "iVar6 = p_00->wantToLock + 1;" (assignment_expression "iVar6 = p_00->wantToLock + 1" identifier = (binary_expression "p_00->wantToLock + 1" (field_expression "p_00->wantToLock" identifier -> field_identifier) + number_literal)) ;) (expression_statement "p_00->wantToLock = iVar6;" (assignment_expression "p_00->wantToLock = iVar6" (field_expression "p_00->wantToLock" identifier -> field_identifier) = identifier) ;) (if_statement "if (p_00->locked == '\0') {\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }" if (parenthesized_expression "(p_00->locked == '\0')" ( (binary_expression "p_00->locked == '\0'" (field_expression "p_00->locked" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                btreeLockCarefully(p_00);\n                local_30 = pBt->pPager;\n                iVar7 = local_30->errCode;\n                if (iVar7 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }" { (expression_statement "btreeLockCarefully(p_00);" (call_expression "btreeLockCarefully(p_00)" identifier (argument_list "(p_00)" ( identifier ))) ;) (expression_statement "local_30 = pBt->pPager;" (assignment_expression "local_30 = pBt->pPager" identifier = (field_expression "pBt->pPager" identifier -> field_identifier)) ;) (expression_statement "iVar7 = local_30->errCode;" (assignment_expression "iVar7 = local_30->errCode" identifier = (field_expression "local_30->errCode" identifier -> field_identifier)) ;) (if_statement "if (iVar7 == 0) goto LAB_000825fe;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000825fe;" goto statement_identifier ;)) (goto_statement "goto LAB_00082643;" goto statement_identifier ;) })) (expression_statement "local_30 = pBt->pPager;" (assignment_expression "local_30 = pBt->pPager" identifier = (field_expression "pBt->pPager" identifier -> field_identifier)) ;) (expression_statement "iVar7 = local_30->errCode;" (assignment_expression "iVar7 = local_30->errCode" identifier = (field_expression "local_30->errCode" identifier -> field_identifier)) ;) (if_statement "if (iVar7 == 0) goto LAB_000825fe;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000825fe;" goto statement_identifier ;)) }))) (expression_statement "p_00->wantToLock = iVar6 + -1;" (assignment_expression "p_00->wantToLock = iVar6 + -1" (field_expression "p_00->wantToLock" identifier -> field_identifier) = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (if_statement "if (iVar6 + -1 != 0) goto LAB_0008265a;" if (parenthesized_expression "(iVar6 + -1 != 0)" ( (binary_expression "iVar6 + -1 != 0" (binary_expression "iVar6 + -1" identifier + number_literal) != number_literal) )) (goto_statement "goto LAB_0008265a;" goto statement_identifier ;)) (expression_statement "unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked);" (call_expression "unlockBtreeMutex((Btree *)p_00->pBt,(Btree *)&p_00->locked)" identifier (argument_list "((Btree *)p_00->pBt,(Btree *)&p_00->locked)" ( (cast_expression "(Btree *)p_00->pBt" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "p_00->pBt" identifier -> field_identifier)) , (cast_expression "(Btree *)&p_00->locked" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&p_00->locked" & (field_expression "p_00->locked" identifier -> field_identifier))) ))) ;) (expression_statement "iVar6 = db->nDb;" (assignment_expression "iVar6 = db->nDb" identifier = (field_expression "db->nDb" identifier -> field_identifier)) ;) }) (else_clause "else {\n            iVar7 = 0;\n            iVar6 = db->nDb;\n          }" else (compound_statement "{\n            iVar7 = 0;\n            iVar6 = db->nDb;\n          }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = db->nDb;" (assignment_expression "iVar6 = db->nDb" identifier = (field_expression "db->nDb" identifier -> field_identifier)) ;) })))) }))) (labeled_statement "LAB_0008257d:\n        if (local_50 != 0) {\n          iVar7 = local_50;\n        }" statement_identifier : (if_statement "if (local_50 != 0) {\n          iVar7 = local_50;\n        }" if (parenthesized_expression "(local_50 != 0)" ( (binary_expression "local_50 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar7 = local_50;\n        }" { (expression_statement "iVar7 = local_50;" (assignment_expression "iVar7 = local_50" identifier = identifier) ;) }))) })) (expression_statement "local_50 = iVar7;" (assignment_expression "local_50 = iVar7" identifier = identifier) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 < iVar6)" ( (binary_expression "iVar9 < iVar6" identifier < identifier) )) ;) (expression_statement "db->nStatement = db->nStatement + -1;" (assignment_expression "db->nStatement = db->nStatement + -1" (field_expression "db->nStatement" identifier -> field_identifier) = (binary_expression "db->nStatement + -1" (field_expression "db->nStatement" identifier -> field_identifier) + number_literal)) ;) (expression_statement "p->iStatement = 0;" (assignment_expression "p->iStatement = 0" (field_expression "p->iStatement" identifier -> field_identifier) = number_literal) ;) (if_statement "if (local_50 == 0) goto LAB_000826b7;" if (parenthesized_expression "(local_50 == 0)" ( (binary_expression "local_50 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000826b7;" goto statement_identifier ;)) }))) (if_statement "if (eOp != 2) {\n    return local_50;\n  }" if (parenthesized_expression "(eOp != 2)" ( (binary_expression "eOp != 2" identifier != number_literal) )) (compound_statement "{\n    return local_50;\n  }" { (return_statement "return local_50;" return identifier ;) })) (labeled_statement "LAB_000826f1:\n  uVar3 = *(undefined4 *)((int)&p->nStmtDefCons + 4);" statement_identifier : (expression_statement "uVar3 = *(undefined4 *)((int)&p->nStmtDefCons + 4);" (assignment_expression "uVar3 = *(undefined4 *)((int)&p->nStmtDefCons + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&p->nStmtDefCons + 4)" * (cast_expression "(undefined4 *)((int)&p->nStmtDefCons + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&p->nStmtDefCons + 4)" ( (binary_expression "(int)&p->nStmtDefCons + 4" (cast_expression "(int)&p->nStmtDefCons" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p->nStmtDefCons" & (field_expression "p->nStmtDefCons" identifier -> field_identifier))) + number_literal) ))))) ;)) (expression_statement "*(int *)&db->nDeferredCons = (int)p->nStmtDefCons;" (assignment_expression "*(int *)&db->nDeferredCons = (int)p->nStmtDefCons" (pointer_expression "*(int *)&db->nDeferredCons" * (cast_expression "(int *)&db->nDeferredCons" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&db->nDeferredCons" & (field_expression "db->nDeferredCons" identifier -> field_identifier)))) = (cast_expression "(int)p->nStmtDefCons" ( (type_descriptor "int" primitive_type) ) (field_expression "p->nStmtDefCons" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&db->nDeferredCons + 4) = uVar3;" (assignment_expression "*(undefined4 *)((int)&db->nDeferredCons + 4) = uVar3" (pointer_expression "*(undefined4 *)((int)&db->nDeferredCons + 4)" * (cast_expression "(undefined4 *)((int)&db->nDeferredCons + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&db->nDeferredCons + 4)" ( (binary_expression "(int)&db->nDeferredCons + 4" (cast_expression "(int)&db->nDeferredCons" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&db->nDeferredCons" & (field_expression "db->nDeferredCons" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = *(undefined4 *)((int)&p->nStmtDefImmCons + 4);" (assignment_expression "uVar3 = *(undefined4 *)((int)&p->nStmtDefImmCons + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&p->nStmtDefImmCons + 4)" * (cast_expression "(undefined4 *)((int)&p->nStmtDefImmCons + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&p->nStmtDefImmCons + 4)" ( (binary_expression "(int)&p->nStmtDefImmCons + 4" (cast_expression "(int)&p->nStmtDefImmCons" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p->nStmtDefImmCons" & (field_expression "p->nStmtDefImmCons" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(int *)&db->nDeferredImmCons = (int)p->nStmtDefImmCons;" (assignment_expression "*(int *)&db->nDeferredImmCons = (int)p->nStmtDefImmCons" (pointer_expression "*(int *)&db->nDeferredImmCons" * (cast_expression "(int *)&db->nDeferredImmCons" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&db->nDeferredImmCons" & (field_expression "db->nDeferredImmCons" identifier -> field_identifier)))) = (cast_expression "(int)p->nStmtDefImmCons" ( (type_descriptor "int" primitive_type) ) (field_expression "p->nStmtDefImmCons" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&db->nDeferredImmCons + 4) = uVar3;" (assignment_expression "*(undefined4 *)((int)&db->nDeferredImmCons + 4) = uVar3" (pointer_expression "*(undefined4 *)((int)&db->nDeferredImmCons + 4)" * (cast_expression "(undefined4 *)((int)&db->nDeferredImmCons + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&db->nDeferredImmCons + 4)" ( (binary_expression "(int)&db->nDeferredImmCons + 4" (cast_expression "(int)&db->nDeferredImmCons" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&db->nDeferredImmCons" & (field_expression "db->nDeferredImmCons" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (return_statement "return local_50;" return identifier ;) })))
(translation_unit "int __regparm3 FUN_00082510(int *param_1,int param_2)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int local_50;\n  int local_3c;\n  int local_38;\n  int local_30;\n  \n  iVar2 = *param_1;\n  iVar9 = *(int *)(iVar2 + 0x14);\n  iVar6 = param_1[0xc] + -1;\n  if (iVar9 < 1) {\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\nLAB_000826b7:\n    if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }\n    local_50 = FUN_000430f0();\n  }\n  else {\n    iVar10 = 0;\n    local_50 = 0;\n    do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }\n  if (param_2 != 2) {\n    return local_50;\n  }\nLAB_000826f1:\n  iVar9 = param_1[0x12];\n  *(int *)(iVar2 + 0x1dc) = param_1[0x11];\n  *(int *)(iVar2 + 0x1e0) = iVar9;\n  iVar9 = param_1[0x14];\n  *(int *)(iVar2 + 0x1e4) = param_1[0x13];\n  *(int *)(iVar2 + 0x1e8) = iVar9;\n  return local_50;\n}\n\n" (function_definition "int __regparm3 FUN_00082510(int *param_1,int param_2)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int local_50;\n  int local_3c;\n  int local_38;\n  int local_30;\n  \n  iVar2 = *param_1;\n  iVar9 = *(int *)(iVar2 + 0x14);\n  iVar6 = param_1[0xc] + -1;\n  if (iVar9 < 1) {\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\nLAB_000826b7:\n    if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }\n    local_50 = FUN_000430f0();\n  }\n  else {\n    iVar10 = 0;\n    local_50 = 0;\n    do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }\n  if (param_2 != 2) {\n    return local_50;\n  }\nLAB_000826f1:\n  iVar9 = param_1[0x12];\n  *(int *)(iVar2 + 0x1dc) = param_1[0x11];\n  *(int *)(iVar2 + 0x1e0) = iVar9;\n  iVar9 = param_1[0x14];\n  *(int *)(iVar2 + 0x1e4) = param_1[0x13];\n  *(int *)(iVar2 + 0x1e8) = iVar9;\n  return local_50;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00082510(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int local_50;\n  int local_3c;\n  int local_38;\n  int local_30;\n  \n  iVar2 = *param_1;\n  iVar9 = *(int *)(iVar2 + 0x14);\n  iVar6 = param_1[0xc] + -1;\n  if (iVar9 < 1) {\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\nLAB_000826b7:\n    if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }\n    local_50 = FUN_000430f0();\n  }\n  else {\n    iVar10 = 0;\n    local_50 = 0;\n    do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }\n  if (param_2 != 2) {\n    return local_50;\n  }\nLAB_000826f1:\n  iVar9 = param_1[0x12];\n  *(int *)(iVar2 + 0x1dc) = param_1[0x11];\n  *(int *)(iVar2 + 0x1e0) = iVar9;\n  iVar9 = param_1[0x14];\n  *(int *)(iVar2 + 0x1e4) = param_1[0x13];\n  *(int *)(iVar2 + 0x1e8) = iVar9;\n  return local_50;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (expression_statement "iVar2 = *param_1;" (assignment_expression "iVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar9 = *(int *)(iVar2 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar2 + 0x14)" identifier = (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = param_1[0xc] + -1;" (assignment_expression "iVar6 = param_1[0xc] + -1" identifier = (binary_expression "param_1[0xc] + -1" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (iVar9 < 1) {\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\nLAB_000826b7:\n    if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }\n    local_50 = FUN_000430f0();\n  }\n  else {\n    iVar10 = 0;\n    local_50 = 0;\n    do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }" if (parenthesized_expression "(iVar9 < 1)" ( (binary_expression "iVar9 < 1" identifier < number_literal) )) (compound_statement "{\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\nLAB_000826b7:\n    if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }\n    local_50 = FUN_000430f0();\n  }" { (expression_statement "*(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;" (assignment_expression "*(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1" (pointer_expression "*(int *)(iVar2 + 0x1d8)" * (cast_expression "(int *)(iVar2 + 0x1d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1d8)" ( (binary_expression "iVar2 + 0x1d8" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar2 + 0x1d8) + -1" (pointer_expression "*(int *)(iVar2 + 0x1d8)" * (cast_expression "(int *)(iVar2 + 0x1d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1d8)" ( (binary_expression "iVar2 + 0x1d8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_000826b7:\n    if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }" statement_identifier : (if_statement "if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }" if (parenthesized_expression "(param_2 == 2)" ( (binary_expression "param_2 == 2" identifier == number_literal) )) (compound_statement "{\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }" { (if_statement "if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }" if (parenthesized_expression "(*(int *)(iVar2 + 0x174) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x174) == 0" (pointer_expression "*(int *)(iVar2 + 0x174)" * (cast_expression "(int *)(iVar2 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x174)" ( (binary_expression "iVar2 + 0x174" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        local_50 = 0;\n        goto LAB_000826f1;\n      }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000826f1;" goto statement_identifier ;) })) (expression_statement "local_50 = FUN_000430f0();" (assignment_expression "local_50 = FUN_000430f0()" identifier = (call_expression "FUN_000430f0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;" if (parenthesized_expression "((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0))" ( (binary_expression "(local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)" (parenthesized_expression "(local_50 != 0)" ( (binary_expression "local_50 != 0" identifier != number_literal) )) || (parenthesized_expression "(*(int *)(iVar2 + 0x174) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x174) == 0" (pointer_expression "*(int *)(iVar2 + 0x174)" * (cast_expression "(int *)(iVar2 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x174)" ( (binary_expression "iVar2 + 0x174" identifier + number_literal) )))) == number_literal) ))) )) (goto_statement "goto LAB_000826f1;" goto statement_identifier ;)) }) (else_clause "else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }" else (if_statement "if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }" if (parenthesized_expression "(*(int *)(iVar2 + 0x174) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x174) == 0" (pointer_expression "*(int *)(iVar2 + 0x174)" * (cast_expression "(int *)(iVar2 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x174)" ( (binary_expression "iVar2 + 0x174" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) }))))) (expression_statement "local_50 = FUN_000430f0();" (assignment_expression "local_50 = FUN_000430f0()" identifier = (call_expression "FUN_000430f0()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n    iVar10 = 0;\n    local_50 = 0;\n    do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }" else (compound_statement "{\n    iVar10 = 0;\n    local_50 = 0;\n    do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);" do (compound_statement "{\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    }" { (expression_statement "iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);" (assignment_expression "iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4)" identifier = (pointer_expression "*(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4)" * (cast_expression "(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4)" ( (binary_expression "iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4" (binary_expression "iVar10 * 0x10 + *(int *)(iVar2 + 0x10)" (binary_expression "iVar10 * 0x10" identifier * number_literal) + (pointer_expression "*(int *)(iVar2 + 0x10)" * (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "iVar8 = local_50;" (assignment_expression "iVar8 = local_50" identifier = identifier) ;) (if_statement "if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }" { (expression_statement "cVar1 = *(char *)(iVar3 + 8);" (assignment_expression "cVar1 = *(char *)(iVar3 + 8)" identifier = (pointer_expression "*(char *)(iVar3 + 8)" * (cast_expression "(char *)(iVar3 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;) (if_statement "if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }" if (parenthesized_expression "(param_2 == 2)" ( (binary_expression "param_2 == 2" identifier == number_literal) )) (compound_statement "{\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (cVar1 != '\x02') goto LAB_0008257d;" if (parenthesized_expression "(cVar1 != '\x02')" ( (binary_expression "cVar1 != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008257d;" goto statement_identifier ;)) (expression_statement "iVar8 = FUN_00082410();" (assignment_expression "iVar8 = FUN_00082410()" identifier = (call_expression "FUN_00082410()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }" { (expression_statement "cVar1 = *(char *)(iVar3 + 8);" (assignment_expression "cVar1 = *(char *)(iVar3 + 8)" identifier = (pointer_expression "*(char *)(iVar3 + 8)" * (cast_expression "(char *)(iVar3 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x00082572;" goto statement_identifier ;) })) (labeled_statement "LAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);" statement_identifier : (expression_statement "iVar9 = *(int *)(iVar2 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar2 + 0x14)" identifier = (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;)) }) (else_clause "else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }" else (compound_statement "{\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }" { (labeled_statement "joined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }" statement_identifier : (if_statement "if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }" if (parenthesized_expression "(cVar1 == '\x02')" ( (binary_expression "cVar1 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }" { (expression_statement "piVar4 = *(int **)(iVar3 + 4);" (assignment_expression "piVar4 = *(int **)(iVar3 + 4)" identifier = (pointer_expression "*(int **)(iVar3 + 4)" * (cast_expression "(int **)(iVar3 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }" if (parenthesized_expression "(*(char *)(iVar3 + 9) == '\0')" ( (binary_expression "*(char *)(iVar3 + 9) == '\0'" (pointer_expression "*(char *)(iVar3 + 9)" * (cast_expression "(char *)(iVar3 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 9)" ( (binary_expression "iVar3 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }" { (expression_statement "local_30 = *piVar4;" (assignment_expression "local_30 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "iVar8 = *(int *)(local_30 + 0x28);" (assignment_expression "iVar8 = *(int *)(local_30 + 0x28)" identifier = (pointer_expression "*(int *)(local_30 + 0x28)" * (cast_expression "(int *)(local_30 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x28)" ( (binary_expression "local_30 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 != 0) goto LAB_0008265a;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008265a;" goto statement_identifier ;)) (labeled_statement "LAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);" statement_identifier : (expression_statement "iVar9 = *(int *)(local_30 + 0x60);" (assignment_expression "iVar9 = *(int *)(local_30 + 0x60)" identifier = (pointer_expression "*(int *)(local_30 + 0x60)" * (cast_expression "(int *)(local_30 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x60)" ( (binary_expression "local_30 + 0x60" identifier + number_literal) ))))) ;)) (expression_statement "local_3c = iVar6;" (assignment_expression "local_3c = iVar6" identifier = identifier) ;) (expression_statement "local_38 = iVar6 * 0x2c;" (assignment_expression "local_38 = iVar6 * 0x2c" identifier = (binary_expression "iVar6 * 0x2c" identifier * number_literal)) ;) (if_statement "if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }" if (parenthesized_expression "(iVar6 < iVar9)" ( (binary_expression "iVar6 < iVar9" identifier < identifier) )) (compound_statement "{\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }" { (do_statement "do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);" do (compound_statement "{\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                }" { (expression_statement "iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);" (assignment_expression "iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38)" identifier = (pointer_expression "*(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38)" * (cast_expression "(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_30 + 0x5c) + 0x10 + local_38)" ( (binary_expression "*(int *)(local_30 + 0x5c) + 0x10 + local_38" (binary_expression "*(int *)(local_30 + 0x5c) + 0x10" (pointer_expression "*(int *)(local_30 + 0x5c)" * (cast_expression "(int *)(local_30 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x5c)" ( (binary_expression "local_30 + 0x5c" identifier + number_literal) )))) + number_literal) + identifier) ))))) ;) (if_statement "if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }" { (if_statement "if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }" if (parenthesized_expression "(*(int *)(iVar8 + 8) != 0)" ( (binary_expression "*(int *)(iVar8 + 8) != 0" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }" { (expression_statement "iVar9 = iVar8 + 0xc;" (assignment_expression "iVar9 = iVar8 + 0xc" identifier = (binary_expression "iVar8 + 0xc" identifier + number_literal)) ;) (do_statement "do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);" do (compound_statement "{\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      }" { (expression_statement "iVar9 = iVar9 + 4;" (assignment_expression "iVar9 = iVar9 + 4" identifier = (binary_expression "iVar9 + 4" identifier + number_literal)) ;) (expression_statement "FUN_000297b0();" (call_expression "FUN_000297b0()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(iVar8 + 0x200 != iVar9)" ( (binary_expression "iVar8 + 0x200 != iVar9" (binary_expression "iVar8 + 0x200" identifier + number_literal) != identifier) )) ;) })) (expression_statement "sqlite3_free(iVar8);" (call_expression "sqlite3_free(iVar8)" identifier (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "iVar9 = *(int *)(local_30 + 0x60);" (assignment_expression "iVar9 = *(int *)(local_30 + 0x60)" identifier = (pointer_expression "*(int *)(local_30 + 0x60)" * (cast_expression "(int *)(local_30 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x60)" ( (binary_expression "local_30 + 0x60" identifier + number_literal) ))))) ;) })) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) (expression_statement "local_38 = local_38 + 0x2c;" (assignment_expression "local_38 = local_38 + 0x2c" identifier = (binary_expression "local_38 + 0x2c" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_3c < iVar9)" ( (binary_expression "local_3c < iVar9" identifier < identifier) )) ;) (expression_statement "*(int *)(local_30 + 0x60) = iVar6;" (assignment_expression "*(int *)(local_30 + 0x60) = iVar6" (pointer_expression "*(int *)(local_30 + 0x60)" * (cast_expression "(int *)(local_30 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x60)" ( (binary_expression "local_30 + 0x60" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar6 != 0) goto LAB_0008260b;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0008260b;" goto statement_identifier ;)) (expression_statement "puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);" (assignment_expression "puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44)" identifier = (cast_expression "(undefined *)**(undefined4 **)(local_30 + 0x44)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(local_30 + 0x44)" * (pointer_expression "*(undefined4 **)(local_30 + 0x44)" * (cast_expression "(undefined4 **)(local_30 + 0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_30 + 0x44)" ( (binary_expression "local_30 + 0x44" identifier + number_literal) ))))))) ;) (if_statement "if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }" if (parenthesized_expression "(puVar5 != (undefined *)0x0)" ( (binary_expression "puVar5 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }" { (if_statement "if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }" if (parenthesized_expression "(puVar5 == &DAT_001058c0)" ( (binary_expression "puVar5 == &DAT_001058c0" identifier == (pointer_expression "&DAT_001058c0" & identifier)) )) (compound_statement "{\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }" { (expression_statement "iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);" (assignment_expression "iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0)" identifier = (call_expression "FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0)" identifier (argument_list "(*(undefined4 **)(local_30 + 0x44),0,0)" ( (pointer_expression "*(undefined4 **)(local_30 + 0x44)" * (cast_expression "(undefined4 **)(local_30 + 0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_30 + 0x44)" ( (binary_expression "local_30 + 0x44" identifier + number_literal) )))) , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(local_30 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(local_30 + 0x34) = 0" (pointer_expression "*(undefined4 *)(local_30 + 0x34)" * (cast_expression "(undefined4 *)(local_30 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x34)" ( (binary_expression "local_30 + 0x34" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (iVar8 != 0) goto LAB_00082643;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00082643;" goto statement_identifier ;)) }) (else_clause "else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }" else (compound_statement "{\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }" { (expression_statement "*(undefined4 *)(local_30 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(local_30 + 0x34) = 0" (pointer_expression "*(undefined4 *)(local_30 + 0x34)" * (cast_expression "(undefined4 *)(local_30 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x34)" ( (binary_expression "local_30 + 0x34" identifier + number_literal) )))) = number_literal) ;) }))) })) (labeled_statement "LAB_00082617:\n                iVar8 = 0;" statement_identifier : (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;)) (if_statement "if (piVar4[0xc] == 0) goto LAB_00082805;" if (parenthesized_expression "(piVar4[0xc] == 0)" ( (binary_expression "piVar4[0xc] == 0" (subscript_expression "piVar4[0xc]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00082805;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }" else (compound_statement "{\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }" { (labeled_statement "LAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;" statement_identifier : (if_statement "if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;" if (parenthesized_expression "((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0))" ( (binary_expression "(-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)" (parenthesized_expression "(-1 < iVar6)" ( (binary_expression "-1 < iVar6" number_literal < identifier) )) || (parenthesized_expression "((*(byte *)(piVar4 + 6) & 0x10) == 0)" ( (binary_expression "(*(byte *)(piVar4 + 6) & 0x10) == 0" (parenthesized_expression "(*(byte *)(piVar4 + 6) & 0x10)" ( (binary_expression "*(byte *)(piVar4 + 6) & 0x10" (pointer_expression "*(byte *)(piVar4 + 6)" * (cast_expression "(byte *)(piVar4 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 6)" ( (binary_expression "piVar4 + 6" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00082617;" goto statement_identifier ;))) (expression_statement "piVar4[0xc] = 0;" (assignment_expression "piVar4[0xc] = 0" (subscript_expression "piVar4[0xc]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00082805:\n                iVar8 = FUN_000761e0();" statement_identifier : (expression_statement "iVar8 = FUN_000761e0();" (assignment_expression "iVar8 = FUN_000761e0()" identifier = (call_expression "FUN_000761e0()" identifier (argument_list "()" ( )))) ;)) }))) (expression_statement "uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);" (assignment_expression "uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c)" identifier = (pointer_expression "*(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c)" * (cast_expression "(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(piVar4[3] + 0x38) + 0x1c)" ( (binary_expression "*(int *)(piVar4[3] + 0x38) + 0x1c" (pointer_expression "*(int *)(piVar4[3] + 0x38)" * (cast_expression "(int *)(piVar4[3] + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[3] + 0x38)" ( (binary_expression "piVar4[3] + 0x38" (subscript_expression "piVar4[3]" identifier [ number_literal ]) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;" (assignment_expression "uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18" identifier = (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" ( (binary_expression "uVar7 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" ( (binary_expression "uVar7 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar7 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }" { (expression_statement "uVar7 = *(uint *)(*piVar4 + 0x18);" (assignment_expression "uVar7 = *(uint *)(*piVar4 + 0x18)" identifier = (pointer_expression "*(uint *)(*piVar4 + 0x18)" * (cast_expression "(uint *)(*piVar4 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + 0x18)" ( (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) })) (expression_statement "piVar4[0xc] = uVar7;" (assignment_expression "piVar4[0xc] = uVar7" (subscript_expression "piVar4[0xc]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;" statement_identifier : (if_statement "if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;" if (parenthesized_expression "(*(char *)(iVar3 + 9) == '\0')" ( (binary_expression "*(char *)(iVar3 + 9) == '\0'" (pointer_expression "*(char *)(iVar3 + 9)" * (cast_expression "(char *)(iVar3 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 9)" ( (binary_expression "iVar3 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0008265a;" goto statement_identifier ;))) (expression_statement "iVar9 = *(int *)(iVar3 + 0xc);" (assignment_expression "iVar9 = *(int *)(iVar3 + 0xc)" identifier = (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }" else (compound_statement "{\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }" { (expression_statement "iVar9 = *(int *)(iVar3 + 0xc) + 1;" (assignment_expression "iVar9 = *(int *)(iVar3 + 0xc) + 1" identifier = (binary_expression "*(int *)(iVar3 + 0xc) + 1" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(iVar3 + 0xc) = iVar9;" (assignment_expression "*(int *)(iVar3 + 0xc) = iVar9" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }" if (parenthesized_expression "(*(char *)(iVar3 + 10) == '\0')" ( (binary_expression "*(char *)(iVar3 + 10) == '\0'" (pointer_expression "*(char *)(iVar3 + 10)" * (cast_expression "(char *)(iVar3 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 10)" ( (binary_expression "iVar3 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }" { (expression_statement "FUN_00024a50();" (call_expression "FUN_00024a50()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = *piVar4;" (assignment_expression "local_30 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "iVar8 = *(int *)(local_30 + 0x28);" (assignment_expression "iVar8 = *(int *)(local_30 + 0x28)" identifier = (pointer_expression "*(int *)(local_30 + 0x28)" * (cast_expression "(int *)(local_30 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x28)" ( (binary_expression "local_30 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_000825fe;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000825fe;" goto statement_identifier ;)) (goto_statement "goto LAB_00082643;" goto statement_identifier ;) })) (expression_statement "local_30 = *piVar4;" (assignment_expression "local_30 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "iVar8 = *(int *)(local_30 + 0x28);" (assignment_expression "iVar8 = *(int *)(local_30 + 0x28)" identifier = (pointer_expression "*(int *)(local_30 + 0x28)" * (cast_expression "(int *)(local_30 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x28)" ( (binary_expression "local_30 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_000825fe;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000825fe;" goto statement_identifier ;)) }))) (expression_statement "*(int *)(iVar3 + 0xc) = iVar9 + -1;" (assignment_expression "*(int *)(iVar3 + 0xc) = iVar9 + -1" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (if_statement "if (iVar9 + -1 != 0) goto LAB_0008265a;" if (parenthesized_expression "(iVar9 + -1 != 0)" ( (binary_expression "iVar9 + -1 != 0" (binary_expression "iVar9 + -1" identifier + number_literal) != number_literal) )) (goto_statement "goto LAB_0008265a;" goto statement_identifier ;)) (expression_statement "FUN_00024a20();" (call_expression "FUN_00024a20()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar9 = *(int *)(iVar2 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar2 + 0x14)" identifier = (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }" else (compound_statement "{\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = *(int *)(iVar2 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar2 + 0x14)" identifier = (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) ))))) ;) })))) }))) (labeled_statement "LAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }" statement_identifier : (if_statement "if (local_50 != 0) {\n          iVar8 = local_50;\n        }" if (parenthesized_expression "(local_50 != 0)" ( (binary_expression "local_50 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar8 = local_50;\n        }" { (expression_statement "iVar8 = local_50;" (assignment_expression "iVar8 = local_50" identifier = identifier) ;) }))) })) (expression_statement "local_50 = iVar8;" (assignment_expression "local_50 = iVar8" identifier = identifier) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar10 < iVar9)" ( (binary_expression "iVar10 < iVar9" identifier < identifier) )) ;) (expression_statement "*(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;" (assignment_expression "*(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1" (pointer_expression "*(int *)(iVar2 + 0x1d8)" * (cast_expression "(int *)(iVar2 + 0x1d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1d8)" ( (binary_expression "iVar2 + 0x1d8" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar2 + 0x1d8) + -1" (pointer_expression "*(int *)(iVar2 + 0x1d8)" * (cast_expression "(int *)(iVar2 + 0x1d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1d8)" ( (binary_expression "iVar2 + 0x1d8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_50 == 0) goto LAB_000826b7;" if (parenthesized_expression "(local_50 == 0)" ( (binary_expression "local_50 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000826b7;" goto statement_identifier ;)) }))) (if_statement "if (param_2 != 2) {\n    return local_50;\n  }" if (parenthesized_expression "(param_2 != 2)" ( (binary_expression "param_2 != 2" identifier != number_literal) )) (compound_statement "{\n    return local_50;\n  }" { (return_statement "return local_50;" return identifier ;) })) (labeled_statement "LAB_000826f1:\n  iVar9 = param_1[0x12];" statement_identifier : (expression_statement "iVar9 = param_1[0x12];" (assignment_expression "iVar9 = param_1[0x12]" identifier = (subscript_expression "param_1[0x12]" identifier [ number_literal ])) ;)) (expression_statement "*(int *)(iVar2 + 0x1dc) = param_1[0x11];" (assignment_expression "*(int *)(iVar2 + 0x1dc) = param_1[0x11]" (pointer_expression "*(int *)(iVar2 + 0x1dc)" * (cast_expression "(int *)(iVar2 + 0x1dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1dc)" ( (binary_expression "iVar2 + 0x1dc" identifier + number_literal) )))) = (subscript_expression "param_1[0x11]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar2 + 0x1e0) = iVar9;" (assignment_expression "*(int *)(iVar2 + 0x1e0) = iVar9" (pointer_expression "*(int *)(iVar2 + 0x1e0)" * (cast_expression "(int *)(iVar2 + 0x1e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1e0)" ( (binary_expression "iVar2 + 0x1e0" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar9 = param_1[0x14];" (assignment_expression "iVar9 = param_1[0x14]" identifier = (subscript_expression "param_1[0x14]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar2 + 0x1e4) = param_1[0x13];" (assignment_expression "*(int *)(iVar2 + 0x1e4) = param_1[0x13]" (pointer_expression "*(int *)(iVar2 + 0x1e4)" * (cast_expression "(int *)(iVar2 + 0x1e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1e4)" ( (binary_expression "iVar2 + 0x1e4" identifier + number_literal) )))) = (subscript_expression "param_1[0x13]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar2 + 0x1e8) = iVar9;" (assignment_expression "*(int *)(iVar2 + 0x1e8) = iVar9" (pointer_expression "*(int *)(iVar2 + 0x1e8)" * (cast_expression "(int *)(iVar2 + 0x1e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1e8)" ( (binary_expression "iVar2 + 0x1e8" identifier + number_literal) )))) = identifier) ;) (return_statement "return local_50;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (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) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (return_statement return LIT ;) }))))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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) ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (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) )))) + LIT) + 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) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (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 IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) || (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) ))) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) }))) (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_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 (pointer_expression * IDENT) + LIT) ))))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (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) ;) (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 IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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) )))) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })))) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (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)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 { (return_statement return IDENT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ 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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return IDENT ;) })))
(function_definition "int __regparm3 FUN_00082510(int *param_1,int param_2)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int local_50;\n  int local_3c;\n  int local_38;\n  int local_30;\n  \n  iVar2 = *param_1;\n  iVar9 = *(int *)(iVar2 + 0x14);\n  iVar6 = param_1[0xc] + -1;\n  if (iVar9 < 1) {\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\nLAB_000826b7:\n    if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }\n    local_50 = FUN_000430f0();\n  }\n  else {\n    iVar10 = 0;\n    local_50 = 0;\n    do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }\n  if (param_2 != 2) {\n    return local_50;\n  }\nLAB_000826f1:\n  iVar9 = param_1[0x12];\n  *(int *)(iVar2 + 0x1dc) = param_1[0x11];\n  *(int *)(iVar2 + 0x1e0) = iVar9;\n  iVar9 = param_1[0x14];\n  *(int *)(iVar2 + 0x1e4) = param_1[0x13];\n  *(int *)(iVar2 + 0x1e8) = iVar9;\n  return local_50;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00082510(int *param_1,int param_2)" (identifier "FUN_00082510") (parameter_list "(int *param_1,int param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  undefined *puVar5;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int local_50;\n  int local_3c;\n  int local_38;\n  int local_30;\n  \n  iVar2 = *param_1;\n  iVar9 = *(int *)(iVar2 + 0x14);\n  iVar6 = param_1[0xc] + -1;\n  if (iVar9 < 1) {\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\nLAB_000826b7:\n    if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }\n    local_50 = FUN_000430f0();\n  }\n  else {\n    iVar10 = 0;\n    local_50 = 0;\n    do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }\n  if (param_2 != 2) {\n    return local_50;\n  }\nLAB_000826f1:\n  iVar9 = param_1[0x12];\n  *(int *)(iVar2 + 0x1dc) = param_1[0x11];\n  *(int *)(iVar2 + 0x1e0) = iVar9;\n  iVar9 = param_1[0x14];\n  *(int *)(iVar2 + 0x1e4) = param_1[0x13];\n  *(int *)(iVar2 + 0x1e8) = iVar9;\n  return local_50;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (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 local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (expression_statement "iVar2 = *param_1;" (assignment_expression "iVar2 = *param_1" (identifier "iVar2") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "iVar9 = *(int *)(iVar2 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar2 + 0x14)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar6 = param_1[0xc] + -1;" (assignment_expression "iVar6 = param_1[0xc] + -1" (identifier "iVar6") (= "=") (binary_expression "param_1[0xc] + -1" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar9 < 1) {\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\nLAB_000826b7:\n    if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }\n    local_50 = FUN_000430f0();\n  }\n  else {\n    iVar10 = 0;\n    local_50 = 0;\n    do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }" (if "if") (parenthesized_expression "(iVar9 < 1)" (( "(") (binary_expression "iVar9 < 1" (identifier "iVar9") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\nLAB_000826b7:\n    if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }\n    local_50 = FUN_000430f0();\n  }" ({ "{") (expression_statement "*(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;" (assignment_expression "*(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1" (pointer_expression "*(int *)(iVar2 + 0x1d8)" (* "*") (cast_expression "(int *)(iVar2 + 0x1d8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1d8)" (( "(") (binary_expression "iVar2 + 0x1d8" (identifier "iVar2") (+ "+") (number_literal "0x1d8")) () ")")))) (= "=") (binary_expression "*(int *)(iVar2 + 0x1d8) + -1" (pointer_expression "*(int *)(iVar2 + 0x1d8)" (* "*") (cast_expression "(int *)(iVar2 + 0x1d8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1d8)" (( "(") (binary_expression "iVar2 + 0x1d8" (identifier "iVar2") (+ "+") (number_literal "0x1d8")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000826b7:\n    if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }" (statement_identifier "LAB_000826b7") (: ":") (if_statement "if (param_2 == 2) {\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }\n    else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_2 == 2)" (( "(") (binary_expression "param_2 == 2" (identifier "param_2") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }\n      local_50 = FUN_000430f0();\n      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;\n    }" ({ "{") (if_statement "if (*(int *)(iVar2 + 0x174) == 0) {\n        local_50 = 0;\n        goto LAB_000826f1;\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x174) == 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x174) == 0" (pointer_expression "*(int *)(iVar2 + 0x174)" (* "*") (cast_expression "(int *)(iVar2 + 0x174)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x174)" (( "(") (binary_expression "iVar2 + 0x174" (identifier "iVar2") (+ "+") (number_literal "0x174")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_50 = 0;\n        goto LAB_000826f1;\n      }" ({ "{") (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000826f1;" (goto "goto") (statement_identifier "LAB_000826f1") (; ";")) (} "}"))) (expression_statement "local_50 = FUN_000430f0();" (assignment_expression "local_50 = FUN_000430f0()" (identifier "local_50") (= "=") (call_expression "FUN_000430f0()" (identifier "FUN_000430f0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;" (if "if") (parenthesized_expression "((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0))" (( "(") (binary_expression "(local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)" (parenthesized_expression "(local_50 != 0)" (( "(") (binary_expression "local_50 != 0" (identifier "local_50") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar2 + 0x174) == 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x174) == 0" (pointer_expression "*(int *)(iVar2 + 0x174)" (* "*") (cast_expression "(int *)(iVar2 + 0x174)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x174)" (( "(") (binary_expression "iVar2 + 0x174" (identifier "iVar2") (+ "+") (number_literal "0x174")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_000826f1;" (goto "goto") (statement_identifier "LAB_000826f1") (; ";"))) (} "}")) (else_clause "else if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }" (else "else") (if_statement "if (*(int *)(iVar2 + 0x174) == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x174) == 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x174) == 0" (pointer_expression "*(int *)(iVar2 + 0x174)" (* "*") (cast_expression "(int *)(iVar2 + 0x174)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x174)" (( "(") (binary_expression "iVar2 + 0x174" (identifier "iVar2") (+ "+") (number_literal "0x174")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))))) (expression_statement "local_50 = FUN_000430f0();" (assignment_expression "local_50 = FUN_000430f0()" (identifier "local_50") (= "=") (call_expression "FUN_000430f0()" (identifier "FUN_000430f0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    iVar10 = 0;\n    local_50 = 0;\n    do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }" (else "else") (compound_statement "{\n    iVar10 = 0;\n    local_50 = 0;\n    do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);\n    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;\n    param_1[0xc] = 0;\n    if (local_50 == 0) goto LAB_000826b7;\n  }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    } while (iVar10 < iVar9);" (do "do") (compound_statement "{\n      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);\n      iVar8 = local_50;\n      if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }\n      local_50 = iVar8;\n      iVar10 = iVar10 + 1;\n    }" ({ "{") (expression_statement "iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);" (assignment_expression "iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4)" (* "*") (cast_expression "(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4)" (( "(") (binary_expression "iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4" (binary_expression "iVar10 * 0x10 + *(int *)(iVar2 + 0x10)" (binary_expression "iVar10 * 0x10" (identifier "iVar10") (* "*") (number_literal "0x10")) (+ "+") (pointer_expression "*(int *)(iVar2 + 0x10)" (* "*") (cast_expression "(int *)(iVar2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar8 = local_50;" (assignment_expression "iVar8 = local_50" (identifier "iVar8") (= "=") (identifier "local_50")) (; ";")) (if_statement "if (iVar3 != 0) {\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        cVar1 = *(char *)(iVar3 + 8);\n        if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }\nLAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }\n      }" ({ "{") (expression_statement "cVar1 = *(char *)(iVar3 + 8);" (assignment_expression "cVar1 = *(char *)(iVar3 + 8)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(iVar3 + 8)" (* "*") (cast_expression "(char *)(iVar3 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (param_2 == 2) {\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }\n        else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }" (if "if") (parenthesized_expression "(param_2 == 2)" (( "(") (binary_expression "param_2 == 2" (identifier "param_2") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          iVar8 = 0;\n          if (cVar1 != '\x02') goto LAB_0008257d;\n          iVar8 = FUN_00082410();\n          if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }\nLAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);\n        }" ({ "{") (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (cVar1 != '\x02') goto LAB_0008257d;" (if "if") (parenthesized_expression "(cVar1 != '\x02')" (( "(") (binary_expression "cVar1 != '\x02'" (identifier "cVar1") (!= "!=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (goto_statement "goto LAB_0008257d;" (goto "goto") (statement_identifier "LAB_0008257d") (; ";"))) (expression_statement "iVar8 = FUN_00082410();" (assignment_expression "iVar8 = FUN_00082410()" (identifier "iVar8") (= "=") (call_expression "FUN_00082410()" (identifier "FUN_00082410") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            cVar1 = *(char *)(iVar3 + 8);\n            goto joined_r0x00082572;\n          }" ({ "{") (expression_statement "cVar1 = *(char *)(iVar3 + 8);" (assignment_expression "cVar1 = *(char *)(iVar3 + 8)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(iVar3 + 8)" (* "*") (cast_expression "(char *)(iVar3 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (goto_statement "goto joined_r0x00082572;" (goto "goto") (statement_identifier "joined_r0x00082572") (; ";")) (} "}"))) (labeled_statement "LAB_0008265a:\n          iVar9 = *(int *)(iVar2 + 0x14);" (statement_identifier "LAB_0008265a") (: ":") (expression_statement "iVar9 = *(int *)(iVar2 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar2 + 0x14)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }" (else "else") (compound_statement "{\njoined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n        }" ({ "{") (labeled_statement "joined_r0x00082572:\n          if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }" (statement_identifier "joined_r0x00082572") (: ":") (if_statement "if (cVar1 == '\x02') {\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }\n          else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }" (if "if") (parenthesized_expression "(cVar1 == '\x02')" (( "(") (binary_expression "cVar1 == '\x02'" (identifier "cVar1") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n            piVar4 = *(int **)(iVar3 + 4);\n            if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }\n            *(int *)(iVar3 + 0xc) = iVar9 + -1;\n            if (iVar9 + -1 != 0) goto LAB_0008265a;\n            FUN_00024a20();\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }" ({ "{") (expression_statement "piVar4 = *(int **)(iVar3 + 4);" (assignment_expression "piVar4 = *(int **)(iVar3 + 4)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(iVar3 + 4)" (* "*") (cast_expression "(int **)(iVar3 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(char *)(iVar3 + 9) == '\0') {\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }\n            else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }" (if "if") (parenthesized_expression "(*(char *)(iVar3 + 9) == '\0')" (( "(") (binary_expression "*(char *)(iVar3 + 9) == '\0'" (pointer_expression "*(char *)(iVar3 + 9)" (* "*") (cast_expression "(char *)(iVar3 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 9)" (( "(") (binary_expression "iVar3 + 9" (identifier "iVar3") (+ "+") (number_literal "9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 != 0) goto LAB_0008265a;\nLAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);\n              local_3c = iVar6;\n              local_38 = iVar6 * 0x2c;\n              if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }\n              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);\n              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;\n              if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }\n              piVar4[0xc] = uVar7;\nLAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;\n              iVar9 = *(int *)(iVar3 + 0xc);\n            }" ({ "{") (expression_statement "local_30 = *piVar4;" (assignment_expression "local_30 = *piVar4" (identifier "local_30") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "iVar8 = *(int *)(local_30 + 0x28);" (assignment_expression "iVar8 = *(int *)(local_30 + 0x28)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(local_30 + 0x28)" (* "*") (cast_expression "(int *)(local_30 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 0x28)" (( "(") (binary_expression "local_30 + 0x28" (identifier "local_30") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (iVar8 != 0) goto LAB_0008265a;" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0008265a;" (goto "goto") (statement_identifier "LAB_0008265a") (; ";"))) (labeled_statement "LAB_000825fe:\n              iVar9 = *(int *)(local_30 + 0x60);" (statement_identifier "LAB_000825fe") (: ":") (expression_statement "iVar9 = *(int *)(local_30 + 0x60);" (assignment_expression "iVar9 = *(int *)(local_30 + 0x60)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(local_30 + 0x60)" (* "*") (cast_expression "(int *)(local_30 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 0x60)" (( "(") (binary_expression "local_30 + 0x60" (identifier "local_30") (+ "+") (number_literal "0x60")) () ")"))))) (; ";"))) (expression_statement "local_3c = iVar6;" (assignment_expression "local_3c = iVar6" (identifier "local_3c") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "local_38 = iVar6 * 0x2c;" (assignment_expression "local_38 = iVar6 * 0x2c" (identifier "local_38") (= "=") (binary_expression "iVar6 * 0x2c" (identifier "iVar6") (* "*") (number_literal "0x2c"))) (; ";")) (if_statement "if (iVar6 < iVar9) {\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }\n              else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }" (if "if") (parenthesized_expression "(iVar6 < iVar9)" (( "(") (binary_expression "iVar6 < iVar9" (identifier "iVar6") (< "<") (identifier "iVar9")) () ")")) (compound_statement "{\n                do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);\n                *(int *)(local_30 + 0x60) = iVar6;\n                if (iVar6 != 0) goto LAB_0008260b;\n                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);\n                if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }\nLAB_00082617:\n                iVar8 = 0;\n                if (piVar4[0xc] == 0) goto LAB_00082805;\n              }" ({ "{") (do_statement "do {\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                } while (local_3c < iVar9);" (do "do") (compound_statement "{\n                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);\n                  if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }\n                  local_3c = local_3c + 1;\n                  local_38 = local_38 + 0x2c;\n                }" ({ "{") (expression_statement "iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);" (assignment_expression "iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38)" (* "*") (cast_expression "(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_30 + 0x5c) + 0x10 + local_38)" (( "(") (binary_expression "*(int *)(local_30 + 0x5c) + 0x10 + local_38" (binary_expression "*(int *)(local_30 + 0x5c) + 0x10" (pointer_expression "*(int *)(local_30 + 0x5c)" (* "*") (cast_expression "(int *)(local_30 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 0x5c)" (( "(") (binary_expression "local_30 + 0x5c" (identifier "local_30") (+ "+") (number_literal "0x5c")) () ")")))) (+ "+") (number_literal "0x10")) (+ "+") (identifier "local_38")) () ")"))))) (; ";")) (if_statement "if (iVar8 != 0) {\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }\n                    sqlite3_free(iVar8);\n                    iVar9 = *(int *)(local_30 + 0x60);\n                  }" ({ "{") (if_statement "if (*(int *)(iVar8 + 8) != 0) {\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 8) != 0)" (( "(") (binary_expression "*(int *)(iVar8 + 8) != 0" (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      iVar9 = iVar8 + 0xc;\n                      do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);\n                    }" ({ "{") (expression_statement "iVar9 = iVar8 + 0xc;" (assignment_expression "iVar9 = iVar8 + 0xc" (identifier "iVar9") (= "=") (binary_expression "iVar8 + 0xc" (identifier "iVar8") (+ "+") (number_literal "0xc"))) (; ";")) (do_statement "do {\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      } while (iVar8 + 0x200 != iVar9);" (do "do") (compound_statement "{\n                        iVar9 = iVar9 + 4;\n                        FUN_000297b0();\n                      }" ({ "{") (expression_statement "iVar9 = iVar9 + 4;" (assignment_expression "iVar9 = iVar9 + 4" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "FUN_000297b0();" (call_expression "FUN_000297b0()" (identifier "FUN_000297b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar8 + 0x200 != iVar9)" (( "(") (binary_expression "iVar8 + 0x200 != iVar9" (binary_expression "iVar8 + 0x200" (identifier "iVar8") (+ "+") (number_literal "0x200")) (!= "!=") (identifier "iVar9")) () ")")) (; ";")) (} "}"))) (expression_statement "sqlite3_free(iVar8);" (call_expression "sqlite3_free(iVar8)" (identifier "sqlite3_free") (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)(local_30 + 0x60);" (assignment_expression "iVar9 = *(int *)(local_30 + 0x60)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(local_30 + 0x60)" (* "*") (cast_expression "(int *)(local_30 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 0x60)" (( "(") (binary_expression "local_30 + 0x60" (identifier "local_30") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (} "}"))) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" (identifier "local_3c") (= "=") (binary_expression "local_3c + 1" (identifier "local_3c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_38 = local_38 + 0x2c;" (assignment_expression "local_38 = local_38 + 0x2c" (identifier "local_38") (= "=") (binary_expression "local_38 + 0x2c" (identifier "local_38") (+ "+") (number_literal "0x2c"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_3c < iVar9)" (( "(") (binary_expression "local_3c < iVar9" (identifier "local_3c") (< "<") (identifier "iVar9")) () ")")) (; ";")) (expression_statement "*(int *)(local_30 + 0x60) = iVar6;" (assignment_expression "*(int *)(local_30 + 0x60) = iVar6" (pointer_expression "*(int *)(local_30 + 0x60)" (* "*") (cast_expression "(int *)(local_30 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 0x60)" (( "(") (binary_expression "local_30 + 0x60" (identifier "local_30") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (if_statement "if (iVar6 != 0) goto LAB_0008260b;" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0008260b;" (goto "goto") (statement_identifier "LAB_0008260b") (; ";"))) (expression_statement "puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);" (assignment_expression "puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44)" (identifier "puVar5") (= "=") (cast_expression "(undefined *)**(undefined4 **)(local_30 + 0x44)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(local_30 + 0x44)" (* "*") (pointer_expression "*(undefined4 **)(local_30 + 0x44)" (* "*") (cast_expression "(undefined4 **)(local_30 + 0x44)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_30 + 0x44)" (( "(") (binary_expression "local_30 + 0x44" (identifier "local_30") (+ "+") (number_literal "0x44")) () ")"))))))) (; ";")) (if_statement "if (puVar5 != (undefined *)0x0) {\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }" (if "if") (parenthesized_expression "(puVar5 != (undefined *)0x0)" (( "(") (binary_expression "puVar5 != (undefined *)0x0" (identifier "puVar5") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }\n                }" ({ "{") (if_statement "if (puVar5 == &DAT_001058c0) {\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }\n                  else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }" (if "if") (parenthesized_expression "(puVar5 == &DAT_001058c0)" (( "(") (binary_expression "puVar5 == &DAT_001058c0" (identifier "puVar5") (== "==") (pointer_expression "&DAT_001058c0" (& "&") (identifier "DAT_001058c0"))) () ")")) (compound_statement "{\n                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                    if (iVar8 != 0) goto LAB_00082643;\n                  }" ({ "{") (expression_statement "iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);" (assignment_expression "iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0)" (identifier "iVar8") (= "=") (call_expression "FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0)" (identifier "FUN_000250b0") (argument_list "(*(undefined4 **)(local_30 + 0x44),0,0)" (( "(") (pointer_expression "*(undefined4 **)(local_30 + 0x44)" (* "*") (cast_expression "(undefined4 **)(local_30 + 0x44)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_30 + 0x44)" (( "(") (binary_expression "local_30 + 0x44" (identifier "local_30") (+ "+") (number_literal "0x44")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(local_30 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(local_30 + 0x34) = 0" (pointer_expression "*(undefined4 *)(local_30 + 0x34)" (* "*") (cast_expression "(undefined4 *)(local_30 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 0x34)" (( "(") (binary_expression "local_30 + 0x34" (identifier "local_30") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar8 != 0) goto LAB_00082643;" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00082643;" (goto "goto") (statement_identifier "LAB_00082643") (; ";"))) (} "}")) (else_clause "else {\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }" (else "else") (compound_statement "{\n                    *(undefined4 *)(local_30 + 0x34) = 0;\n                  }" ({ "{") (expression_statement "*(undefined4 *)(local_30 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(local_30 + 0x34) = 0" (pointer_expression "*(undefined4 *)(local_30 + 0x34)" (* "*") (cast_expression "(undefined4 *)(local_30 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 0x34)" (( "(") (binary_expression "local_30 + 0x34" (identifier "local_30") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_00082617:\n                iVar8 = 0;" (statement_identifier "LAB_00082617") (: ":") (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (piVar4[0xc] == 0) goto LAB_00082805;" (if "if") (parenthesized_expression "(piVar4[0xc] == 0)" (( "(") (binary_expression "piVar4[0xc] == 0" (subscript_expression "piVar4[0xc]" (identifier "piVar4") ([ "[") (number_literal "0xc") (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00082805;" (goto "goto") (statement_identifier "LAB_00082805") (; ";"))) (} "}")) (else_clause "else {\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }" (else "else") (compound_statement "{\nLAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;\n                piVar4[0xc] = 0;\nLAB_00082805:\n                iVar8 = FUN_000761e0();\n              }" ({ "{") (labeled_statement "LAB_0008260b:\n                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;" (statement_identifier "LAB_0008260b") (: ":") (if_statement "if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;" (if "if") (parenthesized_expression "((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0))" (( "(") (binary_expression "(-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)" (parenthesized_expression "(-1 < iVar6)" (( "(") (binary_expression "-1 < iVar6" (number_literal "-1") (< "<") (identifier "iVar6")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(piVar4 + 6) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)(piVar4 + 6) & 0x10) == 0" (parenthesized_expression "(*(byte *)(piVar4 + 6) & 0x10)" (( "(") (binary_expression "*(byte *)(piVar4 + 6) & 0x10" (pointer_expression "*(byte *)(piVar4 + 6)" (* "*") (cast_expression "(byte *)(piVar4 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4 + 6)" (( "(") (binary_expression "piVar4 + 6" (identifier "piVar4") (+ "+") (number_literal "6")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00082617;" (goto "goto") (statement_identifier "LAB_00082617") (; ";")))) (expression_statement "piVar4[0xc] = 0;" (assignment_expression "piVar4[0xc] = 0" (subscript_expression "piVar4[0xc]" (identifier "piVar4") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00082805:\n                iVar8 = FUN_000761e0();" (statement_identifier "LAB_00082805") (: ":") (expression_statement "iVar8 = FUN_000761e0();" (assignment_expression "iVar8 = FUN_000761e0()" (identifier "iVar8") (= "=") (call_expression "FUN_000761e0()" (identifier "FUN_000761e0") (argument_list "()" (( "(") () ")")))) (; ";"))) (} "}")))) (expression_statement "uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);" (assignment_expression "uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c)" (* "*") (cast_expression "(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(piVar4[3] + 0x38) + 0x1c)" (( "(") (binary_expression "*(int *)(piVar4[3] + 0x38) + 0x1c" (pointer_expression "*(int *)(piVar4[3] + 0x38)" (* "*") (cast_expression "(int *)(piVar4[3] + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4[3] + 0x38)" (( "(") (binary_expression "piVar4[3] + 0x38" (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18;" (assignment_expression "uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18" (identifier "uVar7") (= "=") (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                      uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" (identifier "uVar7") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" (( "(") (binary_expression "uVar7 & 0xff0000" (identifier "uVar7") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" (( "(") (binary_expression "uVar7 & 0xff00" (identifier "uVar7") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar7 << 0x18" (identifier "uVar7") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (uVar7 == 0) {\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }" (if "if") (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                uVar7 = *(uint *)(*piVar4 + 0x18);\n              }" ({ "{") (expression_statement "uVar7 = *(uint *)(*piVar4 + 0x18);" (assignment_expression "uVar7 = *(uint *)(*piVar4 + 0x18)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(*piVar4 + 0x18)" (* "*") (cast_expression "(uint *)(*piVar4 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar4 + 0x18)" (( "(") (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}"))) (expression_statement "piVar4[0xc] = uVar7;" (assignment_expression "piVar4[0xc] = uVar7" (subscript_expression "piVar4[0xc]" (identifier "piVar4") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (labeled_statement "LAB_00082643:\n              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;" (statement_identifier "LAB_00082643") (: ":") (if_statement "if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;" (if "if") (parenthesized_expression "(*(char *)(iVar3 + 9) == '\0')" (( "(") (binary_expression "*(char *)(iVar3 + 9) == '\0'" (pointer_expression "*(char *)(iVar3 + 9)" (* "*") (cast_expression "(char *)(iVar3 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 9)" (( "(") (binary_expression "iVar3 + 9" (identifier "iVar3") (+ "+") (number_literal "9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0008265a;" (goto "goto") (statement_identifier "LAB_0008265a") (; ";")))) (expression_statement "iVar9 = *(int *)(iVar3 + 0xc);" (assignment_expression "iVar9 = *(int *)(iVar3 + 0xc)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar3 + 0xc)" (* "*") (cast_expression "(int *)(iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }" (else "else") (compound_statement "{\n              iVar9 = *(int *)(iVar3 + 0xc) + 1;\n              *(int *)(iVar3 + 0xc) = iVar9;\n              if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }\n              local_30 = *piVar4;\n              iVar8 = *(int *)(local_30 + 0x28);\n              if (iVar8 == 0) goto LAB_000825fe;\n            }" ({ "{") (expression_statement "iVar9 = *(int *)(iVar3 + 0xc) + 1;" (assignment_expression "iVar9 = *(int *)(iVar3 + 0xc) + 1" (identifier "iVar9") (= "=") (binary_expression "*(int *)(iVar3 + 0xc) + 1" (pointer_expression "*(int *)(iVar3 + 0xc)" (* "*") (cast_expression "(int *)(iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(iVar3 + 0xc) = iVar9;" (assignment_expression "*(int *)(iVar3 + 0xc) = iVar9" (pointer_expression "*(int *)(iVar3 + 0xc)" (* "*") (cast_expression "(int *)(iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (if_statement "if (*(char *)(iVar3 + 10) == '\0') {\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }" (if "if") (parenthesized_expression "(*(char *)(iVar3 + 10) == '\0')" (( "(") (binary_expression "*(char *)(iVar3 + 10) == '\0'" (pointer_expression "*(char *)(iVar3 + 10)" (* "*") (cast_expression "(char *)(iVar3 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 10)" (( "(") (binary_expression "iVar3 + 10" (identifier "iVar3") (+ "+") (number_literal "10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                FUN_00024a50();\n                local_30 = *piVar4;\n                iVar8 = *(int *)(local_30 + 0x28);\n                if (iVar8 == 0) goto LAB_000825fe;\n                goto LAB_00082643;\n              }" ({ "{") (expression_statement "FUN_00024a50();" (call_expression "FUN_00024a50()" (identifier "FUN_00024a50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_30 = *piVar4;" (assignment_expression "local_30 = *piVar4" (identifier "local_30") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "iVar8 = *(int *)(local_30 + 0x28);" (assignment_expression "iVar8 = *(int *)(local_30 + 0x28)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(local_30 + 0x28)" (* "*") (cast_expression "(int *)(local_30 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 0x28)" (( "(") (binary_expression "local_30 + 0x28" (identifier "local_30") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) goto LAB_000825fe;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000825fe;" (goto "goto") (statement_identifier "LAB_000825fe") (; ";"))) (goto_statement "goto LAB_00082643;" (goto "goto") (statement_identifier "LAB_00082643") (; ";")) (} "}"))) (expression_statement "local_30 = *piVar4;" (assignment_expression "local_30 = *piVar4" (identifier "local_30") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "iVar8 = *(int *)(local_30 + 0x28);" (assignment_expression "iVar8 = *(int *)(local_30 + 0x28)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(local_30 + 0x28)" (* "*") (cast_expression "(int *)(local_30 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 0x28)" (( "(") (binary_expression "local_30 + 0x28" (identifier "local_30") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) goto LAB_000825fe;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000825fe;" (goto "goto") (statement_identifier "LAB_000825fe") (; ";"))) (} "}")))) (expression_statement "*(int *)(iVar3 + 0xc) = iVar9 + -1;" (assignment_expression "*(int *)(iVar3 + 0xc) = iVar9 + -1" (pointer_expression "*(int *)(iVar3 + 0xc)" (* "*") (cast_expression "(int *)(iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar9 + -1 != 0) goto LAB_0008265a;" (if "if") (parenthesized_expression "(iVar9 + -1 != 0)" (( "(") (binary_expression "iVar9 + -1 != 0" (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0008265a;" (goto "goto") (statement_identifier "LAB_0008265a") (; ";"))) (expression_statement "FUN_00024a20();" (call_expression "FUN_00024a20()" (identifier "FUN_00024a20") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)(iVar2 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar2 + 0x14)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }" (else "else") (compound_statement "{\n            iVar8 = 0;\n            iVar9 = *(int *)(iVar2 + 0x14);\n          }" ({ "{") (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = *(int *)(iVar2 + 0x14);" (assignment_expression "iVar9 = *(int *)(iVar2 + 0x14)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (} "}"))))) (} "}")))) (labeled_statement "LAB_0008257d:\n        if (local_50 != 0) {\n          iVar8 = local_50;\n        }" (statement_identifier "LAB_0008257d") (: ":") (if_statement "if (local_50 != 0) {\n          iVar8 = local_50;\n        }" (if "if") (parenthesized_expression "(local_50 != 0)" (( "(") (binary_expression "local_50 != 0" (identifier "local_50") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar8 = local_50;\n        }" ({ "{") (expression_statement "iVar8 = local_50;" (assignment_expression "iVar8 = local_50" (identifier "iVar8") (= "=") (identifier "local_50")) (; ";")) (} "}")))) (} "}"))) (expression_statement "local_50 = iVar8;" (assignment_expression "local_50 = iVar8" (identifier "local_50") (= "=") (identifier "iVar8")) (; ";")) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar10 < iVar9)" (( "(") (binary_expression "iVar10 < iVar9" (identifier "iVar10") (< "<") (identifier "iVar9")) () ")")) (; ";")) (expression_statement "*(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;" (assignment_expression "*(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1" (pointer_expression "*(int *)(iVar2 + 0x1d8)" (* "*") (cast_expression "(int *)(iVar2 + 0x1d8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1d8)" (( "(") (binary_expression "iVar2 + 0x1d8" (identifier "iVar2") (+ "+") (number_literal "0x1d8")) () ")")))) (= "=") (binary_expression "*(int *)(iVar2 + 0x1d8) + -1" (pointer_expression "*(int *)(iVar2 + 0x1d8)" (* "*") (cast_expression "(int *)(iVar2 + 0x1d8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1d8)" (( "(") (binary_expression "iVar2 + 0x1d8" (identifier "iVar2") (+ "+") (number_literal "0x1d8")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_50 == 0) goto LAB_000826b7;" (if "if") (parenthesized_expression "(local_50 == 0)" (( "(") (binary_expression "local_50 == 0" (identifier "local_50") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000826b7;" (goto "goto") (statement_identifier "LAB_000826b7") (; ";"))) (} "}")))) (if_statement "if (param_2 != 2) {\n    return local_50;\n  }" (if "if") (parenthesized_expression "(param_2 != 2)" (( "(") (binary_expression "param_2 != 2" (identifier "param_2") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n    return local_50;\n  }" ({ "{") (return_statement "return local_50;" (return "return") (identifier "local_50") (; ";")) (} "}"))) (labeled_statement "LAB_000826f1:\n  iVar9 = param_1[0x12];" (statement_identifier "LAB_000826f1") (: ":") (expression_statement "iVar9 = param_1[0x12];" (assignment_expression "iVar9 = param_1[0x12]" (identifier "iVar9") (= "=") (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]"))) (; ";"))) (expression_statement "*(int *)(iVar2 + 0x1dc) = param_1[0x11];" (assignment_expression "*(int *)(iVar2 + 0x1dc) = param_1[0x11]" (pointer_expression "*(int *)(iVar2 + 0x1dc)" (* "*") (cast_expression "(int *)(iVar2 + 0x1dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1dc)" (( "(") (binary_expression "iVar2 + 0x1dc" (identifier "iVar2") (+ "+") (number_literal "0x1dc")) () ")")))) (= "=") (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (expression_statement "*(int *)(iVar2 + 0x1e0) = iVar9;" (assignment_expression "*(int *)(iVar2 + 0x1e0) = iVar9" (pointer_expression "*(int *)(iVar2 + 0x1e0)" (* "*") (cast_expression "(int *)(iVar2 + 0x1e0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1e0)" (( "(") (binary_expression "iVar2 + 0x1e0" (identifier "iVar2") (+ "+") (number_literal "0x1e0")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "iVar9 = param_1[0x14];" (assignment_expression "iVar9 = param_1[0x14]" (identifier "iVar9") (= "=") (subscript_expression "param_1[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (expression_statement "*(int *)(iVar2 + 0x1e4) = param_1[0x13];" (assignment_expression "*(int *)(iVar2 + 0x1e4) = param_1[0x13]" (pointer_expression "*(int *)(iVar2 + 0x1e4)" (* "*") (cast_expression "(int *)(iVar2 + 0x1e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1e4)" (( "(") (binary_expression "iVar2 + 0x1e4" (identifier "iVar2") (+ "+") (number_literal "0x1e4")) () ")")))) (= "=") (subscript_expression "param_1[0x13]" (identifier "param_1") ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (expression_statement "*(int *)(iVar2 + 0x1e8) = iVar9;" (assignment_expression "*(int *)(iVar2 + 0x1e8) = iVar9" (pointer_expression "*(int *)(iVar2 + 0x1e8)" (* "*") (cast_expression "(int *)(iVar2 + 0x1e8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1e8)" (( "(") (binary_expression "iVar2 + 0x1e8" (identifier "iVar2") (+ "+") (number_literal "0x1e8")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (return_statement "return local_50;" (return "return") (identifier "local_50") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */

int __regparm3 function_1(type_1 *p,int var_2)

{
  type_2 var_6;
  type_3 *db;
  type_4 *var_5;
  type_5 *pBt;
  type_6 var_19;
  type_7 uVar3;
  void *var_11;
  type_8 *p_02;
  type_9 *var_16;
  int var_9;
  type_10 var_20;
  int var_1;
  int var_8;
  type_7 *var_12;
  int var_23;
  int var_4;
  int var_15;
  int var_10;
  type_11 *local_30;
  
  db = p->db;
  var_1 = db->nDb;
  var_9 = p->iStatement + -1;
  if (var_1 < 1) {
    db->nStatement = db->nStatement + -1;
    p->iStatement = 0;
LAB_000826b7:
    if (var_2 == 2) {
      if (db->aVTrans == (type_12 **)0x0) {
        var_4 = 0;
        goto LAB_000826f1;
      }
      var_4 = var_3(db,2,var_9);
      if ((var_4 != 0) || (db->aVTrans == (type_12 **)0x0)) goto LAB_000826f1;
    }
    else if (db->aVTrans == (type_12 **)0x0) {
      return 0;
    }
    var_4 = var_3(db,1,var_9);
  }
  else {
    var_23 = 0;
    var_4 = 0;
    do {
      var_5 = db->aDb[var_23].pBt;
      var_8 = var_4;
      if (var_5 != (type_4 *)0x0) {
        var_6 = var_5->inTrans;
        if (var_2 == 2) {
          var_8 = 0;
          if (var_6 != '\x02') goto LAB_0008257d;
          var_8 = var_7(var_5,2,var_9);
          if (var_8 == 0) {
            var_6 = var_5->inTrans;
            goto joined_r0x00082572;
          }
LAB_0008265a:
          var_1 = db->nDb;
        }
        else {
joined_r0x00082572:
          if (var_6 == '\x02') {
            pBt = var_5->pBt;
            if (var_5->sharable == '\0') {
              local_30 = pBt->pPager;
              var_8 = local_30->errCode;
              if (var_8 != 0) goto LAB_0008265a;
LAB_000825fe:
              var_1 = local_30->nSavepoint;
              var_15 = var_9;
              var_10 = var_9 * 0x2c;
              if (var_9 < var_1) {
                do {
                  var_11 = *(void **)((int)local_30->aSavepoint->aWalData + var_10 + -0xc);
                  if (var_11 != (void *)0x0) {
                    if (*(int *)((int)var_11 + 8) != 0) {
                      var_12 = (type_7 *)((int)var_11 + 0xc);
                      do {
                        p_02 = (type_8 *)*var_12;
                        var_12 = var_12 + 1;
                        var_13(p_02);
                      } while ((type_7 *)((int)var_11 + 0x200) != var_12);
                    }
                    var_14(var_11);
                    var_1 = local_30->nSavepoint;
                  }
                  var_15 = var_15 + 1;
                  var_10 = var_10 + 0x2c;
                } while (var_15 < var_1);
                local_30->nSavepoint = var_9;
                if (var_9 != 0) goto LAB_0008260b;
                var_16 = local_30->sjfd->pMethods;
                if (var_16 != (type_9 *)0x0) {
                  if (var_16 == &MemJournalMethods) {
                    var_8 = var_17(local_30->sjfd,0);
                    local_30->nSubRec = 0;
                    if (var_8 != 0) goto LAB_00082643;
                  }
                  else {
                    local_30->nSubRec = 0;
                  }
                }
LAB_00082617:
                var_8 = 0;
                if (pBt->nPage == 0) goto LAB_00082805;
              }
              else {
LAB_0008260b:
                if ((-1 < var_9) || ((pBt->btsFlags & 0x10) == 0)) goto LAB_00082617;
                pBt->nPage = 0;
LAB_00082805:
                var_8 = var_18(pBt);
              }
              var_19 = *(type_6 *)(pBt->pPage1->aData + 0x1c);
              var_20 = var_19 >> 0x18 | (var_19 & 0xff0000) >> 8 | (var_19 & 0xff00) << 8 |
                      var_19 << 0x18;
              if (var_20 == 0) {
                var_20 = pBt->pPager->dbSize;
              }
              pBt->nPage = var_20;
LAB_00082643:
              if (var_5->sharable == '\0') goto LAB_0008265a;
              var_1 = var_5->wantToLock;
            }
            else {
              var_1 = var_5->wantToLock + 1;
              var_5->wantToLock = var_1;
              if (var_5->locked == '\0') {
                var_21(var_5);
                local_30 = pBt->pPager;
                var_8 = local_30->errCode;
                if (var_8 == 0) goto LAB_000825fe;
                goto LAB_00082643;
              }
              local_30 = pBt->pPager;
              var_8 = local_30->errCode;
              if (var_8 == 0) goto LAB_000825fe;
            }
            var_5->wantToLock = var_1 + -1;
            if (var_1 + -1 != 0) goto LAB_0008265a;
            var_22((type_4 *)var_5->pBt,(type_4 *)&var_5->locked);
            var_1 = db->nDb;
          }
          else {
            var_8 = 0;
            var_1 = db->nDb;
          }
        }
LAB_0008257d:
        if (var_4 != 0) {
          var_8 = var_4;
        }
      }
      var_4 = var_8;
      var_23 = var_23 + 1;
    } while (var_23 < var_1);
    db->nStatement = db->nStatement + -1;
    p->iStatement = 0;
    if (var_4 == 0) goto LAB_000826b7;
  }
  if (var_2 != 2) {
    return var_4;
  }
LAB_000826f1:
  uVar3 = *(type_7 *)((int)&p->nStmtDefCons + 4);
  *(int *)&db->nDeferredCons = (int)p->nStmtDefCons;
  *(type_7 *)((int)&db->nDeferredCons + 4) = uVar3;
  uVar3 = *(type_7 *)((int)&p->nStmtDefImmCons + 4);
  *(int *)&db->nDeferredImmCons = (int)p->nStmtDefImmCons;
  *(type_7 *)((int)&db->nDeferredImmCons + 4) = uVar3;
  return var_4;
}


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

/* WARNING: Function: __i686.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */

int __regparm3 MASKED(int *param_1,int param_2)

{
  char cVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  undefined *puVar5;
  int iVar6;
  uint uVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int local_50;
  int local_3c;
  int local_38;
  int local_30;
  
  iVar2 = *param_1;
  iVar9 = *(int *)(iVar2 + 0x14);
  iVar6 = param_1[0xc] + -1;
  if (iVar9 < 1) {
    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;
    param_1[0xc] = 0;
LAB_000826b7:
    if (param_2 == 2) {
      if (*(int *)(iVar2 + 0x174) == 0) {
        local_50 = 0;
        goto LAB_000826f1;
      }
      local_50 = FUN_000430f0();
      if ((local_50 != 0) || (*(int *)(iVar2 + 0x174) == 0)) goto LAB_000826f1;
    }
    else if (*(int *)(iVar2 + 0x174) == 0) {
      return 0;
    }
    local_50 = FUN_000430f0();
  }
  else {
    iVar10 = 0;
    local_50 = 0;
    do {
      iVar3 = *(int *)(iVar10 * 0x10 + *(int *)(iVar2 + 0x10) + 4);
      iVar8 = local_50;
      if (iVar3 != 0) {
        cVar1 = *(char *)(iVar3 + 8);
        if (param_2 == 2) {
          iVar8 = 0;
          if (cVar1 != '\x02') goto LAB_0008257d;
          iVar8 = FUN_00082410();
          if (iVar8 == 0) {
            cVar1 = *(char *)(iVar3 + 8);
            goto joined_r0x00082572;
          }
LAB_0008265a:
          iVar9 = *(int *)(iVar2 + 0x14);
        }
        else {
joined_r0x00082572:
          if (cVar1 == '\x02') {
            piVar4 = *(int **)(iVar3 + 4);
            if (*(char *)(iVar3 + 9) == '\0') {
              local_30 = *piVar4;
              iVar8 = *(int *)(local_30 + 0x28);
              if (iVar8 != 0) goto LAB_0008265a;
LAB_000825fe:
              iVar9 = *(int *)(local_30 + 0x60);
              local_3c = iVar6;
              local_38 = iVar6 * 0x2c;
              if (iVar6 < iVar9) {
                do {
                  iVar8 = *(int *)(*(int *)(local_30 + 0x5c) + 0x10 + local_38);
                  if (iVar8 != 0) {
                    if (*(int *)(iVar8 + 8) != 0) {
                      iVar9 = iVar8 + 0xc;
                      do {
                        iVar9 = iVar9 + 4;
                        FUN_000297b0();
                      } while (iVar8 + 0x200 != iVar9);
                    }
                    sqlite3_free(iVar8);
                    iVar9 = *(int *)(local_30 + 0x60);
                  }
                  local_3c = local_3c + 1;
                  local_38 = local_38 + 0x2c;
                } while (local_3c < iVar9);
                *(int *)(local_30 + 0x60) = iVar6;
                if (iVar6 != 0) goto LAB_0008260b;
                puVar5 = (undefined *)**(undefined4 **)(local_30 + 0x44);
                if (puVar5 != (undefined *)0x0) {
                  if (puVar5 == &DAT_001058c0) {
                    iVar8 = FUN_000250b0(*(undefined4 **)(local_30 + 0x44),0,0);
                    *(undefined4 *)(local_30 + 0x34) = 0;
                    if (iVar8 != 0) goto LAB_00082643;
                  }
                  else {
                    *(undefined4 *)(local_30 + 0x34) = 0;
                  }
                }
LAB_00082617:
                iVar8 = 0;
                if (piVar4[0xc] == 0) goto LAB_00082805;
              }
              else {
LAB_0008260b:
                if ((-1 < iVar6) || ((*(byte *)(piVar4 + 6) & 0x10) == 0)) goto LAB_00082617;
                piVar4[0xc] = 0;
LAB_00082805:
                iVar8 = FUN_000761e0();
              }
              uVar7 = *(uint *)(*(int *)(piVar4[3] + 0x38) + 0x1c);
              uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |
                      uVar7 << 0x18;
              if (uVar7 == 0) {
                uVar7 = *(uint *)(*piVar4 + 0x18);
              }
              piVar4[0xc] = uVar7;
LAB_00082643:
              if (*(char *)(iVar3 + 9) == '\0') goto LAB_0008265a;
              iVar9 = *(int *)(iVar3 + 0xc);
            }
            else {
              iVar9 = *(int *)(iVar3 + 0xc) + 1;
              *(int *)(iVar3 + 0xc) = iVar9;
              if (*(char *)(iVar3 + 10) == '\0') {
                FUN_00024a50();
                local_30 = *piVar4;
                iVar8 = *(int *)(local_30 + 0x28);
                if (iVar8 == 0) goto LAB_000825fe;
                goto LAB_00082643;
              }
              local_30 = *piVar4;
              iVar8 = *(int *)(local_30 + 0x28);
              if (iVar8 == 0) goto LAB_000825fe;
            }
            *(int *)(iVar3 + 0xc) = iVar9 + -1;
            if (iVar9 + -1 != 0) goto LAB_0008265a;
            FUN_00024a20();
            iVar9 = *(int *)(iVar2 + 0x14);
          }
          else {
            iVar8 = 0;
            iVar9 = *(int *)(iVar2 + 0x14);
          }
        }
LAB_0008257d:
        if (local_50 != 0) {
          iVar8 = local_50;
        }
      }
      local_50 = iVar8;
      iVar10 = iVar10 + 1;
    } while (iVar10 < iVar9);
    *(int *)(iVar2 + 0x1d8) = *(int *)(iVar2 + 0x1d8) + -1;
    param_1[0xc] = 0;
    if (local_50 == 0) goto LAB_000826b7;
  }
  if (param_2 != 2) {
    return local_50;
  }
LAB_000826f1:
  iVar9 = param_1[0x12];
  *(int *)(iVar2 + 0x1dc) = param_1[0x11];
  *(int *)(iVar2 + 0x1e0) = iVar9;
  iVar9 = param_1[0x14];
  *(int *)(iVar2 + 0x1e4) = param_1[0x13];
  *(int *)(iVar2 + 0x1e8) = iVar9;
  return local_50;
}

