
int __regparm3 sqlite3StrAccumEnlarge(StrAccum *p,int N)

{
  uint uVar1;
  uint uVar2;
  sqlite3 *psVar3;
  StrAccum *p_00;
  uint uVar4;
  char *__dest;
  u32 uVar5;
  uint uVar6;
  u8 extraout_DL;
  u8 extraout_DL_00;
  u8 eError;
  int iVar7;
  int iVar8;
  int unaff_EDI;
  undefined8 uVar9;
  int iVar10;
  char *local_20;
  
  uVar9 = __x86_get_pc_thunk_di();
  iVar10 = (int)((ulonglong)uVar9 >> 0x20);
  p_00 = (StrAccum *)uVar9;
  uVar1 = p_00->mxAlloc;
  if (uVar1 == 0) {
    p_00->accError = '\x12';
    setStrAccumError(p_00,(u8)((ulonglong)uVar9 >> 0x20));
    return (p->nAlloc - 1) - p->nChar;
  }
  local_20 = (char *)0x0;
  if ((p_00->printfFlags & 4) != 0) {
    local_20 = p_00->zText;
  }
  uVar2 = p->nChar;
  uVar6 = iVar10 + 1;
  uVar4 = uVar6 + uVar2;
  iVar7 = ((int)uVar6 >> 0x1f) + (uint)CARRY4(uVar6,uVar2);
  uVar6 = uVar2 + uVar4;
  iVar8 = iVar7 + (uint)CARRY4(uVar2,uVar4);
  if ((-1 < iVar8) &&
     ((((0 < iVar8 || (uVar1 < uVar6)) && (uVar6 = uVar4, iVar8 = iVar7, -1 < iVar7)) &&
      ((0 < iVar7 || (uVar1 < uVar4)))))) {
    sqlite3_str_reset(p);
    p->accError = '\x12';
    eError = extraout_DL;
    if (p->mxAlloc != 0) {
      sqlite3_str_reset(p);
      eError = extraout_DL_00;
    }
    setStrAccumError(p,eError);
    return 0;
  }
  p->nAlloc = uVar6;
  if (p->db == (sqlite3 *)0x0) {
    __dest = (char *)sqlite3Realloc(local_20,CONCAT44(iVar8,uVar6));
  }
  else {
    __dest = (char *)sqlite3DbRealloc(p->db,local_20,(ulonglong)uVar6);
  }
  if (__dest == (char *)0x0) {
    sqlite3_str_reset(p);
    p->accError = '\a';
    if (p->mxAlloc == 0) {
      return 0;
    }
    iVar10 = 0;
    sqlite3_str_reset(p);
    return iVar10;
  }
  if (((p->printfFlags & 4) == 0) && (p->nChar != 0)) {
    memcpy(__dest,p->zText,p->nChar);
  }
  psVar3 = p->db;
  p->zText = __dest;
  if ((psVar3 != (sqlite3 *)0x0) && (__dest < (psVar3->lookaside).pEnd)) {
    uVar5 = 0x80;
    if ((psVar3->lookaside).pMiddle <= __dest) goto LAB_000302ff;
    if ((psVar3->lookaside).pStart <= __dest) {
      uVar5 = (u32)(psVar3->lookaside).szTrue;
      goto LAB_000302ff;
    }
  }
  uVar5 = (**(code **)(
                      "UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!=\'index\' OR tbl_name=%Q COLLATE nocase)AND   name NOT LIKE \'sqliteX_%%\' ESCAPE \'X\'"
                      + unaff_EDI + 0xa9))(__dest);
LAB_000302ff:
  p->printfFlags = p->printfFlags | 4;
  p->nAlloc = uVar5;
  return iVar10;
}



int __regparm3 FUN_00030250(int *param_1)

{
  uint uVar1;
  uint uVar2;
  void *__dest;
  uint uVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int unaff_EDI;
  char *pcVar8;
  undefined8 uVar9;
  undefined4 uVar10;
  
  uVar9 = FUN_000a94ff();
  iVar5 = (int)((ulonglong)uVar9 >> 0x20);
  iVar7 = (int)uVar9;
  pcVar8 = "index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +
           unaff_EDI + 0x45;
  uVar3 = *(uint *)(iVar7 + 0xc);
  if (uVar3 == 0) {
    *(undefined1 *)(iVar7 + 0x14) = 0x12;
    FUN_00025520();
    return (param_1[2] + -1) - param_1[4];
  }
  uVar10 = 0;
  if ((*(byte *)(iVar7 + 0x15) & 4) != 0) {
    uVar10 = *(undefined4 *)(iVar7 + 4);
  }
  uVar1 = param_1[4];
  uVar4 = iVar5 + 1;
  uVar2 = uVar4 + uVar1;
  iVar6 = ((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1);
  uVar4 = uVar1 + uVar2;
  iVar7 = iVar6 + (uint)CARRY4(uVar1,uVar2);
  if ((-1 < iVar7) &&
     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&
      ((0 < iVar6 || (uVar3 < uVar2)))))) {
    sqlite3_str_reset(param_1);
    *(undefined1 *)(param_1 + 5) = 0x12;
    if (param_1[3] != 0) {
      sqlite3_str_reset(param_1);
    }
    FUN_00025520();
    return 0;
  }
  param_1[2] = uVar4;
  if (*param_1 == 0) {
    __dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);
  }
  else {
    __dest = (void *)FUN_0002f530(uVar4,0);
  }
  if (__dest == (void *)0x0) {
    sqlite3_str_reset(param_1);
    *(undefined1 *)(param_1 + 5) = 7;
    if (param_1[3] == 0) {
      return 0;
    }
    iVar7 = 0;
    sqlite3_str_reset(param_1);
    return iVar7;
  }
  if (((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0)) {
    memcpy(__dest,(void *)param_1[1],param_1[4]);
  }
  iVar7 = *param_1;
  param_1[1] = (int)__dest;
  if ((iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144))) {
    uVar3 = 0x80;
    if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;
    if (*(void **)(iVar7 + 0x140) <= __dest) {
      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);
      goto LAB_000302ff;
    }
  }
  uVar3 = (**(code **)(pcVar8 + 0x38c))(__dest);
LAB_000302ff:
  *(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4;
  param_1[2] = uVar3;
  return iVar5;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
MOV ESI,EAX
CALL 0x000a94ff
ADD EDI,0xadda5
SUB ESP,0x1c
MOV EBP,dword ptr [EAX + 0xc]
MOV dword ptr [ESP + 0x8],EDI
TEST EBP,EBP
JZ 0x00030368
TEST byte ptr [EAX + 0x15],0x4
MOV EDI,EDX
MOV dword ptr [ESP + 0xc],0x0
JZ 0x0003028a
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0xc],EAX
MOV ECX,dword ptr [ESI + 0x10]
LEA EAX,[EDI + 0x1]
XOR EBX,EBX
CDQ
ADD EAX,ECX
ADC EDX,EBX
ADD ECX,EAX
ADC EBX,EDX
MOV dword ptr [ESP],ECX
CMP EBX,0x0
MOV dword ptr [ESP + 0x4],EBX
JGE 0x00030310
MOV EAX,dword ptr [ESP]
XOR ECX,ECX
MOV EDX,dword ptr [ESP]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [ESI]
TEST EAX,EAX
JZ 0x000303d0
SUB ESP,0x8
PUSH ECX
PUSH EDX
MOV EDX,dword ptr [ESP + 0x1c]
CALL 0x0002f530
ADD ESP,0x10
MOV EBP,EAX
TEST EBP,EBP
JZ 0x00030418
TEST byte ptr [ESI + 0x15],0x4
JZ 0x00030388
MOV EDX,dword ptr [ESI]
MOV dword ptr [ESI + 0x4],EBP
TEST EDX,EDX
JNZ 0x000303e0
SUB ESP,0xc
PUSH EBP
MOV EAX,dword ptr [ESP + 0x18]
CALL dword ptr [EAX + 0x38c]
ADD ESP,0x10
OR byte ptr [ESI + 0x15],0x4
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,EDI
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
JLE 0x000303b0
CMP EDX,0x0
JL 0x000303c0
JG 0x00030329
CMP EAX,EBP
JBE 0x000303c0
SUB ESP,0xc
PUSH ESI
MOV EBX,dword ptr [ESP + 0x18]
CALL 0x00016650
MOV ECX,dword ptr [ESI + 0xc]
ADD ESP,0x10
MOV byte ptr [ESI + 0x14],0x12
TEST ECX,ECX
JZ 0x00030354
SUB ESP,0xc
PUSH ESI
MOV EBX,dword ptr [ESP + 0x18]
CALL 0x00016650
ADD ESP,0x10
MOV EAX,ESI
CALL 0x00025520
ADD ESP,0x1c
XOR EAX,EAX
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV byte ptr [EAX + 0x14],0x12
CALL 0x00025520
MOV EAX,dword ptr [ESI + 0x8]
SUB EAX,0x1
SUB EAX,dword ptr [ESI + 0x10]
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESI + 0x10]
TEST EAX,EAX
JZ 0x000302e1
SUB ESP,0x4
PUSH EAX
PUSH dword ptr [ESI + 0x4]
PUSH EBP
MOV EBX,dword ptr [ESP + 0x18]
CALL 0x00016490
ADD ESP,0x10
JMP 0x000302e1
CMP ECX,EBP
JBE 0x000302a7
JMP 0x00030316
MOV dword ptr [ESP],EAX
MOV dword ptr [ESP + 0x4],EDX
JMP 0x000302a7
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x0002cd30
MOV EBP,EAX
JMP 0x000302cf
CMP dword ptr [EDX + 0x144],EBP
JBE 0x000302ee
CMP dword ptr [EDX + 0x13c],EBP
MOV EAX,0x80
JBE 0x000302ff
CMP dword ptr [EDX + 0x140],EBP
JA 0x000302ee
MOVZX EAX,word ptr [EDX + 0x116]
JMP 0x000302ff
SUB ESP,0xc
PUSH ESI
MOV EBX,dword ptr [ESP + 0x18]
CALL 0x00016650
MOV EDX,dword ptr [ESI + 0xc]
ADD ESP,0x10
XOR EAX,EAX
MOV byte ptr [ESI + 0x14],0x7
TEST EDX,EDX
JZ 0x00030308
MOV dword ptr [ESP],EAX
SUB ESP,0xc
PUSH ESI
MOV EBX,dword ptr [ESP + 0x18]
CALL 0x00016650
ADD ESP,0x10
MOV EAX,dword ptr [ESP]
JMP 0x00030308
(translation_unit "int __regparm3 FUN_00030250(int *param_1)\n\n{\n  uint uVar1;\n  uint uVar2;\n  void *__dest;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int unaff_EDI;\n  char *pcVar8;\n  undefined8 uVar9;\n  undefined4 uVar10;\n  \n  uVar9 = FUN_000a94ff();\n  iVar5 = (int)((ulonglong)uVar9 >> 0x20);\n  iVar7 = (int)uVar9;\n  pcVar8 = "index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI + 0x45;\n  uVar3 = *(uint *)(iVar7 + 0xc);\n  if (uVar3 == 0) {\n    *(undefined1 *)(iVar7 + 0x14) = 0x12;\n    FUN_00025520();\n    return (param_1[2] + -1) - param_1[4];\n  }\n  uVar10 = 0;\n  if ((*(byte *)(iVar7 + 0x15) & 4) != 0) {\n    uVar10 = *(undefined4 *)(iVar7 + 4);\n  }\n  uVar1 = param_1[4];\n  uVar4 = iVar5 + 1;\n  uVar2 = uVar4 + uVar1;\n  iVar6 = ((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1);\n  uVar4 = uVar1 + uVar2;\n  iVar7 = iVar6 + (uint)CARRY4(uVar1,uVar2);\n  if ((-1 < iVar7) &&\n     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))))) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 0x12;\n    if (param_1[3] != 0) {\n      sqlite3_str_reset(param_1);\n    }\n    FUN_00025520();\n    return 0;\n  }\n  param_1[2] = uVar4;\n  if (*param_1 == 0) {\n    __dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);\n  }\n  else {\n    __dest = (void *)FUN_0002f530(uVar4,0);\n  }\n  if (__dest == (void *)0x0) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 7;\n    if (param_1[3] == 0) {\n      return 0;\n    }\n    iVar7 = 0;\n    sqlite3_str_reset(param_1);\n    return iVar7;\n  }\n  if (((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0)) {\n    memcpy(__dest,(void *)param_1[1],param_1[4]);\n  }\n  iVar7 = *param_1;\n  param_1[1] = (int)__dest;\n  if ((iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144))) {\n    uVar3 = 0x80;\n    if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;\n    if (*(void **)(iVar7 + 0x140) <= __dest) {\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }\n  }\n  uVar3 = (**(code **)(pcVar8 + 0x38c))(__dest);\nLAB_000302ff:\n  *(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4;\n  param_1[2] = uVar3;\n  return iVar5;\n}\n\n" (function_definition "int __regparm3 FUN_00030250(int *param_1)\n\n{\n  uint uVar1;\n  uint uVar2;\n  void *__dest;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int unaff_EDI;\n  char *pcVar8;\n  undefined8 uVar9;\n  undefined4 uVar10;\n  \n  uVar9 = FUN_000a94ff();\n  iVar5 = (int)((ulonglong)uVar9 >> 0x20);\n  iVar7 = (int)uVar9;\n  pcVar8 = "index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI + 0x45;\n  uVar3 = *(uint *)(iVar7 + 0xc);\n  if (uVar3 == 0) {\n    *(undefined1 *)(iVar7 + 0x14) = 0x12;\n    FUN_00025520();\n    return (param_1[2] + -1) - param_1[4];\n  }\n  uVar10 = 0;\n  if ((*(byte *)(iVar7 + 0x15) & 4) != 0) {\n    uVar10 = *(undefined4 *)(iVar7 + 4);\n  }\n  uVar1 = param_1[4];\n  uVar4 = iVar5 + 1;\n  uVar2 = uVar4 + uVar1;\n  iVar6 = ((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1);\n  uVar4 = uVar1 + uVar2;\n  iVar7 = iVar6 + (uint)CARRY4(uVar1,uVar2);\n  if ((-1 < iVar7) &&\n     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))))) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 0x12;\n    if (param_1[3] != 0) {\n      sqlite3_str_reset(param_1);\n    }\n    FUN_00025520();\n    return 0;\n  }\n  param_1[2] = uVar4;\n  if (*param_1 == 0) {\n    __dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);\n  }\n  else {\n    __dest = (void *)FUN_0002f530(uVar4,0);\n  }\n  if (__dest == (void *)0x0) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 7;\n    if (param_1[3] == 0) {\n      return 0;\n    }\n    iVar7 = 0;\n    sqlite3_str_reset(param_1);\n    return iVar7;\n  }\n  if (((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0)) {\n    memcpy(__dest,(void *)param_1[1],param_1[4]);\n  }\n  iVar7 = *param_1;\n  param_1[1] = (int)__dest;\n  if ((iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144))) {\n    uVar3 = 0x80;\n    if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;\n    if (*(void **)(iVar7 + 0x140) <= __dest) {\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }\n  }\n  uVar3 = (**(code **)(pcVar8 + 0x38c))(__dest);\nLAB_000302ff:\n  *(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4;\n  param_1[2] = uVar3;\n  return iVar5;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00030250(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  void *__dest;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int unaff_EDI;\n  char *pcVar8;\n  undefined8 uVar9;\n  undefined4 uVar10;\n  \n  uVar9 = FUN_000a94ff();\n  iVar5 = (int)((ulonglong)uVar9 >> 0x20);\n  iVar7 = (int)uVar9;\n  pcVar8 = "index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI + 0x45;\n  uVar3 = *(uint *)(iVar7 + 0xc);\n  if (uVar3 == 0) {\n    *(undefined1 *)(iVar7 + 0x14) = 0x12;\n    FUN_00025520();\n    return (param_1[2] + -1) - param_1[4];\n  }\n  uVar10 = 0;\n  if ((*(byte *)(iVar7 + 0x15) & 4) != 0) {\n    uVar10 = *(undefined4 *)(iVar7 + 4);\n  }\n  uVar1 = param_1[4];\n  uVar4 = iVar5 + 1;\n  uVar2 = uVar4 + uVar1;\n  iVar6 = ((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1);\n  uVar4 = uVar1 + uVar2;\n  iVar7 = iVar6 + (uint)CARRY4(uVar1,uVar2);\n  if ((-1 < iVar7) &&\n     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))))) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 0x12;\n    if (param_1[3] != 0) {\n      sqlite3_str_reset(param_1);\n    }\n    FUN_00025520();\n    return 0;\n  }\n  param_1[2] = uVar4;\n  if (*param_1 == 0) {\n    __dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);\n  }\n  else {\n    __dest = (void *)FUN_0002f530(uVar4,0);\n  }\n  if (__dest == (void *)0x0) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 7;\n    if (param_1[3] == 0) {\n      return 0;\n    }\n    iVar7 = 0;\n    sqlite3_str_reset(param_1);\n    return iVar7;\n  }\n  if (((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0)) {\n    memcpy(__dest,(void *)param_1[1],param_1[4]);\n  }\n  iVar7 = *param_1;\n  param_1[1] = (int)__dest;\n  if ((iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144))) {\n    uVar3 = 0x80;\n    if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;\n    if (*(void **)(iVar7 + 0x140) <= __dest) {\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }\n  }\n  uVar3 = (**(code **)(pcVar8 + 0x38c))(__dest);\nLAB_000302ff:\n  *(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4;\n  param_1[2] = uVar3;\n  return iVar5;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (expression_statement "uVar9 = FUN_000a94ff();" (assignment_expression "uVar9 = FUN_000a94ff()" identifier = (call_expression "FUN_000a94ff()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar5 = (int)((ulonglong)uVar9 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)uVar9 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar9 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar9 >> 0x20)" ( (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar7 = (int)uVar9;" (assignment_expression "iVar7 = (int)uVar9" identifier = (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar8 = "index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI + 0x45;" (assignment_expression "pcVar8 = "index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI + 0x45" identifier = (binary_expression ""index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI + 0x45" (binary_expression ""index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI" (string_literal ""index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped"" " string_content ") + identifier) + number_literal)) ;) (expression_statement "uVar3 = *(uint *)(iVar7 + 0xc);" (assignment_expression "uVar3 = *(uint *)(iVar7 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar7 + 0xc)" * (cast_expression "(uint *)(iVar7 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 == 0) {\n    *(undefined1 *)(iVar7 + 0x14) = 0x12;\n    FUN_00025520();\n    return (param_1[2] + -1) - param_1[4];\n  }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined1 *)(iVar7 + 0x14) = 0x12;\n    FUN_00025520();\n    return (param_1[2] + -1) - param_1[4];\n  }" { (expression_statement "*(undefined1 *)(iVar7 + 0x14) = 0x12;" (assignment_expression "*(undefined1 *)(iVar7 + 0x14) = 0x12" (pointer_expression "*(undefined1 *)(iVar7 + 0x14)" * (cast_expression "(undefined1 *)(iVar7 + 0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00025520();" (call_expression "FUN_00025520()" identifier (argument_list "()" ( ))) ;) (return_statement "return (param_1[2] + -1) - param_1[4];" return (binary_expression "(param_1[2] + -1) - param_1[4]" (parenthesized_expression "(param_1[2] + -1)" ( (binary_expression "param_1[2] + -1" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )) - (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) })) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if ((*(byte *)(iVar7 + 0x15) & 4) != 0) {\n    uVar10 = *(undefined4 *)(iVar7 + 4);\n  }" if (parenthesized_expression "((*(byte *)(iVar7 + 0x15) & 4) != 0)" ( (binary_expression "(*(byte *)(iVar7 + 0x15) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x15) & 4)" ( (binary_expression "*(byte *)(iVar7 + 0x15) & 4" (pointer_expression "*(byte *)(iVar7 + 0x15)" * (cast_expression "(byte *)(iVar7 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x15)" ( (binary_expression "iVar7 + 0x15" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar10 = *(undefined4 *)(iVar7 + 4);\n  }" { (expression_statement "uVar10 = *(undefined4 *)(iVar7 + 4);" (assignment_expression "uVar10 = *(undefined4 *)(iVar7 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) })) (expression_statement "uVar1 = param_1[4];" (assignment_expression "uVar1 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = iVar5 + 1;" (assignment_expression "uVar4 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar2 = uVar4 + uVar1;" (assignment_expression "uVar2 = uVar4 + uVar1" identifier = (binary_expression "uVar4 + uVar1" identifier + identifier)) ;) (expression_statement "iVar6 = ((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1);" (assignment_expression "iVar6 = ((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1)" identifier = (binary_expression "((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1)" (parenthesized_expression "((int)uVar4 >> 0x1f)" ( (binary_expression "(int)uVar4 >> 0x1f" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (cast_expression "(uint)CARRY4(uVar4,uVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar4,uVar1)" identifier (argument_list "(uVar4,uVar1)" ( identifier , identifier )))))) ;) (expression_statement "uVar4 = uVar1 + uVar2;" (assignment_expression "uVar4 = uVar1 + uVar2" identifier = (binary_expression "uVar1 + uVar2" identifier + identifier)) ;) (expression_statement "iVar7 = iVar6 + (uint)CARRY4(uVar1,uVar2);" (assignment_expression "iVar7 = iVar6 + (uint)CARRY4(uVar1,uVar2)" identifier = (binary_expression "iVar6 + (uint)CARRY4(uVar1,uVar2)" identifier + (cast_expression "(uint)CARRY4(uVar1,uVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar1,uVar2)" identifier (argument_list "(uVar1,uVar2)" ( identifier , identifier )))))) ;) (if_statement "if ((-1 < iVar7) &&\n     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))))) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 0x12;\n    if (param_1[3] != 0) {\n      sqlite3_str_reset(param_1);\n    }\n    FUN_00025520();\n    return 0;\n  }" if (parenthesized_expression "((-1 < iVar7) &&\n     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2))))))" ( (binary_expression "(-1 < iVar7) &&\n     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))))" (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) )) && (parenthesized_expression "((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))))" ( (parenthesized_expression "(((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2))))" ( (binary_expression "((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))" (parenthesized_expression "((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6))" ( (binary_expression "(0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)" (parenthesized_expression "(0 < iVar7 || (uVar3 < uVar4))" ( (binary_expression "0 < iVar7 || (uVar3 < uVar4)" (binary_expression "0 < iVar7" number_literal < identifier) || (parenthesized_expression "(uVar3 < uVar4)" ( (binary_expression "uVar3 < uVar4" identifier < identifier) ))) )) && (parenthesized_expression "(uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)" ( (comma_expression "uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6" (assignment_expression "uVar4 = uVar2" identifier = identifier) , (comma_expression "iVar7 = iVar6, -1 < iVar6" (assignment_expression "iVar7 = iVar6" identifier = identifier) , (binary_expression "-1 < iVar6" number_literal < identifier))) ))) )) && (parenthesized_expression "((0 < iVar6 || (uVar3 < uVar2)))" ( (parenthesized_expression "(0 < iVar6 || (uVar3 < uVar2))" ( (binary_expression "0 < iVar6 || (uVar3 < uVar2)" (binary_expression "0 < iVar6" number_literal < identifier) || (parenthesized_expression "(uVar3 < uVar2)" ( (binary_expression "uVar3 < uVar2" identifier < identifier) ))) )) ))) )) ))) )) (compound_statement "{\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 0x12;\n    if (param_1[3] != 0) {\n      sqlite3_str_reset(param_1);\n    }\n    FUN_00025520();\n    return 0;\n  }" { (expression_statement "sqlite3_str_reset(param_1);" (call_expression "sqlite3_str_reset(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "*(undefined1 *)(param_1 + 5) = 0x12;" (assignment_expression "*(undefined1 *)(param_1 + 5) = 0x12" (pointer_expression "*(undefined1 *)(param_1 + 5)" * (cast_expression "(undefined1 *)(param_1 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (param_1[3] != 0) {\n      sqlite3_str_reset(param_1);\n    }" if (parenthesized_expression "(param_1[3] != 0)" ( (binary_expression "param_1[3] != 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      sqlite3_str_reset(param_1);\n    }" { (expression_statement "sqlite3_str_reset(param_1);" (call_expression "sqlite3_str_reset(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) })) (expression_statement "FUN_00025520();" (call_expression "FUN_00025520()" identifier (argument_list "()" ( ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "param_1[2] = uVar4;" (assignment_expression "param_1[2] = uVar4" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*param_1 == 0) {\n    __dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);\n  }\n  else {\n    __dest = (void *)FUN_0002f530(uVar4,0);\n  }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n    __dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);\n  }" { (expression_statement "__dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);" (assignment_expression "__dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10)" identifier = (cast_expression "(void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10)" identifier (argument_list "(uVar4,iVar7,pcVar8,uVar10)" ( identifier , identifier , identifier , identifier ))))) ;) }) (else_clause "else {\n    __dest = (void *)FUN_0002f530(uVar4,0);\n  }" else (compound_statement "{\n    __dest = (void *)FUN_0002f530(uVar4,0);\n  }" { (expression_statement "__dest = (void *)FUN_0002f530(uVar4,0);" (assignment_expression "__dest = (void *)FUN_0002f530(uVar4,0)" identifier = (cast_expression "(void *)FUN_0002f530(uVar4,0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002f530(uVar4,0)" identifier (argument_list "(uVar4,0)" ( identifier , number_literal ))))) ;) }))) (if_statement "if (__dest == (void *)0x0) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 7;\n    if (param_1[3] == 0) {\n      return 0;\n    }\n    iVar7 = 0;\n    sqlite3_str_reset(param_1);\n    return iVar7;\n  }" if (parenthesized_expression "(__dest == (void *)0x0)" ( (binary_expression "__dest == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 7;\n    if (param_1[3] == 0) {\n      return 0;\n    }\n    iVar7 = 0;\n    sqlite3_str_reset(param_1);\n    return iVar7;\n  }" { (expression_statement "sqlite3_str_reset(param_1);" (call_expression "sqlite3_str_reset(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "*(undefined1 *)(param_1 + 5) = 7;" (assignment_expression "*(undefined1 *)(param_1 + 5) = 7" (pointer_expression "*(undefined1 *)(param_1 + 5)" * (cast_expression "(undefined1 *)(param_1 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (param_1[3] == 0) {\n      return 0;\n    }" if (parenthesized_expression "(param_1[3] == 0)" ( (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "sqlite3_str_reset(param_1);" (call_expression "sqlite3_str_reset(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (return_statement "return iVar7;" return identifier ;) })) (if_statement "if (((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0)) {\n    memcpy(__dest,(void *)param_1[1],param_1[4]);\n  }" if (parenthesized_expression "(((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0))" ( (binary_expression "((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0)" (parenthesized_expression "((*(byte *)((int)param_1 + 0x15) & 4) == 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x15) & 4) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x15) & 4)" ( (binary_expression "*(byte *)((int)param_1 + 0x15) & 4" (pointer_expression "*(byte *)((int)param_1 + 0x15)" * (cast_expression "(byte *)((int)param_1 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x15)" ( (binary_expression "(int)param_1 + 0x15" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(param_1[4] != 0)" ( (binary_expression "param_1[4] != 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n    memcpy(__dest,(void *)param_1[1],param_1[4]);\n  }" { (expression_statement "memcpy(__dest,(void *)param_1[1],param_1[4]);" (call_expression "memcpy(__dest,(void *)param_1[1],param_1[4])" identifier (argument_list "(__dest,(void *)param_1[1],param_1[4])" ( identifier , (cast_expression "(void *)param_1[1]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) , (subscript_expression "param_1[4]" identifier [ number_literal ]) ))) ;) })) (expression_statement "iVar7 = *param_1;" (assignment_expression "iVar7 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_1[1] = (int)__dest;" (assignment_expression "param_1[1] = (int)__dest" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144))) {\n    uVar3 = 0x80;\n    if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;\n    if (*(void **)(iVar7 + 0x140) <= __dest) {\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }\n  }" if (parenthesized_expression "((iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144)))" ( (binary_expression "(iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144))" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(__dest < *(void **)(iVar7 + 0x144))" ( (binary_expression "__dest < *(void **)(iVar7 + 0x144)" identifier < (pointer_expression "*(void **)(iVar7 + 0x144)" * (cast_expression "(void **)(iVar7 + 0x144)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x144)" ( (binary_expression "iVar7 + 0x144" identifier + number_literal) ))))) ))) )) (compound_statement "{\n    uVar3 = 0x80;\n    if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;\n    if (*(void **)(iVar7 + 0x140) <= __dest) {\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }\n  }" { (expression_statement "uVar3 = 0x80;" (assignment_expression "uVar3 = 0x80" identifier = number_literal) ;) (if_statement "if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;" if (parenthesized_expression "(*(void **)(iVar7 + 0x13c) <= __dest)" ( (binary_expression "*(void **)(iVar7 + 0x13c) <= __dest" (pointer_expression "*(void **)(iVar7 + 0x13c)" * (cast_expression "(void **)(iVar7 + 0x13c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x13c)" ( (binary_expression "iVar7 + 0x13c" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_000302ff;" goto statement_identifier ;)) (if_statement "if (*(void **)(iVar7 + 0x140) <= __dest) {\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }" if (parenthesized_expression "(*(void **)(iVar7 + 0x140) <= __dest)" ( (binary_expression "*(void **)(iVar7 + 0x140) <= __dest" (pointer_expression "*(void **)(iVar7 + 0x140)" * (cast_expression "(void **)(iVar7 + 0x140)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x140)" ( (binary_expression "iVar7 + 0x140" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }" { (expression_statement "uVar3 = (uint)*(ushort *)(iVar7 + 0x116);" (assignment_expression "uVar3 = (uint)*(ushort *)(iVar7 + 0x116)" identifier = (binary_expression "(uint)*(ushort *)(iVar7 + 0x116)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar7 + 0x116)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x116)" ( (binary_expression "iVar7 + 0x116" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000302ff;" goto statement_identifier ;) })) })) (expression_statement "uVar3 = (**(code **)(pcVar8 + 0x38c))(__dest);" (assignment_expression "uVar3 = (**(code **)(pcVar8 + 0x38c))(__dest)" identifier = (call_expression "(**(code **)(pcVar8 + 0x38c))(__dest)" (parenthesized_expression "(**(code **)(pcVar8 + 0x38c))" ( (pointer_expression "**(code **)(pcVar8 + 0x38c)" * (pointer_expression "*(code **)(pcVar8 + 0x38c)" * (cast_expression "(code **)(pcVar8 + 0x38c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x38c)" ( (binary_expression "pcVar8 + 0x38c" identifier + number_literal) ))))) )) (argument_list "(__dest)" ( identifier )))) ;) (labeled_statement "LAB_000302ff:\n  *(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4;" statement_identifier : (expression_statement "*(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4;" (assignment_expression "*(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4" (pointer_expression "*(byte *)((int)param_1 + 0x15)" * (cast_expression "(byte *)((int)param_1 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x15)" ( (binary_expression "(int)param_1 + 0x15" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_1 + 0x15) | 4" (pointer_expression "*(byte *)((int)param_1 + 0x15)" * (cast_expression "(byte *)((int)param_1 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x15)" ( (binary_expression "(int)param_1 + 0x15" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;)) (expression_statement "param_1[2] = uVar3;" (assignment_expression "param_1[2] = uVar3" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (return_statement "return iVar5;" return identifier ;) })))
(translation_unit "int __regparm3 sqlite3StrAccumEnlarge(StrAccum *p,int N)\n\n{\n  uint uVar1;\n  uint uVar2;\n  sqlite3 *psVar3;\n  StrAccum *p_00;\n  uint uVar4;\n  char *__dest;\n  u32 uVar5;\n  uint uVar6;\n  u8 extraout_DL;\n  u8 extraout_DL_00;\n  u8 eError;\n  int iVar7;\n  int iVar8;\n  int unaff_EDI;\n  undefined8 uVar9;\n  int iVar10;\n  char *local_20;\n  \n  uVar9 = __x86_get_pc_thunk_di();\n  iVar10 = (int)((ulonglong)uVar9 >> 0x20);\n  p_00 = (StrAccum *)uVar9;\n  uVar1 = p_00->mxAlloc;\n  if (uVar1 == 0) {\n    p_00->accError = '\x12';\n    setStrAccumError(p_00,(u8)((ulonglong)uVar9 >> 0x20));\n    return (p->nAlloc - 1) - p->nChar;\n  }\n  local_20 = (char *)0x0;\n  if ((p_00->printfFlags & 4) != 0) {\n    local_20 = p_00->zText;\n  }\n  uVar2 = p->nChar;\n  uVar6 = iVar10 + 1;\n  uVar4 = uVar6 + uVar2;\n  iVar7 = ((int)uVar6 >> 0x1f) + (uint)CARRY4(uVar6,uVar2);\n  uVar6 = uVar2 + uVar4;\n  iVar8 = iVar7 + (uint)CARRY4(uVar2,uVar4);\n  if ((-1 < iVar8) &&\n     ((((0 < iVar8 || (uVar1 < uVar6)) && (uVar6 = uVar4, iVar8 = iVar7, -1 < iVar7)) &&\n      ((0 < iVar7 || (uVar1 < uVar4)))))) {\n    sqlite3_str_reset(p);\n    p->accError = '\x12';\n    eError = extraout_DL;\n    if (p->mxAlloc != 0) {\n      sqlite3_str_reset(p);\n      eError = extraout_DL_00;\n    }\n    setStrAccumError(p,eError);\n    return 0;\n  }\n  p->nAlloc = uVar6;\n  if (p->db == (sqlite3 *)0x0) {\n    __dest = (char *)sqlite3Realloc(local_20,CONCAT44(iVar8,uVar6));\n  }\n  else {\n    __dest = (char *)sqlite3DbRealloc(p->db,local_20,(ulonglong)uVar6);\n  }\n  if (__dest == (char *)0x0) {\n    sqlite3_str_reset(p);\n    p->accError = '\a';\n    if (p->mxAlloc == 0) {\n      return 0;\n    }\n    iVar10 = 0;\n    sqlite3_str_reset(p);\n    return iVar10;\n  }\n  if (((p->printfFlags & 4) == 0) && (p->nChar != 0)) {\n    memcpy(__dest,p->zText,p->nChar);\n  }\n  psVar3 = p->db;\n  p->zText = __dest;\n  if ((psVar3 != (sqlite3 *)0x0) && (__dest < (psVar3->lookaside).pEnd)) {\n    uVar5 = 0x80;\n    if ((psVar3->lookaside).pMiddle <= __dest) goto LAB_000302ff;\n    if ((psVar3->lookaside).pStart <= __dest) {\n      uVar5 = (u32)(psVar3->lookaside).szTrue;\n      goto LAB_000302ff;\n    }\n  }\n  uVar5 = (**(code **)(\n                      "UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!=\'index\' OR tbl_name=%Q COLLATE nocase)AND   name NOT LIKE \'sqliteX_%%\' ESCAPE \'X\'"\n                      + unaff_EDI + 0xa9))(__dest);\nLAB_000302ff:\n  p->printfFlags = p->printfFlags | 4;\n  p->nAlloc = uVar5;\n  return iVar10;\n}\n\n" (function_definition "int __regparm3 sqlite3StrAccumEnlarge(StrAccum *p,int N)\n\n{\n  uint uVar1;\n  uint uVar2;\n  sqlite3 *psVar3;\n  StrAccum *p_00;\n  uint uVar4;\n  char *__dest;\n  u32 uVar5;\n  uint uVar6;\n  u8 extraout_DL;\n  u8 extraout_DL_00;\n  u8 eError;\n  int iVar7;\n  int iVar8;\n  int unaff_EDI;\n  undefined8 uVar9;\n  int iVar10;\n  char *local_20;\n  \n  uVar9 = __x86_get_pc_thunk_di();\n  iVar10 = (int)((ulonglong)uVar9 >> 0x20);\n  p_00 = (StrAccum *)uVar9;\n  uVar1 = p_00->mxAlloc;\n  if (uVar1 == 0) {\n    p_00->accError = '\x12';\n    setStrAccumError(p_00,(u8)((ulonglong)uVar9 >> 0x20));\n    return (p->nAlloc - 1) - p->nChar;\n  }\n  local_20 = (char *)0x0;\n  if ((p_00->printfFlags & 4) != 0) {\n    local_20 = p_00->zText;\n  }\n  uVar2 = p->nChar;\n  uVar6 = iVar10 + 1;\n  uVar4 = uVar6 + uVar2;\n  iVar7 = ((int)uVar6 >> 0x1f) + (uint)CARRY4(uVar6,uVar2);\n  uVar6 = uVar2 + uVar4;\n  iVar8 = iVar7 + (uint)CARRY4(uVar2,uVar4);\n  if ((-1 < iVar8) &&\n     ((((0 < iVar8 || (uVar1 < uVar6)) && (uVar6 = uVar4, iVar8 = iVar7, -1 < iVar7)) &&\n      ((0 < iVar7 || (uVar1 < uVar4)))))) {\n    sqlite3_str_reset(p);\n    p->accError = '\x12';\n    eError = extraout_DL;\n    if (p->mxAlloc != 0) {\n      sqlite3_str_reset(p);\n      eError = extraout_DL_00;\n    }\n    setStrAccumError(p,eError);\n    return 0;\n  }\n  p->nAlloc = uVar6;\n  if (p->db == (sqlite3 *)0x0) {\n    __dest = (char *)sqlite3Realloc(local_20,CONCAT44(iVar8,uVar6));\n  }\n  else {\n    __dest = (char *)sqlite3DbRealloc(p->db,local_20,(ulonglong)uVar6);\n  }\n  if (__dest == (char *)0x0) {\n    sqlite3_str_reset(p);\n    p->accError = '\a';\n    if (p->mxAlloc == 0) {\n      return 0;\n    }\n    iVar10 = 0;\n    sqlite3_str_reset(p);\n    return iVar10;\n  }\n  if (((p->printfFlags & 4) == 0) && (p->nChar != 0)) {\n    memcpy(__dest,p->zText,p->nChar);\n  }\n  psVar3 = p->db;\n  p->zText = __dest;\n  if ((psVar3 != (sqlite3 *)0x0) && (__dest < (psVar3->lookaside).pEnd)) {\n    uVar5 = 0x80;\n    if ((psVar3->lookaside).pMiddle <= __dest) goto LAB_000302ff;\n    if ((psVar3->lookaside).pStart <= __dest) {\n      uVar5 = (u32)(psVar3->lookaside).szTrue;\n      goto LAB_000302ff;\n    }\n  }\n  uVar5 = (**(code **)(\n                      "UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!=\'index\' OR tbl_name=%Q COLLATE nocase)AND   name NOT LIKE \'sqliteX_%%\' ESCAPE \'X\'"\n                      + unaff_EDI + 0xa9))(__dest);\nLAB_000302ff:\n  p->printfFlags = p->printfFlags | 4;\n  p->nAlloc = uVar5;\n  return iVar10;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "sqlite3StrAccumEnlarge(StrAccum *p,int N)" identifier (parameter_list "(StrAccum *p,int N)" ( (parameter_declaration "StrAccum *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "int N" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  sqlite3 *psVar3;\n  StrAccum *p_00;\n  uint uVar4;\n  char *__dest;\n  u32 uVar5;\n  uint uVar6;\n  u8 extraout_DL;\n  u8 extraout_DL_00;\n  u8 eError;\n  int iVar7;\n  int iVar8;\n  int unaff_EDI;\n  undefined8 uVar9;\n  int iVar10;\n  char *local_20;\n  \n  uVar9 = __x86_get_pc_thunk_di();\n  iVar10 = (int)((ulonglong)uVar9 >> 0x20);\n  p_00 = (StrAccum *)uVar9;\n  uVar1 = p_00->mxAlloc;\n  if (uVar1 == 0) {\n    p_00->accError = '\x12';\n    setStrAccumError(p_00,(u8)((ulonglong)uVar9 >> 0x20));\n    return (p->nAlloc - 1) - p->nChar;\n  }\n  local_20 = (char *)0x0;\n  if ((p_00->printfFlags & 4) != 0) {\n    local_20 = p_00->zText;\n  }\n  uVar2 = p->nChar;\n  uVar6 = iVar10 + 1;\n  uVar4 = uVar6 + uVar2;\n  iVar7 = ((int)uVar6 >> 0x1f) + (uint)CARRY4(uVar6,uVar2);\n  uVar6 = uVar2 + uVar4;\n  iVar8 = iVar7 + (uint)CARRY4(uVar2,uVar4);\n  if ((-1 < iVar8) &&\n     ((((0 < iVar8 || (uVar1 < uVar6)) && (uVar6 = uVar4, iVar8 = iVar7, -1 < iVar7)) &&\n      ((0 < iVar7 || (uVar1 < uVar4)))))) {\n    sqlite3_str_reset(p);\n    p->accError = '\x12';\n    eError = extraout_DL;\n    if (p->mxAlloc != 0) {\n      sqlite3_str_reset(p);\n      eError = extraout_DL_00;\n    }\n    setStrAccumError(p,eError);\n    return 0;\n  }\n  p->nAlloc = uVar6;\n  if (p->db == (sqlite3 *)0x0) {\n    __dest = (char *)sqlite3Realloc(local_20,CONCAT44(iVar8,uVar6));\n  }\n  else {\n    __dest = (char *)sqlite3DbRealloc(p->db,local_20,(ulonglong)uVar6);\n  }\n  if (__dest == (char *)0x0) {\n    sqlite3_str_reset(p);\n    p->accError = '\a';\n    if (p->mxAlloc == 0) {\n      return 0;\n    }\n    iVar10 = 0;\n    sqlite3_str_reset(p);\n    return iVar10;\n  }\n  if (((p->printfFlags & 4) == 0) && (p->nChar != 0)) {\n    memcpy(__dest,p->zText,p->nChar);\n  }\n  psVar3 = p->db;\n  p->zText = __dest;\n  if ((psVar3 != (sqlite3 *)0x0) && (__dest < (psVar3->lookaside).pEnd)) {\n    uVar5 = 0x80;\n    if ((psVar3->lookaside).pMiddle <= __dest) goto LAB_000302ff;\n    if ((psVar3->lookaside).pStart <= __dest) {\n      uVar5 = (u32)(psVar3->lookaside).szTrue;\n      goto LAB_000302ff;\n    }\n  }\n  uVar5 = (**(code **)(\n                      "UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!=\'index\' OR tbl_name=%Q COLLATE nocase)AND   name NOT LIKE \'sqliteX_%%\' ESCAPE \'X\'"\n                      + unaff_EDI + 0xa9))(__dest);\nLAB_000302ff:\n  p->printfFlags = p->printfFlags | 4;\n  p->nAlloc = uVar5;\n  return iVar10;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "sqlite3 *psVar3;" type_identifier (pointer_declarator "*psVar3" * identifier) ;) (declaration "StrAccum *p_00;" type_identifier (pointer_declarator "*p_00" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "u32 uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "u8 extraout_DL;" type_identifier identifier ;) (declaration "u8 extraout_DL_00;" type_identifier identifier ;) (declaration "u8 eError;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char *local_20;" primitive_type (pointer_declarator "*local_20" * identifier) ;) (expression_statement "uVar9 = __x86_get_pc_thunk_di();" (assignment_expression "uVar9 = __x86_get_pc_thunk_di()" identifier = (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar10 = (int)((ulonglong)uVar9 >> 0x20);" (assignment_expression "iVar10 = (int)((ulonglong)uVar9 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar9 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar9 >> 0x20)" ( (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "p_00 = (StrAccum *)uVar9;" (assignment_expression "p_00 = (StrAccum *)uVar9" identifier = (cast_expression "(StrAccum *)uVar9" ( (type_descriptor "StrAccum *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar1 = p_00->mxAlloc;" (assignment_expression "uVar1 = p_00->mxAlloc" identifier = (field_expression "p_00->mxAlloc" identifier -> field_identifier)) ;) (if_statement "if (uVar1 == 0) {\n    p_00->accError = '\x12';\n    setStrAccumError(p_00,(u8)((ulonglong)uVar9 >> 0x20));\n    return (p->nAlloc - 1) - p->nChar;\n  }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    p_00->accError = '\x12';\n    setStrAccumError(p_00,(u8)((ulonglong)uVar9 >> 0x20));\n    return (p->nAlloc - 1) - p->nChar;\n  }" { (expression_statement "p_00->accError = '\x12';" (assignment_expression "p_00->accError = '\x12'" (field_expression "p_00->accError" identifier -> field_identifier) = (char_literal "'\x12'" ' escape_sequence ')) ;) (expression_statement "setStrAccumError(p_00,(u8)((ulonglong)uVar9 >> 0x20));" (call_expression "setStrAccumError(p_00,(u8)((ulonglong)uVar9 >> 0x20))" identifier (argument_list "(p_00,(u8)((ulonglong)uVar9 >> 0x20))" ( identifier , (call_expression "(u8)((ulonglong)uVar9 >> 0x20)" (parenthesized_expression "(u8)" ( identifier )) (argument_list "((ulonglong)uVar9 >> 0x20)" ( (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (return_statement "return (p->nAlloc - 1) - p->nChar;" return (binary_expression "(p->nAlloc - 1) - p->nChar" (parenthesized_expression "(p->nAlloc - 1)" ( (binary_expression "p->nAlloc - 1" (field_expression "p->nAlloc" identifier -> field_identifier) - number_literal) )) - (field_expression "p->nChar" identifier -> field_identifier)) ;) })) (expression_statement "local_20 = (char *)0x0;" (assignment_expression "local_20 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((p_00->printfFlags & 4) != 0) {\n    local_20 = p_00->zText;\n  }" if (parenthesized_expression "((p_00->printfFlags & 4) != 0)" ( (binary_expression "(p_00->printfFlags & 4) != 0" (parenthesized_expression "(p_00->printfFlags & 4)" ( (binary_expression "p_00->printfFlags & 4" (field_expression "p_00->printfFlags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    local_20 = p_00->zText;\n  }" { (expression_statement "local_20 = p_00->zText;" (assignment_expression "local_20 = p_00->zText" identifier = (field_expression "p_00->zText" identifier -> field_identifier)) ;) })) (expression_statement "uVar2 = p->nChar;" (assignment_expression "uVar2 = p->nChar" identifier = (field_expression "p->nChar" identifier -> field_identifier)) ;) (expression_statement "uVar6 = iVar10 + 1;" (assignment_expression "uVar6 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar6 + uVar2;" (assignment_expression "uVar4 = uVar6 + uVar2" identifier = (binary_expression "uVar6 + uVar2" identifier + identifier)) ;) (expression_statement "iVar7 = ((int)uVar6 >> 0x1f) + (uint)CARRY4(uVar6,uVar2);" (assignment_expression "iVar7 = ((int)uVar6 >> 0x1f) + (uint)CARRY4(uVar6,uVar2)" identifier = (binary_expression "((int)uVar6 >> 0x1f) + (uint)CARRY4(uVar6,uVar2)" (parenthesized_expression "((int)uVar6 >> 0x1f)" ( (binary_expression "(int)uVar6 >> 0x1f" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (cast_expression "(uint)CARRY4(uVar6,uVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar6,uVar2)" identifier (argument_list "(uVar6,uVar2)" ( identifier , identifier )))))) ;) (expression_statement "uVar6 = uVar2 + uVar4;" (assignment_expression "uVar6 = uVar2 + uVar4" identifier = (binary_expression "uVar2 + uVar4" identifier + identifier)) ;) (expression_statement "iVar8 = iVar7 + (uint)CARRY4(uVar2,uVar4);" (assignment_expression "iVar8 = iVar7 + (uint)CARRY4(uVar2,uVar4)" identifier = (binary_expression "iVar7 + (uint)CARRY4(uVar2,uVar4)" identifier + (cast_expression "(uint)CARRY4(uVar2,uVar4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar2,uVar4)" identifier (argument_list "(uVar2,uVar4)" ( identifier , identifier )))))) ;) (if_statement "if ((-1 < iVar8) &&\n     ((((0 < iVar8 || (uVar1 < uVar6)) && (uVar6 = uVar4, iVar8 = iVar7, -1 < iVar7)) &&\n      ((0 < iVar7 || (uVar1 < uVar4)))))) {\n    sqlite3_str_reset(p);\n    p->accError = '\x12';\n    eError = extraout_DL;\n    if (p->mxAlloc != 0) {\n      sqlite3_str_reset(p);\n      eError = extraout_DL_00;\n    }\n    setStrAccumError(p,eError);\n    return 0;\n  }" if (parenthesized_expression "((-1 < iVar8) &&\n     ((((0 < iVar8 || (uVar1 < uVar6)) && (uVar6 = uVar4, iVar8 = iVar7, -1 < iVar7)) &&\n      ((0 < iVar7 || (uVar1 < uVar4))))))" ( (binary_expression "(-1 < iVar8) &&\n     ((((0 < iVar8 || (uVar1 < uVar6)) && (uVar6 = uVar4, iVar8 = iVar7, -1 < iVar7)) &&\n      ((0 < iVar7 || (uVar1 < uVar4)))))" (parenthesized_expression "(-1 < iVar8)" ( (binary_expression "-1 < iVar8" number_literal < identifier) )) && (parenthesized_expression "((((0 < iVar8 || (uVar1 < uVar6)) && (uVar6 = uVar4, iVar8 = iVar7, -1 < iVar7)) &&\n      ((0 < iVar7 || (uVar1 < uVar4)))))" ( (parenthesized_expression "(((0 < iVar8 || (uVar1 < uVar6)) && (uVar6 = uVar4, iVar8 = iVar7, -1 < iVar7)) &&\n      ((0 < iVar7 || (uVar1 < uVar4))))" ( (binary_expression "((0 < iVar8 || (uVar1 < uVar6)) && (uVar6 = uVar4, iVar8 = iVar7, -1 < iVar7)) &&\n      ((0 < iVar7 || (uVar1 < uVar4)))" (parenthesized_expression "((0 < iVar8 || (uVar1 < uVar6)) && (uVar6 = uVar4, iVar8 = iVar7, -1 < iVar7))" ( (binary_expression "(0 < iVar8 || (uVar1 < uVar6)) && (uVar6 = uVar4, iVar8 = iVar7, -1 < iVar7)" (parenthesized_expression "(0 < iVar8 || (uVar1 < uVar6))" ( (binary_expression "0 < iVar8 || (uVar1 < uVar6)" (binary_expression "0 < iVar8" number_literal < identifier) || (parenthesized_expression "(uVar1 < uVar6)" ( (binary_expression "uVar1 < uVar6" identifier < identifier) ))) )) && (parenthesized_expression "(uVar6 = uVar4, iVar8 = iVar7, -1 < iVar7)" ( (comma_expression "uVar6 = uVar4, iVar8 = iVar7, -1 < iVar7" (assignment_expression "uVar6 = uVar4" identifier = identifier) , (comma_expression "iVar8 = iVar7, -1 < iVar7" (assignment_expression "iVar8 = iVar7" identifier = identifier) , (binary_expression "-1 < iVar7" number_literal < identifier))) ))) )) && (parenthesized_expression "((0 < iVar7 || (uVar1 < uVar4)))" ( (parenthesized_expression "(0 < iVar7 || (uVar1 < uVar4))" ( (binary_expression "0 < iVar7 || (uVar1 < uVar4)" (binary_expression "0 < iVar7" number_literal < identifier) || (parenthesized_expression "(uVar1 < uVar4)" ( (binary_expression "uVar1 < uVar4" identifier < identifier) ))) )) ))) )) ))) )) (compound_statement "{\n    sqlite3_str_reset(p);\n    p->accError = '\x12';\n    eError = extraout_DL;\n    if (p->mxAlloc != 0) {\n      sqlite3_str_reset(p);\n      eError = extraout_DL_00;\n    }\n    setStrAccumError(p,eError);\n    return 0;\n  }" { (expression_statement "sqlite3_str_reset(p);" (call_expression "sqlite3_str_reset(p)" identifier (argument_list "(p)" ( identifier ))) ;) (expression_statement "p->accError = '\x12';" (assignment_expression "p->accError = '\x12'" (field_expression "p->accError" identifier -> field_identifier) = (char_literal "'\x12'" ' escape_sequence ')) ;) (expression_statement "eError = extraout_DL;" (assignment_expression "eError = extraout_DL" identifier = identifier) ;) (if_statement "if (p->mxAlloc != 0) {\n      sqlite3_str_reset(p);\n      eError = extraout_DL_00;\n    }" if (parenthesized_expression "(p->mxAlloc != 0)" ( (binary_expression "p->mxAlloc != 0" (field_expression "p->mxAlloc" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      sqlite3_str_reset(p);\n      eError = extraout_DL_00;\n    }" { (expression_statement "sqlite3_str_reset(p);" (call_expression "sqlite3_str_reset(p)" identifier (argument_list "(p)" ( identifier ))) ;) (expression_statement "eError = extraout_DL_00;" (assignment_expression "eError = extraout_DL_00" identifier = identifier) ;) })) (expression_statement "setStrAccumError(p,eError);" (call_expression "setStrAccumError(p,eError)" identifier (argument_list "(p,eError)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "p->nAlloc = uVar6;" (assignment_expression "p->nAlloc = uVar6" (field_expression "p->nAlloc" identifier -> field_identifier) = identifier) ;) (if_statement "if (p->db == (sqlite3 *)0x0) {\n    __dest = (char *)sqlite3Realloc(local_20,CONCAT44(iVar8,uVar6));\n  }\n  else {\n    __dest = (char *)sqlite3DbRealloc(p->db,local_20,(ulonglong)uVar6);\n  }" if (parenthesized_expression "(p->db == (sqlite3 *)0x0)" ( (binary_expression "p->db == (sqlite3 *)0x0" (field_expression "p->db" identifier -> field_identifier) == (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    __dest = (char *)sqlite3Realloc(local_20,CONCAT44(iVar8,uVar6));\n  }" { (expression_statement "__dest = (char *)sqlite3Realloc(local_20,CONCAT44(iVar8,uVar6));" (assignment_expression "__dest = (char *)sqlite3Realloc(local_20,CONCAT44(iVar8,uVar6))" identifier = (cast_expression "(char *)sqlite3Realloc(local_20,CONCAT44(iVar8,uVar6))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3Realloc(local_20,CONCAT44(iVar8,uVar6))" identifier (argument_list "(local_20,CONCAT44(iVar8,uVar6))" ( identifier , (call_expression "CONCAT44(iVar8,uVar6)" identifier (argument_list "(iVar8,uVar6)" ( identifier , identifier ))) ))))) ;) }) (else_clause "else {\n    __dest = (char *)sqlite3DbRealloc(p->db,local_20,(ulonglong)uVar6);\n  }" else (compound_statement "{\n    __dest = (char *)sqlite3DbRealloc(p->db,local_20,(ulonglong)uVar6);\n  }" { (expression_statement "__dest = (char *)sqlite3DbRealloc(p->db,local_20,(ulonglong)uVar6);" (assignment_expression "__dest = (char *)sqlite3DbRealloc(p->db,local_20,(ulonglong)uVar6)" identifier = (cast_expression "(char *)sqlite3DbRealloc(p->db,local_20,(ulonglong)uVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3DbRealloc(p->db,local_20,(ulonglong)uVar6)" identifier (argument_list "(p->db,local_20,(ulonglong)uVar6)" ( (field_expression "p->db" identifier -> field_identifier) , identifier , (cast_expression "(ulonglong)uVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) ))))) ;) }))) (if_statement "if (__dest == (char *)0x0) {\n    sqlite3_str_reset(p);\n    p->accError = '\a';\n    if (p->mxAlloc == 0) {\n      return 0;\n    }\n    iVar10 = 0;\n    sqlite3_str_reset(p);\n    return iVar10;\n  }" if (parenthesized_expression "(__dest == (char *)0x0)" ( (binary_expression "__dest == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sqlite3_str_reset(p);\n    p->accError = '\a';\n    if (p->mxAlloc == 0) {\n      return 0;\n    }\n    iVar10 = 0;\n    sqlite3_str_reset(p);\n    return iVar10;\n  }" { (expression_statement "sqlite3_str_reset(p);" (call_expression "sqlite3_str_reset(p)" identifier (argument_list "(p)" ( identifier ))) ;) (expression_statement "p->accError = '\a';" (assignment_expression "p->accError = '\a'" (field_expression "p->accError" identifier -> field_identifier) = (char_literal "'\a'" ' escape_sequence ')) ;) (if_statement "if (p->mxAlloc == 0) {\n      return 0;\n    }" if (parenthesized_expression "(p->mxAlloc == 0)" ( (binary_expression "p->mxAlloc == 0" (field_expression "p->mxAlloc" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "sqlite3_str_reset(p);" (call_expression "sqlite3_str_reset(p)" identifier (argument_list "(p)" ( identifier ))) ;) (return_statement "return iVar10;" return identifier ;) })) (if_statement "if (((p->printfFlags & 4) == 0) && (p->nChar != 0)) {\n    memcpy(__dest,p->zText,p->nChar);\n  }" if (parenthesized_expression "(((p->printfFlags & 4) == 0) && (p->nChar != 0))" ( (binary_expression "((p->printfFlags & 4) == 0) && (p->nChar != 0)" (parenthesized_expression "((p->printfFlags & 4) == 0)" ( (binary_expression "(p->printfFlags & 4) == 0" (parenthesized_expression "(p->printfFlags & 4)" ( (binary_expression "p->printfFlags & 4" (field_expression "p->printfFlags" identifier -> field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(p->nChar != 0)" ( (binary_expression "p->nChar != 0" (field_expression "p->nChar" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n    memcpy(__dest,p->zText,p->nChar);\n  }" { (expression_statement "memcpy(__dest,p->zText,p->nChar);" (call_expression "memcpy(__dest,p->zText,p->nChar)" identifier (argument_list "(__dest,p->zText,p->nChar)" ( identifier , (field_expression "p->zText" identifier -> field_identifier) , (field_expression "p->nChar" identifier -> field_identifier) ))) ;) })) (expression_statement "psVar3 = p->db;" (assignment_expression "psVar3 = p->db" identifier = (field_expression "p->db" identifier -> field_identifier)) ;) (expression_statement "p->zText = __dest;" (assignment_expression "p->zText = __dest" (field_expression "p->zText" identifier -> field_identifier) = identifier) ;) (if_statement "if ((psVar3 != (sqlite3 *)0x0) && (__dest < (psVar3->lookaside).pEnd)) {\n    uVar5 = 0x80;\n    if ((psVar3->lookaside).pMiddle <= __dest) goto LAB_000302ff;\n    if ((psVar3->lookaside).pStart <= __dest) {\n      uVar5 = (u32)(psVar3->lookaside).szTrue;\n      goto LAB_000302ff;\n    }\n  }" if (parenthesized_expression "((psVar3 != (sqlite3 *)0x0) && (__dest < (psVar3->lookaside).pEnd))" ( (binary_expression "(psVar3 != (sqlite3 *)0x0) && (__dest < (psVar3->lookaside).pEnd)" (parenthesized_expression "(psVar3 != (sqlite3 *)0x0)" ( (binary_expression "psVar3 != (sqlite3 *)0x0" identifier != (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(__dest < (psVar3->lookaside).pEnd)" ( (binary_expression "__dest < (psVar3->lookaside).pEnd" identifier < (field_expression "(psVar3->lookaside).pEnd" (parenthesized_expression "(psVar3->lookaside)" ( (field_expression "psVar3->lookaside" identifier -> field_identifier) )) . field_identifier)) ))) )) (compound_statement "{\n    uVar5 = 0x80;\n    if ((psVar3->lookaside).pMiddle <= __dest) goto LAB_000302ff;\n    if ((psVar3->lookaside).pStart <= __dest) {\n      uVar5 = (u32)(psVar3->lookaside).szTrue;\n      goto LAB_000302ff;\n    }\n  }" { (expression_statement "uVar5 = 0x80;" (assignment_expression "uVar5 = 0x80" identifier = number_literal) ;) (if_statement "if ((psVar3->lookaside).pMiddle <= __dest) goto LAB_000302ff;" if (parenthesized_expression "((psVar3->lookaside).pMiddle <= __dest)" ( (binary_expression "(psVar3->lookaside).pMiddle <= __dest" (field_expression "(psVar3->lookaside).pMiddle" (parenthesized_expression "(psVar3->lookaside)" ( (field_expression "psVar3->lookaside" identifier -> field_identifier) )) . field_identifier) <= identifier) )) (goto_statement "goto LAB_000302ff;" goto statement_identifier ;)) (if_statement "if ((psVar3->lookaside).pStart <= __dest) {\n      uVar5 = (u32)(psVar3->lookaside).szTrue;\n      goto LAB_000302ff;\n    }" if (parenthesized_expression "((psVar3->lookaside).pStart <= __dest)" ( (binary_expression "(psVar3->lookaside).pStart <= __dest" (field_expression "(psVar3->lookaside).pStart" (parenthesized_expression "(psVar3->lookaside)" ( (field_expression "psVar3->lookaside" identifier -> field_identifier) )) . field_identifier) <= identifier) )) (compound_statement "{\n      uVar5 = (u32)(psVar3->lookaside).szTrue;\n      goto LAB_000302ff;\n    }" { (expression_statement "uVar5 = (u32)(psVar3->lookaside).szTrue;" (assignment_expression "uVar5 = (u32)(psVar3->lookaside).szTrue" identifier = (field_expression "(u32)(psVar3->lookaside).szTrue" (call_expression "(u32)(psVar3->lookaside)" (parenthesized_expression "(u32)" ( identifier )) (argument_list "(psVar3->lookaside)" ( (field_expression "psVar3->lookaside" identifier -> field_identifier) ))) . field_identifier)) ;) (goto_statement "goto LAB_000302ff;" goto statement_identifier ;) })) })) (expression_statement "uVar5 = (**(code **)(\n                      "UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!=\'index\' OR tbl_name=%Q COLLATE nocase)AND   name NOT LIKE \'sqliteX_%%\' ESCAPE \'X\'"\n                      + unaff_EDI + 0xa9))(__dest);" (assignment_expression "uVar5 = (**(code **)(\n                      "UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!=\'index\' OR tbl_name=%Q COLLATE nocase)AND   name NOT LIKE \'sqliteX_%%\' ESCAPE \'X\'"\n                      + unaff_EDI + 0xa9))(__dest)" identifier = (call_expression "(**(code **)(\n                      "UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!=\'index\' OR tbl_name=%Q COLLATE nocase)AND   name NOT LIKE \'sqliteX_%%\' ESCAPE \'X\'"\n                      + unaff_EDI + 0xa9))(__dest)" (parenthesized_expression "(**(code **)(\n                      "UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!=\'index\' OR tbl_name=%Q COLLATE nocase)AND   name NOT LIKE \'sqliteX_%%\' ESCAPE \'X\'"\n                      + unaff_EDI + 0xa9))" ( (pointer_expression "**(code **)(\n                      "UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!=\'index\' OR tbl_name=%Q COLLATE nocase)AND   name NOT LIKE \'sqliteX_%%\' ESCAPE \'X\'"\n                      + unaff_EDI + 0xa9)" * (pointer_expression "*(code **)(\n                      "UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!=\'index\' OR tbl_name=%Q COLLATE nocase)AND   name NOT LIKE \'sqliteX_%%\' ESCAPE \'X\'"\n                      + unaff_EDI + 0xa9)" * (cast_expression "(code **)(\n                      "UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!=\'index\' OR tbl_name=%Q COLLATE nocase)AND   name NOT LIKE \'sqliteX_%%\' ESCAPE \'X\'"\n                      + unaff_EDI + 0xa9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(\n                      "UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!=\'index\' OR tbl_name=%Q COLLATE nocase)AND   name NOT LIKE \'sqliteX_%%\' ESCAPE \'X\'"\n                      + unaff_EDI + 0xa9)" ( (binary_expression ""UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!=\'index\' OR tbl_name=%Q COLLATE nocase)AND   name NOT LIKE \'sqliteX_%%\' ESCAPE \'X\'"\n                      + unaff_EDI + 0xa9" (binary_expression ""UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!=\'index\' OR tbl_name=%Q COLLATE nocase)AND   name NOT LIKE \'sqliteX_%%\' ESCAPE \'X\'"\n                      + unaff_EDI" (string_literal ""UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!=\'index\' OR tbl_name=%Q COLLATE nocase)AND   name NOT LIKE \'sqliteX_%%\' ESCAPE \'X\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") + identifier) + number_literal) ))))) )) (argument_list "(__dest)" ( identifier )))) ;) (labeled_statement "LAB_000302ff:\n  p->printfFlags = p->printfFlags | 4;" statement_identifier : (expression_statement "p->printfFlags = p->printfFlags | 4;" (assignment_expression "p->printfFlags = p->printfFlags | 4" (field_expression "p->printfFlags" identifier -> field_identifier) = (binary_expression "p->printfFlags | 4" (field_expression "p->printfFlags" identifier -> field_identifier) | number_literal)) ;)) (expression_statement "p->nAlloc = uVar5;" (assignment_expression "p->nAlloc = uVar5" (field_expression "p->nAlloc" identifier -> field_identifier) = identifier) ;) (return_statement "return iVar10;" return identifier ;) })))
(translation_unit "int __regparm3 FUN_00030250(int *param_1)\n\n{\n  uint uVar1;\n  uint uVar2;\n  void *__dest;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int unaff_EDI;\n  char *pcVar8;\n  undefined8 uVar9;\n  undefined4 uVar10;\n  \n  uVar9 = FUN_000a94ff();\n  iVar5 = (int)((ulonglong)uVar9 >> 0x20);\n  iVar7 = (int)uVar9;\n  pcVar8 = "index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI + 0x45;\n  uVar3 = *(uint *)(iVar7 + 0xc);\n  if (uVar3 == 0) {\n    *(undefined1 *)(iVar7 + 0x14) = 0x12;\n    FUN_00025520();\n    return (param_1[2] + -1) - param_1[4];\n  }\n  uVar10 = 0;\n  if ((*(byte *)(iVar7 + 0x15) & 4) != 0) {\n    uVar10 = *(undefined4 *)(iVar7 + 4);\n  }\n  uVar1 = param_1[4];\n  uVar4 = iVar5 + 1;\n  uVar2 = uVar4 + uVar1;\n  iVar6 = ((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1);\n  uVar4 = uVar1 + uVar2;\n  iVar7 = iVar6 + (uint)CARRY4(uVar1,uVar2);\n  if ((-1 < iVar7) &&\n     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))))) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 0x12;\n    if (param_1[3] != 0) {\n      sqlite3_str_reset(param_1);\n    }\n    FUN_00025520();\n    return 0;\n  }\n  param_1[2] = uVar4;\n  if (*param_1 == 0) {\n    __dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);\n  }\n  else {\n    __dest = (void *)FUN_0002f530(uVar4,0);\n  }\n  if (__dest == (void *)0x0) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 7;\n    if (param_1[3] == 0) {\n      return 0;\n    }\n    iVar7 = 0;\n    sqlite3_str_reset(param_1);\n    return iVar7;\n  }\n  if (((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0)) {\n    memcpy(__dest,(void *)param_1[1],param_1[4]);\n  }\n  iVar7 = *param_1;\n  param_1[1] = (int)__dest;\n  if ((iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144))) {\n    uVar3 = 0x80;\n    if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;\n    if (*(void **)(iVar7 + 0x140) <= __dest) {\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }\n  }\n  uVar3 = (**(code **)(pcVar8 + 0x38c))(__dest);\nLAB_000302ff:\n  *(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4;\n  param_1[2] = uVar3;\n  return iVar5;\n}\n\n" (function_definition "int __regparm3 FUN_00030250(int *param_1)\n\n{\n  uint uVar1;\n  uint uVar2;\n  void *__dest;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int unaff_EDI;\n  char *pcVar8;\n  undefined8 uVar9;\n  undefined4 uVar10;\n  \n  uVar9 = FUN_000a94ff();\n  iVar5 = (int)((ulonglong)uVar9 >> 0x20);\n  iVar7 = (int)uVar9;\n  pcVar8 = "index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI + 0x45;\n  uVar3 = *(uint *)(iVar7 + 0xc);\n  if (uVar3 == 0) {\n    *(undefined1 *)(iVar7 + 0x14) = 0x12;\n    FUN_00025520();\n    return (param_1[2] + -1) - param_1[4];\n  }\n  uVar10 = 0;\n  if ((*(byte *)(iVar7 + 0x15) & 4) != 0) {\n    uVar10 = *(undefined4 *)(iVar7 + 4);\n  }\n  uVar1 = param_1[4];\n  uVar4 = iVar5 + 1;\n  uVar2 = uVar4 + uVar1;\n  iVar6 = ((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1);\n  uVar4 = uVar1 + uVar2;\n  iVar7 = iVar6 + (uint)CARRY4(uVar1,uVar2);\n  if ((-1 < iVar7) &&\n     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))))) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 0x12;\n    if (param_1[3] != 0) {\n      sqlite3_str_reset(param_1);\n    }\n    FUN_00025520();\n    return 0;\n  }\n  param_1[2] = uVar4;\n  if (*param_1 == 0) {\n    __dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);\n  }\n  else {\n    __dest = (void *)FUN_0002f530(uVar4,0);\n  }\n  if (__dest == (void *)0x0) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 7;\n    if (param_1[3] == 0) {\n      return 0;\n    }\n    iVar7 = 0;\n    sqlite3_str_reset(param_1);\n    return iVar7;\n  }\n  if (((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0)) {\n    memcpy(__dest,(void *)param_1[1],param_1[4]);\n  }\n  iVar7 = *param_1;\n  param_1[1] = (int)__dest;\n  if ((iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144))) {\n    uVar3 = 0x80;\n    if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;\n    if (*(void **)(iVar7 + 0x140) <= __dest) {\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }\n  }\n  uVar3 = (**(code **)(pcVar8 + 0x38c))(__dest);\nLAB_000302ff:\n  *(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4;\n  param_1[2] = uVar3;\n  return iVar5;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00030250(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  void *__dest;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int unaff_EDI;\n  char *pcVar8;\n  undefined8 uVar9;\n  undefined4 uVar10;\n  \n  uVar9 = FUN_000a94ff();\n  iVar5 = (int)((ulonglong)uVar9 >> 0x20);\n  iVar7 = (int)uVar9;\n  pcVar8 = "index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI + 0x45;\n  uVar3 = *(uint *)(iVar7 + 0xc);\n  if (uVar3 == 0) {\n    *(undefined1 *)(iVar7 + 0x14) = 0x12;\n    FUN_00025520();\n    return (param_1[2] + -1) - param_1[4];\n  }\n  uVar10 = 0;\n  if ((*(byte *)(iVar7 + 0x15) & 4) != 0) {\n    uVar10 = *(undefined4 *)(iVar7 + 4);\n  }\n  uVar1 = param_1[4];\n  uVar4 = iVar5 + 1;\n  uVar2 = uVar4 + uVar1;\n  iVar6 = ((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1);\n  uVar4 = uVar1 + uVar2;\n  iVar7 = iVar6 + (uint)CARRY4(uVar1,uVar2);\n  if ((-1 < iVar7) &&\n     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))))) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 0x12;\n    if (param_1[3] != 0) {\n      sqlite3_str_reset(param_1);\n    }\n    FUN_00025520();\n    return 0;\n  }\n  param_1[2] = uVar4;\n  if (*param_1 == 0) {\n    __dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);\n  }\n  else {\n    __dest = (void *)FUN_0002f530(uVar4,0);\n  }\n  if (__dest == (void *)0x0) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 7;\n    if (param_1[3] == 0) {\n      return 0;\n    }\n    iVar7 = 0;\n    sqlite3_str_reset(param_1);\n    return iVar7;\n  }\n  if (((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0)) {\n    memcpy(__dest,(void *)param_1[1],param_1[4]);\n  }\n  iVar7 = *param_1;\n  param_1[1] = (int)__dest;\n  if ((iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144))) {\n    uVar3 = 0x80;\n    if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;\n    if (*(void **)(iVar7 + 0x140) <= __dest) {\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }\n  }\n  uVar3 = (**(code **)(pcVar8 + 0x38c))(__dest);\nLAB_000302ff:\n  *(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4;\n  param_1[2] = uVar3;\n  return iVar5;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (expression_statement "uVar9 = FUN_000a94ff();" (assignment_expression "uVar9 = FUN_000a94ff()" identifier = (call_expression "FUN_000a94ff()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar5 = (int)((ulonglong)uVar9 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)uVar9 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar9 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar9 >> 0x20)" ( (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar7 = (int)uVar9;" (assignment_expression "iVar7 = (int)uVar9" identifier = (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar8 = "index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI + 0x45;" (assignment_expression "pcVar8 = "index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI + 0x45" identifier = (binary_expression ""index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI + 0x45" (binary_expression ""index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI" (string_literal ""index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped"" " string_content ") + identifier) + number_literal)) ;) (expression_statement "uVar3 = *(uint *)(iVar7 + 0xc);" (assignment_expression "uVar3 = *(uint *)(iVar7 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar7 + 0xc)" * (cast_expression "(uint *)(iVar7 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 == 0) {\n    *(undefined1 *)(iVar7 + 0x14) = 0x12;\n    FUN_00025520();\n    return (param_1[2] + -1) - param_1[4];\n  }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined1 *)(iVar7 + 0x14) = 0x12;\n    FUN_00025520();\n    return (param_1[2] + -1) - param_1[4];\n  }" { (expression_statement "*(undefined1 *)(iVar7 + 0x14) = 0x12;" (assignment_expression "*(undefined1 *)(iVar7 + 0x14) = 0x12" (pointer_expression "*(undefined1 *)(iVar7 + 0x14)" * (cast_expression "(undefined1 *)(iVar7 + 0x14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00025520();" (call_expression "FUN_00025520()" identifier (argument_list "()" ( ))) ;) (return_statement "return (param_1[2] + -1) - param_1[4];" return (binary_expression "(param_1[2] + -1) - param_1[4]" (parenthesized_expression "(param_1[2] + -1)" ( (binary_expression "param_1[2] + -1" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )) - (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) })) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if ((*(byte *)(iVar7 + 0x15) & 4) != 0) {\n    uVar10 = *(undefined4 *)(iVar7 + 4);\n  }" if (parenthesized_expression "((*(byte *)(iVar7 + 0x15) & 4) != 0)" ( (binary_expression "(*(byte *)(iVar7 + 0x15) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x15) & 4)" ( (binary_expression "*(byte *)(iVar7 + 0x15) & 4" (pointer_expression "*(byte *)(iVar7 + 0x15)" * (cast_expression "(byte *)(iVar7 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x15)" ( (binary_expression "iVar7 + 0x15" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar10 = *(undefined4 *)(iVar7 + 4);\n  }" { (expression_statement "uVar10 = *(undefined4 *)(iVar7 + 4);" (assignment_expression "uVar10 = *(undefined4 *)(iVar7 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) })) (expression_statement "uVar1 = param_1[4];" (assignment_expression "uVar1 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = iVar5 + 1;" (assignment_expression "uVar4 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar2 = uVar4 + uVar1;" (assignment_expression "uVar2 = uVar4 + uVar1" identifier = (binary_expression "uVar4 + uVar1" identifier + identifier)) ;) (expression_statement "iVar6 = ((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1);" (assignment_expression "iVar6 = ((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1)" identifier = (binary_expression "((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1)" (parenthesized_expression "((int)uVar4 >> 0x1f)" ( (binary_expression "(int)uVar4 >> 0x1f" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (cast_expression "(uint)CARRY4(uVar4,uVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar4,uVar1)" identifier (argument_list "(uVar4,uVar1)" ( identifier , identifier )))))) ;) (expression_statement "uVar4 = uVar1 + uVar2;" (assignment_expression "uVar4 = uVar1 + uVar2" identifier = (binary_expression "uVar1 + uVar2" identifier + identifier)) ;) (expression_statement "iVar7 = iVar6 + (uint)CARRY4(uVar1,uVar2);" (assignment_expression "iVar7 = iVar6 + (uint)CARRY4(uVar1,uVar2)" identifier = (binary_expression "iVar6 + (uint)CARRY4(uVar1,uVar2)" identifier + (cast_expression "(uint)CARRY4(uVar1,uVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar1,uVar2)" identifier (argument_list "(uVar1,uVar2)" ( identifier , identifier )))))) ;) (if_statement "if ((-1 < iVar7) &&\n     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))))) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 0x12;\n    if (param_1[3] != 0) {\n      sqlite3_str_reset(param_1);\n    }\n    FUN_00025520();\n    return 0;\n  }" if (parenthesized_expression "((-1 < iVar7) &&\n     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2))))))" ( (binary_expression "(-1 < iVar7) &&\n     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))))" (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) )) && (parenthesized_expression "((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))))" ( (parenthesized_expression "(((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2))))" ( (binary_expression "((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))" (parenthesized_expression "((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6))" ( (binary_expression "(0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)" (parenthesized_expression "(0 < iVar7 || (uVar3 < uVar4))" ( (binary_expression "0 < iVar7 || (uVar3 < uVar4)" (binary_expression "0 < iVar7" number_literal < identifier) || (parenthesized_expression "(uVar3 < uVar4)" ( (binary_expression "uVar3 < uVar4" identifier < identifier) ))) )) && (parenthesized_expression "(uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)" ( (comma_expression "uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6" (assignment_expression "uVar4 = uVar2" identifier = identifier) , (comma_expression "iVar7 = iVar6, -1 < iVar6" (assignment_expression "iVar7 = iVar6" identifier = identifier) , (binary_expression "-1 < iVar6" number_literal < identifier))) ))) )) && (parenthesized_expression "((0 < iVar6 || (uVar3 < uVar2)))" ( (parenthesized_expression "(0 < iVar6 || (uVar3 < uVar2))" ( (binary_expression "0 < iVar6 || (uVar3 < uVar2)" (binary_expression "0 < iVar6" number_literal < identifier) || (parenthesized_expression "(uVar3 < uVar2)" ( (binary_expression "uVar3 < uVar2" identifier < identifier) ))) )) ))) )) ))) )) (compound_statement "{\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 0x12;\n    if (param_1[3] != 0) {\n      sqlite3_str_reset(param_1);\n    }\n    FUN_00025520();\n    return 0;\n  }" { (expression_statement "sqlite3_str_reset(param_1);" (call_expression "sqlite3_str_reset(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "*(undefined1 *)(param_1 + 5) = 0x12;" (assignment_expression "*(undefined1 *)(param_1 + 5) = 0x12" (pointer_expression "*(undefined1 *)(param_1 + 5)" * (cast_expression "(undefined1 *)(param_1 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (param_1[3] != 0) {\n      sqlite3_str_reset(param_1);\n    }" if (parenthesized_expression "(param_1[3] != 0)" ( (binary_expression "param_1[3] != 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      sqlite3_str_reset(param_1);\n    }" { (expression_statement "sqlite3_str_reset(param_1);" (call_expression "sqlite3_str_reset(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) })) (expression_statement "FUN_00025520();" (call_expression "FUN_00025520()" identifier (argument_list "()" ( ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "param_1[2] = uVar4;" (assignment_expression "param_1[2] = uVar4" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*param_1 == 0) {\n    __dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);\n  }\n  else {\n    __dest = (void *)FUN_0002f530(uVar4,0);\n  }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n    __dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);\n  }" { (expression_statement "__dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);" (assignment_expression "__dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10)" identifier = (cast_expression "(void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10)" identifier (argument_list "(uVar4,iVar7,pcVar8,uVar10)" ( identifier , identifier , identifier , identifier ))))) ;) }) (else_clause "else {\n    __dest = (void *)FUN_0002f530(uVar4,0);\n  }" else (compound_statement "{\n    __dest = (void *)FUN_0002f530(uVar4,0);\n  }" { (expression_statement "__dest = (void *)FUN_0002f530(uVar4,0);" (assignment_expression "__dest = (void *)FUN_0002f530(uVar4,0)" identifier = (cast_expression "(void *)FUN_0002f530(uVar4,0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002f530(uVar4,0)" identifier (argument_list "(uVar4,0)" ( identifier , number_literal ))))) ;) }))) (if_statement "if (__dest == (void *)0x0) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 7;\n    if (param_1[3] == 0) {\n      return 0;\n    }\n    iVar7 = 0;\n    sqlite3_str_reset(param_1);\n    return iVar7;\n  }" if (parenthesized_expression "(__dest == (void *)0x0)" ( (binary_expression "__dest == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 7;\n    if (param_1[3] == 0) {\n      return 0;\n    }\n    iVar7 = 0;\n    sqlite3_str_reset(param_1);\n    return iVar7;\n  }" { (expression_statement "sqlite3_str_reset(param_1);" (call_expression "sqlite3_str_reset(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "*(undefined1 *)(param_1 + 5) = 7;" (assignment_expression "*(undefined1 *)(param_1 + 5) = 7" (pointer_expression "*(undefined1 *)(param_1 + 5)" * (cast_expression "(undefined1 *)(param_1 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (param_1[3] == 0) {\n      return 0;\n    }" if (parenthesized_expression "(param_1[3] == 0)" ( (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "sqlite3_str_reset(param_1);" (call_expression "sqlite3_str_reset(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (return_statement "return iVar7;" return identifier ;) })) (if_statement "if (((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0)) {\n    memcpy(__dest,(void *)param_1[1],param_1[4]);\n  }" if (parenthesized_expression "(((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0))" ( (binary_expression "((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0)" (parenthesized_expression "((*(byte *)((int)param_1 + 0x15) & 4) == 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x15) & 4) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x15) & 4)" ( (binary_expression "*(byte *)((int)param_1 + 0x15) & 4" (pointer_expression "*(byte *)((int)param_1 + 0x15)" * (cast_expression "(byte *)((int)param_1 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x15)" ( (binary_expression "(int)param_1 + 0x15" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(param_1[4] != 0)" ( (binary_expression "param_1[4] != 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n    memcpy(__dest,(void *)param_1[1],param_1[4]);\n  }" { (expression_statement "memcpy(__dest,(void *)param_1[1],param_1[4]);" (call_expression "memcpy(__dest,(void *)param_1[1],param_1[4])" identifier (argument_list "(__dest,(void *)param_1[1],param_1[4])" ( identifier , (cast_expression "(void *)param_1[1]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) , (subscript_expression "param_1[4]" identifier [ number_literal ]) ))) ;) })) (expression_statement "iVar7 = *param_1;" (assignment_expression "iVar7 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_1[1] = (int)__dest;" (assignment_expression "param_1[1] = (int)__dest" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144))) {\n    uVar3 = 0x80;\n    if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;\n    if (*(void **)(iVar7 + 0x140) <= __dest) {\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }\n  }" if (parenthesized_expression "((iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144)))" ( (binary_expression "(iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144))" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(__dest < *(void **)(iVar7 + 0x144))" ( (binary_expression "__dest < *(void **)(iVar7 + 0x144)" identifier < (pointer_expression "*(void **)(iVar7 + 0x144)" * (cast_expression "(void **)(iVar7 + 0x144)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x144)" ( (binary_expression "iVar7 + 0x144" identifier + number_literal) ))))) ))) )) (compound_statement "{\n    uVar3 = 0x80;\n    if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;\n    if (*(void **)(iVar7 + 0x140) <= __dest) {\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }\n  }" { (expression_statement "uVar3 = 0x80;" (assignment_expression "uVar3 = 0x80" identifier = number_literal) ;) (if_statement "if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;" if (parenthesized_expression "(*(void **)(iVar7 + 0x13c) <= __dest)" ( (binary_expression "*(void **)(iVar7 + 0x13c) <= __dest" (pointer_expression "*(void **)(iVar7 + 0x13c)" * (cast_expression "(void **)(iVar7 + 0x13c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x13c)" ( (binary_expression "iVar7 + 0x13c" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_000302ff;" goto statement_identifier ;)) (if_statement "if (*(void **)(iVar7 + 0x140) <= __dest) {\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }" if (parenthesized_expression "(*(void **)(iVar7 + 0x140) <= __dest)" ( (binary_expression "*(void **)(iVar7 + 0x140) <= __dest" (pointer_expression "*(void **)(iVar7 + 0x140)" * (cast_expression "(void **)(iVar7 + 0x140)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x140)" ( (binary_expression "iVar7 + 0x140" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }" { (expression_statement "uVar3 = (uint)*(ushort *)(iVar7 + 0x116);" (assignment_expression "uVar3 = (uint)*(ushort *)(iVar7 + 0x116)" identifier = (binary_expression "(uint)*(ushort *)(iVar7 + 0x116)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar7 + 0x116)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x116)" ( (binary_expression "iVar7 + 0x116" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000302ff;" goto statement_identifier ;) })) })) (expression_statement "uVar3 = (**(code **)(pcVar8 + 0x38c))(__dest);" (assignment_expression "uVar3 = (**(code **)(pcVar8 + 0x38c))(__dest)" identifier = (call_expression "(**(code **)(pcVar8 + 0x38c))(__dest)" (parenthesized_expression "(**(code **)(pcVar8 + 0x38c))" ( (pointer_expression "**(code **)(pcVar8 + 0x38c)" * (pointer_expression "*(code **)(pcVar8 + 0x38c)" * (cast_expression "(code **)(pcVar8 + 0x38c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x38c)" ( (binary_expression "pcVar8 + 0x38c" identifier + number_literal) ))))) )) (argument_list "(__dest)" ( identifier )))) ;) (labeled_statement "LAB_000302ff:\n  *(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4;" statement_identifier : (expression_statement "*(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4;" (assignment_expression "*(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4" (pointer_expression "*(byte *)((int)param_1 + 0x15)" * (cast_expression "(byte *)((int)param_1 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x15)" ( (binary_expression "(int)param_1 + 0x15" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_1 + 0x15) | 4" (pointer_expression "*(byte *)((int)param_1 + 0x15)" * (cast_expression "(byte *)((int)param_1 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x15)" ( (binary_expression "(int)param_1 + 0x15" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;)) (expression_statement "param_1[2] = uVar3;" (assignment_expression "param_1[2] = uVar3" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (return_statement "return iVar5;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (string_literal " string_content ") + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )) - (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT < IDENT) || (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < IDENT))) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression LIT < IDENT) || (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (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 (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (subscript_expression IDENT [ LIT ]) ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) | LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return IDENT ;) })))
(function_definition "int __regparm3 FUN_00030250(int *param_1)\n\n{\n  uint uVar1;\n  uint uVar2;\n  void *__dest;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int unaff_EDI;\n  char *pcVar8;\n  undefined8 uVar9;\n  undefined4 uVar10;\n  \n  uVar9 = FUN_000a94ff();\n  iVar5 = (int)((ulonglong)uVar9 >> 0x20);\n  iVar7 = (int)uVar9;\n  pcVar8 = "index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI + 0x45;\n  uVar3 = *(uint *)(iVar7 + 0xc);\n  if (uVar3 == 0) {\n    *(undefined1 *)(iVar7 + 0x14) = 0x12;\n    FUN_00025520();\n    return (param_1[2] + -1) - param_1[4];\n  }\n  uVar10 = 0;\n  if ((*(byte *)(iVar7 + 0x15) & 4) != 0) {\n    uVar10 = *(undefined4 *)(iVar7 + 4);\n  }\n  uVar1 = param_1[4];\n  uVar4 = iVar5 + 1;\n  uVar2 = uVar4 + uVar1;\n  iVar6 = ((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1);\n  uVar4 = uVar1 + uVar2;\n  iVar7 = iVar6 + (uint)CARRY4(uVar1,uVar2);\n  if ((-1 < iVar7) &&\n     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))))) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 0x12;\n    if (param_1[3] != 0) {\n      sqlite3_str_reset(param_1);\n    }\n    FUN_00025520();\n    return 0;\n  }\n  param_1[2] = uVar4;\n  if (*param_1 == 0) {\n    __dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);\n  }\n  else {\n    __dest = (void *)FUN_0002f530(uVar4,0);\n  }\n  if (__dest == (void *)0x0) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 7;\n    if (param_1[3] == 0) {\n      return 0;\n    }\n    iVar7 = 0;\n    sqlite3_str_reset(param_1);\n    return iVar7;\n  }\n  if (((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0)) {\n    memcpy(__dest,(void *)param_1[1],param_1[4]);\n  }\n  iVar7 = *param_1;\n  param_1[1] = (int)__dest;\n  if ((iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144))) {\n    uVar3 = 0x80;\n    if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;\n    if (*(void **)(iVar7 + 0x140) <= __dest) {\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }\n  }\n  uVar3 = (**(code **)(pcVar8 + 0x38c))(__dest);\nLAB_000302ff:\n  *(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4;\n  param_1[2] = uVar3;\n  return iVar5;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00030250(int *param_1)" (identifier "FUN_00030250") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  void *__dest;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int unaff_EDI;\n  char *pcVar8;\n  undefined8 uVar9;\n  undefined4 uVar10;\n  \n  uVar9 = FUN_000a94ff();\n  iVar5 = (int)((ulonglong)uVar9 >> 0x20);\n  iVar7 = (int)uVar9;\n  pcVar8 = "index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI + 0x45;\n  uVar3 = *(uint *)(iVar7 + 0xc);\n  if (uVar3 == 0) {\n    *(undefined1 *)(iVar7 + 0x14) = 0x12;\n    FUN_00025520();\n    return (param_1[2] + -1) - param_1[4];\n  }\n  uVar10 = 0;\n  if ((*(byte *)(iVar7 + 0x15) & 4) != 0) {\n    uVar10 = *(undefined4 *)(iVar7 + 4);\n  }\n  uVar1 = param_1[4];\n  uVar4 = iVar5 + 1;\n  uVar2 = uVar4 + uVar1;\n  iVar6 = ((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1);\n  uVar4 = uVar1 + uVar2;\n  iVar7 = iVar6 + (uint)CARRY4(uVar1,uVar2);\n  if ((-1 < iVar7) &&\n     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))))) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 0x12;\n    if (param_1[3] != 0) {\n      sqlite3_str_reset(param_1);\n    }\n    FUN_00025520();\n    return 0;\n  }\n  param_1[2] = uVar4;\n  if (*param_1 == 0) {\n    __dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);\n  }\n  else {\n    __dest = (void *)FUN_0002f530(uVar4,0);\n  }\n  if (__dest == (void *)0x0) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 7;\n    if (param_1[3] == 0) {\n      return 0;\n    }\n    iVar7 = 0;\n    sqlite3_str_reset(param_1);\n    return iVar7;\n  }\n  if (((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0)) {\n    memcpy(__dest,(void *)param_1[1],param_1[4]);\n  }\n  iVar7 = *param_1;\n  param_1[1] = (int)__dest;\n  if ((iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144))) {\n    uVar3 = 0x80;\n    if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;\n    if (*(void **)(iVar7 + 0x140) <= __dest) {\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }\n  }\n  uVar3 = (**(code **)(pcVar8 + 0x38c))(__dest);\nLAB_000302ff:\n  *(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4;\n  param_1[2] = uVar3;\n  return iVar5;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "void *__dest;" (primitive_type "void") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "undefined8 uVar9;" (type_identifier "undefined8") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (expression_statement "uVar9 = FUN_000a94ff();" (assignment_expression "uVar9 = FUN_000a94ff()" (identifier "uVar9") (= "=") (call_expression "FUN_000a94ff()" (identifier "FUN_000a94ff") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar5 = (int)((ulonglong)uVar9 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)uVar9 >> 0x20)" (identifier "iVar5") (= "=") (cast_expression "(int)((ulonglong)uVar9 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar9 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar9 >> 0x20" (cast_expression "(ulonglong)uVar9" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar9")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iVar7 = (int)uVar9;" (assignment_expression "iVar7 = (int)uVar9" (identifier "iVar7") (= "=") (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9"))) (; ";")) (expression_statement "pcVar8 = "index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI + 0x45;" (assignment_expression "pcVar8 = "index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI + 0x45" (identifier "pcVar8") (= "=") (binary_expression ""index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI + 0x45" (binary_expression ""index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +\n           unaff_EDI" (string_literal ""index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped"" (" """) (string_content "index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped") (" """)) (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "0x45"))) (; ";")) (expression_statement "uVar3 = *(uint *)(iVar7 + 0xc);" (assignment_expression "uVar3 = *(uint *)(iVar7 + 0xc)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(iVar7 + 0xc)" (* "*") (cast_expression "(uint *)(iVar7 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (uVar3 == 0) {\n    *(undefined1 *)(iVar7 + 0x14) = 0x12;\n    FUN_00025520();\n    return (param_1[2] + -1) - param_1[4];\n  }" (if "if") (parenthesized_expression "(uVar3 == 0)" (( "(") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined1 *)(iVar7 + 0x14) = 0x12;\n    FUN_00025520();\n    return (param_1[2] + -1) - param_1[4];\n  }" ({ "{") (expression_statement "*(undefined1 *)(iVar7 + 0x14) = 0x12;" (assignment_expression "*(undefined1 *)(iVar7 + 0x14) = 0x12" (pointer_expression "*(undefined1 *)(iVar7 + 0x14)" (* "*") (cast_expression "(undefined1 *)(iVar7 + 0x14)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0x12")) (; ";")) (expression_statement "FUN_00025520();" (call_expression "FUN_00025520()" (identifier "FUN_00025520") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return (param_1[2] + -1) - param_1[4];" (return "return") (binary_expression "(param_1[2] + -1) - param_1[4]" (parenthesized_expression "(param_1[2] + -1)" (( "(") (binary_expression "param_1[2] + -1" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "-1")) () ")")) (- "-") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (} "}"))) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((*(byte *)(iVar7 + 0x15) & 4) != 0) {\n    uVar10 = *(undefined4 *)(iVar7 + 4);\n  }" (if "if") (parenthesized_expression "((*(byte *)(iVar7 + 0x15) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(iVar7 + 0x15) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x15) & 4)" (( "(") (binary_expression "*(byte *)(iVar7 + 0x15) & 4" (pointer_expression "*(byte *)(iVar7 + 0x15)" (* "*") (cast_expression "(byte *)(iVar7 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x15)" (( "(") (binary_expression "iVar7 + 0x15" (identifier "iVar7") (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar10 = *(undefined4 *)(iVar7 + 4);\n  }" ({ "{") (expression_statement "uVar10 = *(undefined4 *)(iVar7 + 4);" (assignment_expression "uVar10 = *(undefined4 *)(iVar7 + 4)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(iVar7 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar1 = param_1[4];" (assignment_expression "uVar1 = param_1[4]" (identifier "uVar1") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar4 = iVar5 + 1;" (assignment_expression "uVar4 = iVar5 + 1" (identifier "uVar4") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar2 = uVar4 + uVar1;" (assignment_expression "uVar2 = uVar4 + uVar1" (identifier "uVar2") (= "=") (binary_expression "uVar4 + uVar1" (identifier "uVar4") (+ "+") (identifier "uVar1"))) (; ";")) (expression_statement "iVar6 = ((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1);" (assignment_expression "iVar6 = ((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1)" (identifier "iVar6") (= "=") (binary_expression "((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1)" (parenthesized_expression "((int)uVar4 >> 0x1f)" (( "(") (binary_expression "(int)uVar4 >> 0x1f" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (>> ">>") (number_literal "0x1f")) () ")")) (+ "+") (cast_expression "(uint)CARRY4(uVar4,uVar1)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar4,uVar1)" (identifier "CARRY4") (argument_list "(uVar4,uVar1)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar1") () ")")))))) (; ";")) (expression_statement "uVar4 = uVar1 + uVar2;" (assignment_expression "uVar4 = uVar1 + uVar2" (identifier "uVar4") (= "=") (binary_expression "uVar1 + uVar2" (identifier "uVar1") (+ "+") (identifier "uVar2"))) (; ";")) (expression_statement "iVar7 = iVar6 + (uint)CARRY4(uVar1,uVar2);" (assignment_expression "iVar7 = iVar6 + (uint)CARRY4(uVar1,uVar2)" (identifier "iVar7") (= "=") (binary_expression "iVar6 + (uint)CARRY4(uVar1,uVar2)" (identifier "iVar6") (+ "+") (cast_expression "(uint)CARRY4(uVar1,uVar2)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar1,uVar2)" (identifier "CARRY4") (argument_list "(uVar1,uVar2)" (( "(") (identifier "uVar1") (, ",") (identifier "uVar2") () ")")))))) (; ";")) (if_statement "if ((-1 < iVar7) &&\n     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))))) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 0x12;\n    if (param_1[3] != 0) {\n      sqlite3_str_reset(param_1);\n    }\n    FUN_00025520();\n    return 0;\n  }" (if "if") (parenthesized_expression "((-1 < iVar7) &&\n     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2))))))" (( "(") (binary_expression "(-1 < iVar7) &&\n     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))))" (parenthesized_expression "(-1 < iVar7)" (( "(") (binary_expression "-1 < iVar7" (number_literal "-1") (< "<") (identifier "iVar7")) () ")")) (&& "&&") (parenthesized_expression "((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))))" (( "(") (parenthesized_expression "(((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2))))" (( "(") (binary_expression "((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&\n      ((0 < iVar6 || (uVar3 < uVar2)))" (parenthesized_expression "((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6))" (( "(") (binary_expression "(0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)" (parenthesized_expression "(0 < iVar7 || (uVar3 < uVar4))" (( "(") (binary_expression "0 < iVar7 || (uVar3 < uVar4)" (binary_expression "0 < iVar7" (number_literal "0") (< "<") (identifier "iVar7")) (|| "||") (parenthesized_expression "(uVar3 < uVar4)" (( "(") (binary_expression "uVar3 < uVar4" (identifier "uVar3") (< "<") (identifier "uVar4")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)" (( "(") (comma_expression "uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6" (assignment_expression "uVar4 = uVar2" (identifier "uVar4") (= "=") (identifier "uVar2")) (, ",") (comma_expression "iVar7 = iVar6, -1 < iVar6" (assignment_expression "iVar7 = iVar6" (identifier "iVar7") (= "=") (identifier "iVar6")) (, ",") (binary_expression "-1 < iVar6" (number_literal "-1") (< "<") (identifier "iVar6")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((0 < iVar6 || (uVar3 < uVar2)))" (( "(") (parenthesized_expression "(0 < iVar6 || (uVar3 < uVar2))" (( "(") (binary_expression "0 < iVar6 || (uVar3 < uVar2)" (binary_expression "0 < iVar6" (number_literal "0") (< "<") (identifier "iVar6")) (|| "||") (parenthesized_expression "(uVar3 < uVar2)" (( "(") (binary_expression "uVar3 < uVar2" (identifier "uVar3") (< "<") (identifier "uVar2")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 0x12;\n    if (param_1[3] != 0) {\n      sqlite3_str_reset(param_1);\n    }\n    FUN_00025520();\n    return 0;\n  }" ({ "{") (expression_statement "sqlite3_str_reset(param_1);" (call_expression "sqlite3_str_reset(param_1)" (identifier "sqlite3_str_reset") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 5) = 0x12;" (assignment_expression "*(undefined1 *)(param_1 + 5) = 0x12" (pointer_expression "*(undefined1 *)(param_1 + 5)" (* "*") (cast_expression "(undefined1 *)(param_1 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 5)" (( "(") (binary_expression "param_1 + 5" (identifier "param_1") (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "0x12")) (; ";")) (if_statement "if (param_1[3] != 0) {\n      sqlite3_str_reset(param_1);\n    }" (if "if") (parenthesized_expression "(param_1[3] != 0)" (( "(") (binary_expression "param_1[3] != 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      sqlite3_str_reset(param_1);\n    }" ({ "{") (expression_statement "sqlite3_str_reset(param_1);" (call_expression "sqlite3_str_reset(param_1)" (identifier "sqlite3_str_reset") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00025520();" (call_expression "FUN_00025520()" (identifier "FUN_00025520") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "param_1[2] = uVar4;" (assignment_expression "param_1[2] = uVar4" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (if_statement "if (*param_1 == 0) {\n    __dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);\n  }\n  else {\n    __dest = (void *)FUN_0002f530(uVar4,0);\n  }" (if "if") (parenthesized_expression "(*param_1 == 0)" (( "(") (binary_expression "*param_1 == 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    __dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);\n  }" ({ "{") (expression_statement "__dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);" (assignment_expression "__dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10)" (identifier "__dest") (= "=") (cast_expression "(void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10)" (identifier "FUN_0002cd30") (argument_list "(uVar4,iVar7,pcVar8,uVar10)" (( "(") (identifier "uVar4") (, ",") (identifier "iVar7") (, ",") (identifier "pcVar8") (, ",") (identifier "uVar10") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    __dest = (void *)FUN_0002f530(uVar4,0);\n  }" (else "else") (compound_statement "{\n    __dest = (void *)FUN_0002f530(uVar4,0);\n  }" ({ "{") (expression_statement "__dest = (void *)FUN_0002f530(uVar4,0);" (assignment_expression "__dest = (void *)FUN_0002f530(uVar4,0)" (identifier "__dest") (= "=") (cast_expression "(void *)FUN_0002f530(uVar4,0)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0002f530(uVar4,0)" (identifier "FUN_0002f530") (argument_list "(uVar4,0)" (( "(") (identifier "uVar4") (, ",") (number_literal "0") () ")"))))) (; ";")) (} "}")))) (if_statement "if (__dest == (void *)0x0) {\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 7;\n    if (param_1[3] == 0) {\n      return 0;\n    }\n    iVar7 = 0;\n    sqlite3_str_reset(param_1);\n    return iVar7;\n  }" (if "if") (parenthesized_expression "(__dest == (void *)0x0)" (( "(") (binary_expression "__dest == (void *)0x0" (identifier "__dest") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    sqlite3_str_reset(param_1);\n    *(undefined1 *)(param_1 + 5) = 7;\n    if (param_1[3] == 0) {\n      return 0;\n    }\n    iVar7 = 0;\n    sqlite3_str_reset(param_1);\n    return iVar7;\n  }" ({ "{") (expression_statement "sqlite3_str_reset(param_1);" (call_expression "sqlite3_str_reset(param_1)" (identifier "sqlite3_str_reset") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 5) = 7;" (assignment_expression "*(undefined1 *)(param_1 + 5) = 7" (pointer_expression "*(undefined1 *)(param_1 + 5)" (* "*") (cast_expression "(undefined1 *)(param_1 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 5)" (( "(") (binary_expression "param_1 + 5" (identifier "param_1") (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "7")) (; ";")) (if_statement "if (param_1[3] == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_1[3] == 0)" (( "(") (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "sqlite3_str_reset(param_1);" (call_expression "sqlite3_str_reset(param_1)" (identifier "sqlite3_str_reset") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (return_statement "return iVar7;" (return "return") (identifier "iVar7") (; ";")) (} "}"))) (if_statement "if (((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0)) {\n    memcpy(__dest,(void *)param_1[1],param_1[4]);\n  }" (if "if") (parenthesized_expression "(((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0))" (( "(") (binary_expression "((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0)" (parenthesized_expression "((*(byte *)((int)param_1 + 0x15) & 4) == 0)" (( "(") (binary_expression "(*(byte *)((int)param_1 + 0x15) & 4) == 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x15) & 4)" (( "(") (binary_expression "*(byte *)((int)param_1 + 0x15) & 4" (pointer_expression "*(byte *)((int)param_1 + 0x15)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x15)" (( "(") (binary_expression "(int)param_1 + 0x15" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_1[4] != 0)" (( "(") (binary_expression "param_1[4] != 0" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    memcpy(__dest,(void *)param_1[1],param_1[4]);\n  }" ({ "{") (expression_statement "memcpy(__dest,(void *)param_1[1],param_1[4]);" (call_expression "memcpy(__dest,(void *)param_1[1],param_1[4])" (identifier "memcpy") (argument_list "(__dest,(void *)param_1[1],param_1[4])" (( "(") (identifier "__dest") (, ",") (cast_expression "(void *)param_1[1]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (, ",") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = *param_1;" (assignment_expression "iVar7 = *param_1" (identifier "iVar7") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "param_1[1] = (int)__dest;" (assignment_expression "param_1[1] = (int)__dest" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)__dest" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__dest"))) (; ";")) (if_statement "if ((iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144))) {\n    uVar3 = 0x80;\n    if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;\n    if (*(void **)(iVar7 + 0x140) <= __dest) {\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }\n  }" (if "if") (parenthesized_expression "((iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144)))" (( "(") (binary_expression "(iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144))" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(__dest < *(void **)(iVar7 + 0x144))" (( "(") (binary_expression "__dest < *(void **)(iVar7 + 0x144)" (identifier "__dest") (< "<") (pointer_expression "*(void **)(iVar7 + 0x144)" (* "*") (cast_expression "(void **)(iVar7 + 0x144)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x144)" (( "(") (binary_expression "iVar7 + 0x144" (identifier "iVar7") (+ "+") (number_literal "0x144")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n    uVar3 = 0x80;\n    if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;\n    if (*(void **)(iVar7 + 0x140) <= __dest) {\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }\n  }" ({ "{") (expression_statement "uVar3 = 0x80;" (assignment_expression "uVar3 = 0x80" (identifier "uVar3") (= "=") (number_literal "0x80")) (; ";")) (if_statement "if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;" (if "if") (parenthesized_expression "(*(void **)(iVar7 + 0x13c) <= __dest)" (( "(") (binary_expression "*(void **)(iVar7 + 0x13c) <= __dest" (pointer_expression "*(void **)(iVar7 + 0x13c)" (* "*") (cast_expression "(void **)(iVar7 + 0x13c)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x13c)" (( "(") (binary_expression "iVar7 + 0x13c" (identifier "iVar7") (+ "+") (number_literal "0x13c")) () ")")))) (<= "<=") (identifier "__dest")) () ")")) (goto_statement "goto LAB_000302ff;" (goto "goto") (statement_identifier "LAB_000302ff") (; ";"))) (if_statement "if (*(void **)(iVar7 + 0x140) <= __dest) {\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }" (if "if") (parenthesized_expression "(*(void **)(iVar7 + 0x140) <= __dest)" (( "(") (binary_expression "*(void **)(iVar7 + 0x140) <= __dest" (pointer_expression "*(void **)(iVar7 + 0x140)" (* "*") (cast_expression "(void **)(iVar7 + 0x140)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x140)" (( "(") (binary_expression "iVar7 + 0x140" (identifier "iVar7") (+ "+") (number_literal "0x140")) () ")")))) (<= "<=") (identifier "__dest")) () ")")) (compound_statement "{\n      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);\n      goto LAB_000302ff;\n    }" ({ "{") (expression_statement "uVar3 = (uint)*(ushort *)(iVar7 + 0x116);" (assignment_expression "uVar3 = (uint)*(ushort *)(iVar7 + 0x116)" (identifier "uVar3") (= "=") (binary_expression "(uint)*(ushort *)(iVar7 + 0x116)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(iVar7 + 0x116)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x116)" (( "(") (binary_expression "iVar7 + 0x116" (identifier "iVar7") (+ "+") (number_literal "0x116")) () ")"))))) (; ";")) (goto_statement "goto LAB_000302ff;" (goto "goto") (statement_identifier "LAB_000302ff") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar3 = (**(code **)(pcVar8 + 0x38c))(__dest);" (assignment_expression "uVar3 = (**(code **)(pcVar8 + 0x38c))(__dest)" (identifier "uVar3") (= "=") (call_expression "(**(code **)(pcVar8 + 0x38c))(__dest)" (parenthesized_expression "(**(code **)(pcVar8 + 0x38c))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x38c)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x38c)" (* "*") (cast_expression "(code **)(pcVar8 + 0x38c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x38c)" (( "(") (binary_expression "pcVar8 + 0x38c" (identifier "pcVar8") (+ "+") (number_literal "0x38c")) () ")"))))) () ")")) (argument_list "(__dest)" (( "(") (identifier "__dest") () ")")))) (; ";")) (labeled_statement "LAB_000302ff:\n  *(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4;" (statement_identifier "LAB_000302ff") (: ":") (expression_statement "*(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4;" (assignment_expression "*(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4" (pointer_expression "*(byte *)((int)param_1 + 0x15)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x15)" (( "(") (binary_expression "(int)param_1 + 0x15" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x15")) () ")")))) (= "=") (binary_expression "*(byte *)((int)param_1 + 0x15) | 4" (pointer_expression "*(byte *)((int)param_1 + 0x15)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x15)" (( "(") (binary_expression "(int)param_1 + 0x15" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x15")) () ")")))) (| "|") (number_literal "4"))) (; ";"))) (expression_statement "param_1[2] = uVar3;" (assignment_expression "param_1[2] = uVar3" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}")))

int __regparm3 function_1(type_1 *p,int N)

{
  type_2 var_2;
  type_2 var_6;
  type_3 *var_17;
  type_1 *p_00;
  type_2 var_8;
  char *var_15;
  type_4 uVar5;
  type_2 var_5;
  type_5 extraout_DL;
  type_5 extraout_DL_00;
  type_5 eError;
  int var_9;
  int var_10;
  int var_18;
  type_6 uVar9;
  int var_4;
  char *local_20;
  
  uVar9 = var_1();
  var_4 = (int)((type_7)uVar9 >> 0x20);
  p_00 = (type_1 *)uVar9;
  var_2 = p_00->mxAlloc;
  if (var_2 == 0) {
    p_00->accError = '\x12';
    var_3(p_00,(type_5)((type_7)uVar9 >> 0x20));
    return (p->nAlloc - 1) - p->nChar;
  }
  local_20 = (char *)0x0;
  if ((p_00->printfFlags & 4) != 0) {
    local_20 = p_00->zText;
  }
  var_6 = p->nChar;
  var_5 = var_4 + 1;
  var_8 = var_5 + var_6;
  var_9 = ((int)var_5 >> 0x1f) + (type_2)var_7(var_5,var_6);
  var_5 = var_6 + var_8;
  var_10 = var_9 + (type_2)var_7(var_6,var_8);
  if ((-1 < var_10) &&
     ((((0 < var_10 || (var_2 < var_5)) && (var_5 = var_8, var_10 = var_9, -1 < var_9)) &&
      ((0 < var_9 || (var_2 < var_8)))))) {
    var_11(p);
    p->accError = '\x12';
    eError = extraout_DL;
    if (p->mxAlloc != 0) {
      var_11(p);
      eError = extraout_DL_00;
    }
    var_3(p,eError);
    return 0;
  }
  p->nAlloc = var_5;
  if (p->db == (type_3 *)0x0) {
    var_15 = (char *)var_12(local_20,var_13(var_10,var_5));
  }
  else {
    var_15 = (char *)var_14(p->db,local_20,(type_7)var_5);
  }
  if (var_15 == (char *)0x0) {
    var_11(p);
    p->accError = '\a';
    if (p->mxAlloc == 0) {
      return 0;
    }
    var_4 = 0;
    var_11(p);
    return var_4;
  }
  if (((p->printfFlags & 4) == 0) && (p->nChar != 0)) {
    var_16(var_15,p->zText,p->nChar);
  }
  var_17 = p->db;
  p->zText = var_15;
  if ((var_17 != (type_3 *)0x0) && (var_15 < (var_17->lookaside).pEnd)) {
    uVar5 = 0x80;
    if ((var_17->lookaside).pMiddle <= var_15) goto LAB_000302ff;
    if ((var_17->lookaside).pStart <= var_15) {
      uVar5 = (type_4)(var_17->lookaside).szTrue;
      goto LAB_000302ff;
    }
  }
  uVar5 = (**(type_8 **)(
                      "UPDATE \"%w\".sqlite_master SET sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, %d) WHERE (type!=\'index\' OR tbl_name=%Q COLLATE nocase)AND   name NOT LIKE \'sqliteX_%%\' ESCAPE \'X\'"
                      + var_18 + 0xa9))(var_15);
LAB_000302ff:
  p->printfFlags = p->printfFlags | 4;
  p->nAlloc = uVar5;
  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))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (string_literal (string_content)) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) 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: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (number_literal) right: (identifier))))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_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))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement (identifier)))))

int __regparm3 MASKED(int *param_1)

{
  uint uVar1;
  uint uVar2;
  void *__dest;
  uint uVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int unaff_EDI;
  char *pcVar8;
  undefined8 uVar9;
  undefined4 uVar10;
  
  uVar9 = FUN_000a94ff();
  iVar5 = (int)((ulonglong)uVar9 >> 0x20);
  iVar7 = (int)uVar9;
  pcVar8 = "index associated with UNIQUE or PRIMARY KEY constraint cannot be dropped" +
           unaff_EDI + 0x45;
  uVar3 = *(uint *)(iVar7 + 0xc);
  if (uVar3 == 0) {
    *(undefined1 *)(iVar7 + 0x14) = 0x12;
    FUN_00025520();
    return (param_1[2] + -1) - param_1[4];
  }
  uVar10 = 0;
  if ((*(byte *)(iVar7 + 0x15) & 4) != 0) {
    uVar10 = *(undefined4 *)(iVar7 + 4);
  }
  uVar1 = param_1[4];
  uVar4 = iVar5 + 1;
  uVar2 = uVar4 + uVar1;
  iVar6 = ((int)uVar4 >> 0x1f) + (uint)CARRY4(uVar4,uVar1);
  uVar4 = uVar1 + uVar2;
  iVar7 = iVar6 + (uint)CARRY4(uVar1,uVar2);
  if ((-1 < iVar7) &&
     ((((0 < iVar7 || (uVar3 < uVar4)) && (uVar4 = uVar2, iVar7 = iVar6, -1 < iVar6)) &&
      ((0 < iVar6 || (uVar3 < uVar2)))))) {
    sqlite3_str_reset(param_1);
    *(undefined1 *)(param_1 + 5) = 0x12;
    if (param_1[3] != 0) {
      sqlite3_str_reset(param_1);
    }
    FUN_00025520();
    return 0;
  }
  param_1[2] = uVar4;
  if (*param_1 == 0) {
    __dest = (void *)FUN_0002cd30(uVar4,iVar7,pcVar8,uVar10);
  }
  else {
    __dest = (void *)FUN_0002f530(uVar4,0);
  }
  if (__dest == (void *)0x0) {
    sqlite3_str_reset(param_1);
    *(undefined1 *)(param_1 + 5) = 7;
    if (param_1[3] == 0) {
      return 0;
    }
    iVar7 = 0;
    sqlite3_str_reset(param_1);
    return iVar7;
  }
  if (((*(byte *)((int)param_1 + 0x15) & 4) == 0) && (param_1[4] != 0)) {
    memcpy(__dest,(void *)param_1[1],param_1[4]);
  }
  iVar7 = *param_1;
  param_1[1] = (int)__dest;
  if ((iVar7 != 0) && (__dest < *(void **)(iVar7 + 0x144))) {
    uVar3 = 0x80;
    if (*(void **)(iVar7 + 0x13c) <= __dest) goto LAB_000302ff;
    if (*(void **)(iVar7 + 0x140) <= __dest) {
      uVar3 = (uint)*(ushort *)(iVar7 + 0x116);
      goto LAB_000302ff;
    }
  }
  uVar3 = (**(code **)(pcVar8 + 0x38c))(__dest);
LAB_000302ff:
  *(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 4;
  param_1[2] = uVar3;
  return iVar5;
}

