
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void tryToCloneData(ShellState *p,sqlite3 *newDb,char *zTable)

{
  int i;
  undefined4 *puVar1;
  undefined *puVar2;
  int iVar3;
  char *pcVar4;
  int iVar5;
  int iVar6;
  void *zData;
  uchar *zData_00;
  char *pcVar7;
  uint uVar8;
  int in_GS_OFFSET;
  sqlite_int64 iValue;
  double rValue;
  uint local_58;
  char *local_50;
  char *local_48;
  int local_30;
  sqlite3_stmt *pQuery;
  sqlite3_stmt *pInsert;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x21f39;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  pQuery = (sqlite3_stmt *)0x0;
  pInsert = (sqlite3_stmt *)0x0;
  pcVar7 = zTable;
  if (*zTable == '\0') {
    uVar8 = 0;
  }
  else {
    do {
      pcVar7 = pcVar7 + 1;
    } while (*pcVar7 != '\0');
    uVar8 = (int)pcVar7 - (int)zTable & 0x3fffffff;
  }
  local_48 = sqlite3_mprintf("SELECT * FROM \"%w\"",zTable);
  iVar3 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0);
  if (iVar3 == 0) {
    iVar3 = sqlite3_column_count(pQuery);
    local_50 = (char *)sqlite3_malloc64((longlong)(int)(iVar3 * 3 + uVar8 + 200));
    if (local_50 == (char *)0x0) {
                    /* WARNING: Subroutine does not return */
      shell_out_of_memory();
    }
    sqlite3_snprintf(uVar8 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",zTable);
    pcVar7 = local_50;
    if (*local_50 == '\0') {
      uVar8 = 0;
    }
    else {
      do {
        pcVar7 = pcVar7 + 1;
      } while (*pcVar7 != '\0');
      uVar8 = (int)pcVar7 - (int)local_50 & 0x3fffffff;
      pcVar7 = local_50 + uVar8;
    }
    if (1 < iVar3) {
      pcVar7 = local_50 + uVar8;
      do {
        pcVar4 = pcVar7 + 2;
        pcVar7[0] = ',';
        pcVar7[1] = '?';
        pcVar7 = pcVar4;
      } while (pcVar4 != local_50 + uVar8 + iVar3 * 2 + -2);
      pcVar7 = local_50 + iVar3 * 2 + -2 + uVar8;
    }
    pcVar7[2] = '\0';
    pcVar7[0] = ')';
    pcVar7[1] = ';';
    iVar5 = sqlite3_prepare_v2(newDb,local_50,-1,&pInsert,(char **)0x0);
    puVar2 = PTR_stdout_0017bfe8;
    local_58 = 0;
    local_30 = 2;
    puVar1 = (undefined4 *)PTR_stderr_0017bfd0;
    if (iVar5 == 0) {
      while( true ) {
        while (iVar5 = sqlite3_step(pQuery), iVar5 == 100) {
          iVar5 = 0;
          if (0 < iVar3) {
            do {
              i = iVar5 + 1;
              iVar6 = sqlite3_column_type(pQuery,iVar5);
              switch(iVar6) {
              case 1:
                iValue = sqlite3_column_int64(pQuery,iVar5);
                sqlite3_bind_int64(pInsert,i,iValue);
                break;
              case 2:
                rValue = sqlite3_column_double(pQuery,iVar5);
                sqlite3_bind_double(pInsert,i,rValue);
                break;
              case 3:
                zData_00 = sqlite3_column_text(pQuery,iVar5);
                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);
                break;
              case 4:
                iVar6 = sqlite3_column_bytes(pQuery,iVar5);
                zData = sqlite3_column_blob(pQuery,iVar5);
                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);
                break;
              case 5:
                sqlite3_bind_null(pInsert,i);
              }
              iVar5 = i;
            } while (iVar3 != i);
          }
          iVar5 = sqlite3_step(pInsert);
          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {
            pcVar7 = sqlite3_errmsg(newDb);
            iVar5 = sqlite3_extended_errcode(newDb);
            __fprintf_chk(*puVar1,1,"Error %d: %s\n",iVar5,pcVar7);
          }
          sqlite3_reset(pInsert);
          local_58 = local_58 + 1;
          if (local_58 == (local_58 / 10000) * 10000) {
            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);
            fflush(*(FILE **)puVar2);
          }
        }
        if (iVar5 == 0x65) goto LAB_00022311;
        sqlite3_finalize(pQuery);
        sqlite3_free(local_48);
        local_48 = sqlite3_mprintf("SELECT * FROM \"%w\" ORDER BY rowid DESC;",zTable);
        iVar5 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0);
        if (iVar5 != 0) break;
        if (local_30 == 1) goto LAB_00022311;
        local_30 = 1;
        puVar1 = (undefined4 *)PTR_stderr_0017bfd0;
      }
      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",
                    zTable);
    }
    else {
      pcVar7 = sqlite3_errmsg(newDb);
      iVar3 = sqlite3_extended_errcode(newDb);
      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,
                    local_48);
    }
  }
  else {
    pcVar7 = sqlite3_errmsg(p->db);
    iVar3 = sqlite3_extended_errcode(p->db);
    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,
                  local_48);
    local_50 = (char *)0x0;
  }
LAB_00022311:
  sqlite3_finalize(pQuery);
  sqlite3_finalize(pInsert);
  sqlite3_free(local_48);
  sqlite3_free(local_50);
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_00021f30(undefined4 *param_1,undefined4 param_2,char *param_3)

{
  int iVar1;
  undefined4 *puVar2;
  undefined *puVar3;
  int iVar4;
  int iVar5;
  char *pcVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  char *pcVar9;
  uint uVar10;
  int in_GS_OFFSET;
  uint local_58;
  char *local_50;
  undefined4 local_48;
  int local_30;
  undefined4 local_28;
  undefined4 local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x21f39;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_28 = 0;
  local_24 = 0;
  pcVar9 = param_3;
  if (*param_3 == '\0') {
    uVar10 = 0;
  }
  else {
    do {
      pcVar9 = pcVar9 + 1;
    } while (*pcVar9 != '\0');
    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;
  }
  local_48 = FUN_0008ff90("SELECT * FROM \"%w\"",param_3);
  iVar4 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);
  if (iVar4 == 0) {
    iVar4 = FUN_00039060(local_28);
    iVar5 = iVar4 * 3 + uVar10 + 200;
    local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);
    if (local_50 == (char *)0x0) {
                    /* WARNING: Subroutine does not return */
      FUN_0001f910();
    }
    FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);
    pcVar9 = local_50;
    if (*local_50 == '\0') {
      uVar10 = 0;
    }
    else {
      do {
        pcVar9 = pcVar9 + 1;
      } while (*pcVar9 != '\0');
      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;
      pcVar9 = local_50 + uVar10;
    }
    if (1 < iVar4) {
      pcVar9 = local_50 + uVar10;
      do {
        pcVar6 = pcVar9 + 2;
        pcVar9[0] = ',';
        pcVar9[1] = '?';
        pcVar9 = pcVar6;
      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);
      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;
    }
    pcVar9[2] = '\0';
    pcVar9[0] = ')';
    pcVar9[1] = ';';
    iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);
    puVar3 = PTR_stdout_0017bfe8;
    local_58 = 0;
    local_30 = 2;
    puVar2 = (undefined4 *)PTR_stderr_0017bfd0;
    if (iVar5 == 0) {
      while( true ) {
        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {
          iVar5 = 0;
          if (0 < iVar4) {
            do {
              iVar1 = iVar5 + 1;
              uVar7 = FUN_000562f0(local_28,iVar5);
              switch(uVar7) {
              case 1:
                FUN_000561a0(local_28,iVar5);
                FUN_000739f0(local_24,iVar1);
                break;
              case 2:
                FUN_00056140(local_28,iVar5);
                FUN_00073970(local_24,iVar1);
                break;
              case 3:
                uVar7 = FUN_0006a9b0(local_28,iVar5);
                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);
                break;
              case 4:
                uVar7 = FUN_0006a300(local_28,iVar5);
                uVar8 = FUN_0006a5f0(local_28,iVar5);
                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);
                break;
              case 5:
                FUN_00073a80(local_24,iVar1);
              }
              iVar5 = iVar1;
            } while (iVar4 != iVar1);
          }
          iVar5 = FUN_000ccd70(local_24);
          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {
            uVar7 = FUN_00073210(param_2);
            uVar8 = FUN_00073180(param_2);
            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);
          }
          FUN_000ac730(local_24);
          local_58 = local_58 + 1;
          if (local_58 == (local_58 / 10000) * 10000) {
            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);
            fflush(*(FILE **)puVar3);
          }
        }
        if (iVar5 == 0x65) goto LAB_00022311;
        FUN_000a96f0(local_28);
        FUN_00042800(local_48);
        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);
        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);
        if (iVar5 != 0) break;
        if (local_30 == 1) goto LAB_00022311;
        local_30 = 1;
        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;
      }
      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",
                    param_3);
    }
    else {
      uVar7 = FUN_00073210(param_2);
      uVar8 = FUN_00073180(param_2);
      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,
                    local_48);
    }
  }
  else {
    uVar7 = FUN_00073210(*param_1);
    uVar8 = FUN_00073180(*param_1);
    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48
                 );
    local_50 = (char *)0x0;
  }
LAB_00022311:
  FUN_000a96f0(local_28);
  FUN_000a96f0(local_24);
  FUN_00042800(local_48);
  FUN_00042800(local_50);
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00116110();
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00017230
ADD EBX,0x159eef
SUB ESP,0x4c
MOV EAX,dword ptr [ESP + 0x60]
MOV EBP,dword ptr [ESP + 0x68]
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x64]
MOV dword ptr [ESP + 0x10],EBP
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x3c],EAX
XOR EAX,EAX
CMP byte ptr [EBP],0x0
MOV dword ptr [ESP + 0x34],0x0
MOV dword ptr [ESP + 0x38],0x0
JZ 0x000223ec
ADD EBP,0x1
CMP byte ptr [EBP],0x0
JNZ 0x00021f80
SUB EBP,dword ptr [ESP + 0x10]
AND EBP,0x3fffffff
SUB ESP,0x8
LEA EAX,[EBX + 0xfff9b59e]
PUSH dword ptr [ESP + 0x18]
PUSH EAX
CALL 0x0008ff90
LEA EDI,[ESP + 0x44]
MOV dword ptr [ESP],0x0
MOV dword ptr [ESP + 0x24],EAX
MOV dword ptr [ESP + 0x38],EDI
PUSH EDI
PUSH -0x1
PUSH EAX
MOV EAX,dword ptr [ESP + 0x38]
PUSH dword ptr [EAX]
CALL 0x000e2d60
ADD ESP,0x20
MOV ESI,EAX
TEST EAX,EAX
JNZ 0x00022361
SUB ESP,0xc
ADD EBP,0xc8
PUSH dword ptr [ESP + 0x40]
CALL 0x00039060
MOV EDI,EAX
POP EAX
POP EDX
LEA EAX,[EDI + EDI*0x2]
ADD EAX,EBP
CDQ
PUSH EDX
PUSH EAX
CALL 0x0005d080
MOV dword ptr [ESP + 0x1c],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00022427
LEA EAX,[EBX + 0xfff9da10]
PUSH dword ptr [ESP + 0x10]
PUSH EAX
PUSH dword ptr [ESP + 0x14]
PUSH EBP
CALL 0x00069ff0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xc]
CMP byte ptr [EAX],0x0
JZ 0x000223f3
MOV ESI,EAX
NOP
ADD ESI,0x1
CMP byte ptr [ESI],0x0
JNZ 0x00022030
MOV EAX,dword ptr [ESP + 0xc]
SUB ESI,EAX
AND ESI,0x3fffffff
ADD EAX,ESI
CMP EDI,0x1
JLE 0x00022078
MOV EDX,dword ptr [ESP + 0xc]
LEA ECX,[EDI + EDI*0x1]
LEA EAX,[EDX + ESI*0x1]
LEA EDX,[EDX + ECX*0x1 + -0x2]
ADD EDX,ESI
LEA ESI,[ESI]
NOP
MOV EBP,0x3f2c
ADD EAX,0x2
MOV word ptr [EAX + -0x2],BP
CMP EAX,EDX
JNZ 0x00022060
LEA EAX,[ECX + ESI*0x1 + -0x2]
ADD EAX,dword ptr [ESP + 0xc]
SUB ESP,0xc
MOV EBP,0x3b29
MOV byte ptr [EAX + 0x2],0x0
MOV word ptr [EAX],BP
PUSH 0x0
LEA EAX,[ESP + 0x48]
PUSH EAX
PUSH -0x1
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x34]
CALL 0x000e2d60
MOV EDX,dword ptr [EBX + 0x1c0]
ADD ESP,0x20
MOV dword ptr [ESP + 0x4],0x0
MOV dword ptr [ESP + 0x2c],0x2
MOV dword ptr [ESP + 0x20],EDX
TEST EAX,EAX
JNZ 0x000223ab
MOV EAX,dword ptr [EBX + 0x1a8]
MOV dword ptr [ESP + 0x24],EAX
LEA ESI,[ESI]
SUB ESP,0xc
PUSH dword ptr [ESP + 0x40]
CALL 0x000ccd70
ADD ESP,0x10
CMP EAX,0x64
JNZ 0x000222b0
XOR EBP,EBP
TEST EDI,EDI
JLE 0x00022136
NOP
SUB ESP,0x8
LEA ESI,[EBP + 0x1]
PUSH EBP
PUSH dword ptr [ESP + 0x40]
CALL 0x000562f0
ADD ESP,0x10
CMP EAX,0x5
JA 0x00022130
MOV ECX,dword ptr [EBX + EAX*0x4 + 0xfffa2d98]
ADD ECX,EBX
JMP ECX
MOV EBP,ESI
CMP EDI,ESI
JNZ 0x000220f0
SUB ESP,0xc
PUSH dword ptr [ESP + 0x44]
CALL 0x000ccd70
ADD ESP,0x10
LEA EDX,[EAX + -0x64]
CMP EDX,0x1
JBE 0x00022183
TEST EAX,EAX
JZ 0x00022183
SUB ESP,0xc
MOV EBP,dword ptr [ESP + 0x24]
PUSH EBP
CALL 0x00073210
MOV dword ptr [ESP],EBP
MOV ESI,EAX
CALL 0x00073180
MOV dword ptr [ESP],ESI
PUSH EAX
LEA EAX,[EBX + 0xfff9b5c7]
PUSH EAX
PUSH 0x1
MOV EAX,dword ptr [ESP + 0x40]
PUSH dword ptr [EAX]
CALL 0x00015590
ADD ESP,0x20
SUB ESP,0xc
PUSH dword ptr [ESP + 0x44]
CALL 0x000ac730
ADD dword ptr [ESP + 0x14],0x1
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,0xd1b71759
ADD ESP,0x10
MOV ECX,EAX
MOV dword ptr [ESP + 0x4],EAX
MUL EDX
SHR EDX,0xd
IMUL EAX,EDX,0x2710
CMP ECX,EAX
JNZ 0x000220d0
AND EDX,0x3
SUB ESP,0x4
MOVSX EAX,byte ptr [EBX + EDX*0x1 + 0xfff9b5d9]
PUSH EAX
LEA EAX,[EBX + 0xfff9b5d5]
PUSH EAX
PUSH 0x1
CALL 0x000154d0
POP EAX
MOV EAX,dword ptr [ESP + 0x2c]
PUSH dword ptr [EAX]
CALL 0x000150e0
ADD ESP,0x10
JMP 0x000220d0
MOV EDX,dword ptr [ESP + 0x34]
CMP EAX,0x65
JZ 0x00022311
SUB ESP,0xc
PUSH EDX
CALL 0x000a96f0
POP ESI
PUSH dword ptr [ESP + 0x20]
CALL 0x00042800
POP EBP
POP EAX
LEA EAX,[EBX + 0xfff9da34]
PUSH dword ptr [ESP + 0x18]
PUSH EAX
CALL 0x0008ff90
MOV dword ptr [ESP],0x0
MOV dword ptr [ESP + 0x24],EAX
PUSH dword ptr [ESP + 0x38]
PUSH -0x1
PUSH EAX
MOV EAX,dword ptr [ESP + 0x38]
PUSH dword ptr [EAX]
CALL 0x000e2d60
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x000223fc
CMP dword ptr [ESP + 0x2c],0x1
JNZ 0x00022354
MOV EDX,dword ptr [ESP + 0x34]
SUB ESP,0xc
PUSH EDX
CALL 0x000a96f0
POP EAX
PUSH dword ptr [ESP + 0x44]
CALL 0x000a96f0
POP EDX
PUSH dword ptr [ESP + 0x20]
CALL 0x00042800
POP ECX
PUSH dword ptr [ESP + 0x18]
CALL 0x00042800
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x3c]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x00022422
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [ESP + 0x2c],0x1
JMP 0x000220c2
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x28]
PUSH dword ptr [EDI]
CALL 0x00073210
POP ECX
PUSH dword ptr [EDI]
MOV ESI,EAX
CALL 0x00073180
POP EDI
POP EBP
PUSH dword ptr [ESP + 0x1c]
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xfff9b5b1]
PUSH EAX
MOV EAX,dword ptr [EBX + 0x1a8]
PUSH 0x1
PUSH dword ptr [EAX]
CALL 0x00015590
MOV EDX,dword ptr [ESP + 0x54]
ADD ESP,0x20
MOV dword ptr [ESP + 0xc],0x0
JMP 0x00022311
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x24]
PUSH EDI
CALL 0x00073210
MOV dword ptr [ESP],EDI
MOV ESI,EAX
CALL 0x00073180
POP ECX
POP EDI
PUSH dword ptr [ESP + 0x1c]
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xfff9b5b1]
PUSH EAX
MOV EAX,dword ptr [EBX + 0x1a8]
PUSH 0x1
PUSH dword ptr [EAX]
CALL 0x00015590
MOV EDX,dword ptr [ESP + 0x54]
ADD ESP,0x20
JMP 0x00022311
XOR EBP,EBP
JMP 0x00021f93
MOV EAX,dword ptr [ESP + 0xc]
JMP 0x00022046
LEA EAX,[EBX + 0xfff9da5c]
PUSH dword ptr [ESP + 0x10]
PUSH EAX
MOV EAX,dword ptr [EBX + 0x1a8]
PUSH 0x1
PUSH dword ptr [EAX]
CALL 0x00015590
MOV EDX,dword ptr [ESP + 0x44]
ADD ESP,0x10
JMP 0x00022311
CALL 0x00116110
CALL 0x0001f910
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00021f30(undefined4 *param_1,undefined4 param_2,char *param_3)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  uint uVar10;\n  int in_GS_OFFSET;\n  uint local_58;\n  char *local_50;\n  undefined4 local_48;\n  int local_30;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x21f39;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28 = 0;\n  local_24 = 0;\n  pcVar9 = param_3;\n  if (*param_3 == '\0') {\n    uVar10 = 0;\n  }\n  else {\n    do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');\n    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;\n  }\n  local_48 = FUN_0008ff90("SELECT * FROM \"%w\"",param_3);\n  iVar4 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n  if (iVar4 == 0) {\n    iVar4 = FUN_00039060(local_28);\n    iVar5 = iVar4 * 3 + uVar10 + 200;\n    local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);\n    if (local_50 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0001f910();\n    }\n    FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);\n    pcVar9 = local_50;\n    if (*local_50 == '\0') {\n      uVar10 = 0;\n    }\n    else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }\n    if (1 < iVar4) {\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }\n    pcVar9[2] = '\0';\n    pcVar9[0] = ')';\n    pcVar9[1] = ';';\n    iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);\n    puVar3 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }\n    else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }\n  }\n  else {\n    uVar7 = FUN_00073210(*param_1);\n    uVar8 = FUN_00073180(*param_1);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );\n    local_50 = (char *)0x0;\n  }\nLAB_00022311:\n  FUN_000a96f0(local_28);\n  FUN_000a96f0(local_24);\n  FUN_00042800(local_48);\n  FUN_00042800(local_50);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00116110();\n}\n\n" comment (function_definition "void FUN_00021f30(undefined4 *param_1,undefined4 param_2,char *param_3)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  uint uVar10;\n  int in_GS_OFFSET;\n  uint local_58;\n  char *local_50;\n  undefined4 local_48;\n  int local_30;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x21f39;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28 = 0;\n  local_24 = 0;\n  pcVar9 = param_3;\n  if (*param_3 == '\0') {\n    uVar10 = 0;\n  }\n  else {\n    do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');\n    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;\n  }\n  local_48 = FUN_0008ff90("SELECT * FROM \"%w\"",param_3);\n  iVar4 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n  if (iVar4 == 0) {\n    iVar4 = FUN_00039060(local_28);\n    iVar5 = iVar4 * 3 + uVar10 + 200;\n    local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);\n    if (local_50 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0001f910();\n    }\n    FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);\n    pcVar9 = local_50;\n    if (*local_50 == '\0') {\n      uVar10 = 0;\n    }\n    else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }\n    if (1 < iVar4) {\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }\n    pcVar9[2] = '\0';\n    pcVar9[0] = ')';\n    pcVar9[1] = ';';\n    iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);\n    puVar3 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }\n    else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }\n  }\n  else {\n    uVar7 = FUN_00073210(*param_1);\n    uVar8 = FUN_00073180(*param_1);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );\n    local_50 = (char *)0x0;\n  }\nLAB_00022311:\n  FUN_000a96f0(local_28);\n  FUN_000a96f0(local_24);\n  FUN_00042800(local_48);\n  FUN_00042800(local_50);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00116110();\n}" primitive_type (function_declarator "FUN_00021f30(undefined4 *param_1,undefined4 param_2,char *param_3)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,char *param_3)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  uint uVar10;\n  int in_GS_OFFSET;\n  uint local_58;\n  char *local_50;\n  undefined4 local_48;\n  int local_30;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x21f39;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28 = 0;\n  local_24 = 0;\n  pcVar9 = param_3;\n  if (*param_3 == '\0') {\n    uVar10 = 0;\n  }\n  else {\n    do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');\n    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;\n  }\n  local_48 = FUN_0008ff90("SELECT * FROM \"%w\"",param_3);\n  iVar4 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n  if (iVar4 == 0) {\n    iVar4 = FUN_00039060(local_28);\n    iVar5 = iVar4 * 3 + uVar10 + 200;\n    local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);\n    if (local_50 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0001f910();\n    }\n    FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);\n    pcVar9 = local_50;\n    if (*local_50 == '\0') {\n      uVar10 = 0;\n    }\n    else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }\n    if (1 < iVar4) {\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }\n    pcVar9[2] = '\0';\n    pcVar9[0] = ')';\n    pcVar9[1] = ';';\n    iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);\n    puVar3 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }\n    else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }\n  }\n  else {\n    uVar7 = FUN_00073210(*param_1);\n    uVar8 = FUN_00073180(*param_1);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );\n    local_50 = (char *)0x0;\n  }\nLAB_00022311:\n  FUN_000a96f0(local_28);\n  FUN_000a96f0(local_24);\n  FUN_00042800(local_48);\n  FUN_00042800(local_50);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00116110();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "char *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x21f39;" (assignment_expression "uStack_14 = 0x21f39" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "pcVar9 = param_3;" (assignment_expression "pcVar9 = param_3" identifier = identifier) ;) (if_statement "if (*param_3 == '\0') {\n    uVar10 = 0;\n  }\n  else {\n    do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');\n    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;\n  }" if (parenthesized_expression "(*param_3 == '\0')" ( (binary_expression "*param_3 == '\0'" (pointer_expression "*param_3" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar10 = 0;\n  }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');\n    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;\n  }" else (compound_statement "{\n    do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');\n    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;\n  }" { (do_statement "do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');" do (compound_statement "{\n      pcVar9 = pcVar9 + 1;\n    }" { (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar9 != '\0')" ( (binary_expression "*pcVar9 != '\0'" (pointer_expression "*pcVar9" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;" (assignment_expression "uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff" identifier = (binary_expression "(int)pcVar9 - (int)param_3 & 0x3fffffff" (binary_expression "(int)pcVar9 - (int)param_3" (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal)) ;) }))) (expression_statement "local_48 = FUN_0008ff90("SELECT * FROM \"%w\"",param_3);" (assignment_expression "local_48 = FUN_0008ff90("SELECT * FROM \"%w\"",param_3)" identifier = (call_expression "FUN_0008ff90("SELECT * FROM \"%w\"",param_3)" identifier (argument_list "("SELECT * FROM \"%w\"",param_3)" ( (string_literal ""SELECT * FROM \"%w\""" " string_content escape_sequence string_content escape_sequence ") , identifier )))) ;) (expression_statement "iVar4 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);" (assignment_expression "iVar4 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0)" identifier = (call_expression "FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0)" identifier (argument_list "(*param_1,local_48,0xffffffff,&local_28,0)" ( (pointer_expression "*param_1" * identifier) , identifier , number_literal , (pointer_expression "&local_28" & identifier) , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n    iVar4 = FUN_00039060(local_28);\n    iVar5 = iVar4 * 3 + uVar10 + 200;\n    local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);\n    if (local_50 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0001f910();\n    }\n    FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);\n    pcVar9 = local_50;\n    if (*local_50 == '\0') {\n      uVar10 = 0;\n    }\n    else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }\n    if (1 < iVar4) {\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }\n    pcVar9[2] = '\0';\n    pcVar9[0] = ')';\n    pcVar9[1] = ';';\n    iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);\n    puVar3 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }\n    else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }\n  }\n  else {\n    uVar7 = FUN_00073210(*param_1);\n    uVar8 = FUN_00073180(*param_1);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );\n    local_50 = (char *)0x0;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar4 = FUN_00039060(local_28);\n    iVar5 = iVar4 * 3 + uVar10 + 200;\n    local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);\n    if (local_50 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0001f910();\n    }\n    FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);\n    pcVar9 = local_50;\n    if (*local_50 == '\0') {\n      uVar10 = 0;\n    }\n    else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }\n    if (1 < iVar4) {\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }\n    pcVar9[2] = '\0';\n    pcVar9[0] = ')';\n    pcVar9[1] = ';';\n    iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);\n    puVar3 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }\n    else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }\n  }" { (expression_statement "iVar4 = FUN_00039060(local_28);" (assignment_expression "iVar4 = FUN_00039060(local_28)" identifier = (call_expression "FUN_00039060(local_28)" identifier (argument_list "(local_28)" ( identifier )))) ;) (expression_statement "iVar5 = iVar4 * 3 + uVar10 + 200;" (assignment_expression "iVar5 = iVar4 * 3 + uVar10 + 200" identifier = (binary_expression "iVar4 * 3 + uVar10 + 200" (binary_expression "iVar4 * 3 + uVar10" (binary_expression "iVar4 * 3" identifier * number_literal) + identifier) + number_literal)) ;) (expression_statement "local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);" (assignment_expression "local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f)" identifier = (cast_expression "(char *)FUN_0005d080(iVar5,iVar5 >> 0x1f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0005d080(iVar5,iVar5 >> 0x1f)" identifier (argument_list "(iVar5,iVar5 >> 0x1f)" ( identifier , (binary_expression "iVar5 >> 0x1f" identifier >> number_literal) ))))) ;) (if_statement "if (local_50 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0001f910();\n    }" if (parenthesized_expression "(local_50 == (char *)0x0)" ( (binary_expression "local_50 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0001f910();\n    }" { comment (expression_statement "FUN_0001f910();" (call_expression "FUN_0001f910()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);" (call_expression "FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3)" identifier (argument_list "(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3)" ( (binary_expression "uVar10 + 200" identifier + number_literal) , identifier , (string_literal ""INSERT OR IGNORE INTO \"%s\" VALUES(?"" " string_content escape_sequence string_content escape_sequence string_content ") , identifier ))) ;) (expression_statement "pcVar9 = local_50;" (assignment_expression "pcVar9 = local_50" identifier = identifier) ;) (if_statement "if (*local_50 == '\0') {\n      uVar10 = 0;\n    }\n    else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }" if (parenthesized_expression "(*local_50 == '\0')" ( (binary_expression "*local_50 == '\0'" (pointer_expression "*local_50" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = 0;\n    }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }" else (compound_statement "{\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }" { (do_statement "do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');" do (compound_statement "{\n        pcVar9 = pcVar9 + 1;\n      }" { (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar9 != '\0')" ( (binary_expression "*pcVar9 != '\0'" (pointer_expression "*pcVar9" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;" (assignment_expression "uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff" identifier = (binary_expression "(int)pcVar9 - (int)local_50 & 0x3fffffff" (binary_expression "(int)pcVar9 - (int)local_50" (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal)) ;) (expression_statement "pcVar9 = local_50 + uVar10;" (assignment_expression "pcVar9 = local_50 + uVar10" identifier = (binary_expression "local_50 + uVar10" identifier + identifier)) ;) }))) (if_statement "if (1 < iVar4) {\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }" if (parenthesized_expression "(1 < iVar4)" ( (binary_expression "1 < iVar4" number_literal < identifier) )) (compound_statement "{\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }" { (expression_statement "pcVar9 = local_50 + uVar10;" (assignment_expression "pcVar9 = local_50 + uVar10" identifier = (binary_expression "local_50 + uVar10" identifier + identifier)) ;) (do_statement "do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);" do (compound_statement "{\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      }" { (expression_statement "pcVar6 = pcVar9 + 2;" (assignment_expression "pcVar6 = pcVar9 + 2" identifier = (binary_expression "pcVar9 + 2" identifier + number_literal)) ;) (expression_statement "pcVar9[0] = ',';" (assignment_expression "pcVar9[0] = ','" (subscript_expression "pcVar9[0]" identifier [ number_literal ]) = (char_literal "','" ' character ')) ;) (expression_statement "pcVar9[1] = '?';" (assignment_expression "pcVar9[1] = '?'" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) = (char_literal "'?'" ' character ')) ;) (expression_statement "pcVar9 = pcVar6;" (assignment_expression "pcVar9 = pcVar6" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2)" ( (binary_expression "pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2" identifier != (binary_expression "local_50 + uVar10 + iVar4 * 2 + -2" (binary_expression "local_50 + uVar10 + iVar4 * 2" (binary_expression "local_50 + uVar10" identifier + identifier) + (binary_expression "iVar4 * 2" identifier * number_literal)) + number_literal)) )) ;) (expression_statement "pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;" (assignment_expression "pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10" identifier = (binary_expression "local_50 + iVar4 * 2 + -2 + uVar10" (binary_expression "local_50 + iVar4 * 2 + -2" (binary_expression "local_50 + iVar4 * 2" identifier + (binary_expression "iVar4 * 2" identifier * number_literal)) + number_literal) + identifier)) ;) })) (expression_statement "pcVar9[2] = '\0';" (assignment_expression "pcVar9[2] = '\0'" (subscript_expression "pcVar9[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar9[0] = ')';" (assignment_expression "pcVar9[0] = ')'" (subscript_expression "pcVar9[0]" identifier [ number_literal ]) = (char_literal "')'" ' character ')) ;) (expression_statement "pcVar9[1] = ';';" (assignment_expression "pcVar9[1] = ';'" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) = (char_literal "';'" ' character ')) ;) (expression_statement "iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);" (assignment_expression "iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0)" identifier = (call_expression "FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0)" identifier (argument_list "(param_2,local_50,0xffffffff,&local_24,0)" ( identifier , identifier , number_literal , (pointer_expression "&local_24" & identifier) , number_literal )))) ;) (expression_statement "puVar3 = PTR_stdout_0017bfe8;" (assignment_expression "puVar3 = PTR_stdout_0017bfe8" identifier = identifier) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 2;" (assignment_expression "local_30 = 2" identifier = number_literal) ;) (expression_statement "puVar2 = (undefined4 *)PTR_stderr_0017bfd0;" (assignment_expression "puVar2 = (undefined4 *)PTR_stderr_0017bfd0" identifier = (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }\n    else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }" { (while_statement "while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }" { (while_statement "while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }" while (parenthesized_expression "(iVar5 = FUN_000ccd70(local_28), iVar5 == 100)" ( (comma_expression "iVar5 = FUN_000ccd70(local_28), iVar5 == 100" (assignment_expression "iVar5 = FUN_000ccd70(local_28)" identifier = (call_expression "FUN_000ccd70(local_28)" identifier (argument_list "(local_28)" ( identifier )))) , (binary_expression "iVar5 == 100" identifier == number_literal)) )) (compound_statement "{\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }" { (do_statement "do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);" do (compound_statement "{\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            }" { (expression_statement "iVar1 = iVar5 + 1;" (assignment_expression "iVar1 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = FUN_000562f0(local_28,iVar5);" (assignment_expression "uVar7 = FUN_000562f0(local_28,iVar5)" identifier = (call_expression "FUN_000562f0(local_28,iVar5)" identifier (argument_list "(local_28,iVar5)" ( identifier , identifier )))) ;) (switch_statement "switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }" switch (parenthesized_expression "(uVar7)" ( identifier )) (compound_statement "{\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }" { (case_statement "case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;" case number_literal : (expression_statement "FUN_000561a0(local_28,iVar5);" (call_expression "FUN_000561a0(local_28,iVar5)" identifier (argument_list "(local_28,iVar5)" ( identifier , identifier ))) ;) (expression_statement "FUN_000739f0(local_24,iVar1);" (call_expression "FUN_000739f0(local_24,iVar1)" identifier (argument_list "(local_24,iVar1)" ( identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;" case number_literal : (expression_statement "FUN_00056140(local_28,iVar5);" (call_expression "FUN_00056140(local_28,iVar5)" identifier (argument_list "(local_28,iVar5)" ( identifier , identifier ))) ;) (expression_statement "FUN_00073970(local_24,iVar1);" (call_expression "FUN_00073970(local_24,iVar1)" identifier (argument_list "(local_24,iVar1)" ( identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;" case number_literal : (expression_statement "uVar7 = FUN_0006a9b0(local_28,iVar5);" (assignment_expression "uVar7 = FUN_0006a9b0(local_28,iVar5)" identifier = (call_expression "FUN_0006a9b0(local_28,iVar5)" identifier (argument_list "(local_28,iVar5)" ( identifier , identifier )))) ;) (expression_statement "FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);" (call_expression "FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0)" identifier (argument_list "(local_24,iVar1,uVar7,0xffffffff,0)" ( identifier , identifier , identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;" case number_literal : (expression_statement "uVar7 = FUN_0006a300(local_28,iVar5);" (assignment_expression "uVar7 = FUN_0006a300(local_28,iVar5)" identifier = (call_expression "FUN_0006a300(local_28,iVar5)" identifier (argument_list "(local_28,iVar5)" ( identifier , identifier )))) ;) (expression_statement "uVar8 = FUN_0006a5f0(local_28,iVar5);" (assignment_expression "uVar8 = FUN_0006a5f0(local_28,iVar5)" identifier = (call_expression "FUN_0006a5f0(local_28,iVar5)" identifier (argument_list "(local_28,iVar5)" ( identifier , identifier )))) ;) (expression_statement "FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);" (call_expression "FUN_000737d0(local_24,iVar1,uVar8,uVar7,0)" identifier (argument_list "(local_24,iVar1,uVar8,uVar7,0)" ( identifier , identifier , identifier , identifier , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n                FUN_00073a80(local_24,iVar1);" case number_literal : (expression_statement "FUN_00073a80(local_24,iVar1);" (call_expression "FUN_00073a80(local_24,iVar1)" identifier (argument_list "(local_24,iVar1)" ( identifier , identifier ))) ;)) })) (expression_statement "iVar5 = iVar1;" (assignment_expression "iVar5 = iVar1" identifier = identifier) ;) }) while (parenthesized_expression "(iVar4 != iVar1)" ( (binary_expression "iVar4 != iVar1" identifier != identifier) )) ;) })) (expression_statement "iVar5 = FUN_000ccd70(local_24);" (assignment_expression "iVar5 = FUN_000ccd70(local_24)" identifier = (call_expression "FUN_000ccd70(local_24)" identifier (argument_list "(local_24)" ( identifier )))) ;) (if_statement "if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }" if (parenthesized_expression "((1 < iVar5 - 100U) && (iVar5 != 0))" ( (binary_expression "(1 < iVar5 - 100U) && (iVar5 != 0)" (parenthesized_expression "(1 < iVar5 - 100U)" ( (binary_expression "1 < iVar5 - 100U" number_literal < (binary_expression "iVar5 - 100U" identifier - number_literal)) )) && (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) ))) )) (compound_statement "{\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }" { (expression_statement "uVar7 = FUN_00073210(param_2);" (assignment_expression "uVar7 = FUN_00073210(param_2)" identifier = (call_expression "FUN_00073210(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar8 = FUN_00073180(param_2);" (assignment_expression "uVar8 = FUN_00073180(param_2)" identifier = (call_expression "FUN_00073180(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "__fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);" (call_expression "__fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7)" identifier (argument_list "(*puVar2,1,"Error %d: %s\n",uVar8,uVar7)" ( (pointer_expression "*puVar2" * identifier) , number_literal , (string_literal ""Error %d: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) })) (expression_statement "FUN_000ac730(local_24);" (call_expression "FUN_000ac730(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "local_58 = local_58 + 1;" (assignment_expression "local_58 = local_58 + 1" identifier = (binary_expression "local_58 + 1" identifier + number_literal)) ;) (if_statement "if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }" if (parenthesized_expression "(local_58 == (local_58 / 10000) * 10000)" ( (binary_expression "local_58 == (local_58 / 10000) * 10000" identifier == (binary_expression "(local_58 / 10000) * 10000" (parenthesized_expression "(local_58 / 10000)" ( (binary_expression "local_58 / 10000" identifier / number_literal) )) * number_literal)) )) (compound_statement "{\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }" { (expression_statement "__printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);" (call_expression "__printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3])" identifier (argument_list "(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3])" ( number_literal , (pointer_expression "&DAT_001173fd" & identifier) , (cast_expression "(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)(&DAT_00117401)[local_58 / 10000 & 3]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "(&DAT_00117401)[local_58 / 10000 & 3]" (parenthesized_expression "(&DAT_00117401)" ( (pointer_expression "&DAT_00117401" & identifier) )) [ (binary_expression "local_58 / 10000 & 3" (binary_expression "local_58 / 10000" identifier / number_literal) & number_literal) ]))) ))) ;) (expression_statement "fflush(*(FILE **)puVar3);" (call_expression "fflush(*(FILE **)puVar3)" identifier (argument_list "(*(FILE **)puVar3)" ( (pointer_expression "*(FILE **)puVar3" * (cast_expression "(FILE **)puVar3" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) })) })) (if_statement "if (iVar5 == 0x65) goto LAB_00022311;" if (parenthesized_expression "(iVar5 == 0x65)" ( (binary_expression "iVar5 == 0x65" identifier == number_literal) )) (goto_statement "goto LAB_00022311;" goto statement_identifier ;)) (expression_statement "FUN_000a96f0(local_28);" (call_expression "FUN_000a96f0(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (expression_statement "FUN_00042800(local_48);" (call_expression "FUN_00042800(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) (expression_statement "local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);" (assignment_expression "local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3)" identifier = (call_expression "FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3)" identifier (argument_list "("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3)" ( (string_literal ""SELECT * FROM \"%w\" ORDER BY rowid DESC;"" " string_content escape_sequence string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);" (assignment_expression "iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0)" identifier = (call_expression "FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0)" identifier (argument_list "(*param_1,local_48,0xffffffff,&local_28,0)" ( (pointer_expression "*param_1" * identifier) , identifier , number_literal , (pointer_expression "&local_28" & identifier) , number_literal )))) ;) (if_statement "if (iVar5 != 0) break;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (local_30 == 1) goto LAB_00022311;" if (parenthesized_expression "(local_30 == 1)" ( (binary_expression "local_30 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00022311;" goto statement_identifier ;)) (expression_statement "local_30 = 1;" (assignment_expression "local_30 = 1" identifier = number_literal) ;) (expression_statement "puVar2 = (undefined4 *)PTR_stderr_0017bfd0;" (assignment_expression "puVar2 = (undefined4 *)PTR_stderr_0017bfd0" identifier = (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3)" identifier (argument_list "(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3)" ( (pointer_expression "*(undefined4 *)PTR_stderr_0017bfd0" * (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""Warning: cannot step \"%s\" backwards"" " string_content escape_sequence string_content escape_sequence string_content ") , identifier ))) ;) }) (else_clause "else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }" else (compound_statement "{\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }" { (expression_statement "uVar7 = FUN_00073210(param_2);" (assignment_expression "uVar7 = FUN_00073210(param_2)" identifier = (call_expression "FUN_00073210(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar8 = FUN_00073180(param_2);" (assignment_expression "uVar8 = FUN_00073180(param_2)" identifier = (call_expression "FUN_00073180(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48)" identifier (argument_list "(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48)" ( (pointer_expression "*(undefined4 *)PTR_stderr_0017bfd0" * (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""Error %d: %s on [%s]\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) }))) }) (else_clause "else {\n    uVar7 = FUN_00073210(*param_1);\n    uVar8 = FUN_00073180(*param_1);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );\n    local_50 = (char *)0x0;\n  }" else (compound_statement "{\n    uVar7 = FUN_00073210(*param_1);\n    uVar8 = FUN_00073180(*param_1);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );\n    local_50 = (char *)0x0;\n  }" { (expression_statement "uVar7 = FUN_00073210(*param_1);" (assignment_expression "uVar7 = FUN_00073210(*param_1)" identifier = (call_expression "FUN_00073210(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "uVar8 = FUN_00073180(*param_1);" (assignment_expression "uVar8 = FUN_00073180(*param_1)" identifier = (call_expression "FUN_00073180(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 )" identifier (argument_list "(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 )" ( (pointer_expression "*(undefined4 *)PTR_stderr_0017bfd0" * (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""Error %d: %s on [%s]\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_00022311:\n  FUN_000a96f0(local_28);" statement_identifier : (expression_statement "FUN_000a96f0(local_28);" (call_expression "FUN_000a96f0(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;)) (expression_statement "FUN_000a96f0(local_24);" (call_expression "FUN_000a96f0(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "FUN_00042800(local_48);" (call_expression "FUN_00042800(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) (expression_statement "FUN_00042800(local_50);" (call_expression "FUN_00042800(local_50)" identifier (argument_list "(local_50)" ( identifier ))) ;) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "FUN_00116110();" (call_expression "FUN_00116110()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid tryToCloneData(ShellState *p,sqlite3 *newDb,char *zTable)\n\n{\n  int i;\n  undefined4 *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  int iVar5;\n  int iVar6;\n  void *zData;\n  uchar *zData_00;\n  char *pcVar7;\n  uint uVar8;\n  int in_GS_OFFSET;\n  sqlite_int64 iValue;\n  double rValue;\n  uint local_58;\n  char *local_50;\n  char *local_48;\n  int local_30;\n  sqlite3_stmt *pQuery;\n  sqlite3_stmt *pInsert;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x21f39;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  pQuery = (sqlite3_stmt *)0x0;\n  pInsert = (sqlite3_stmt *)0x0;\n  pcVar7 = zTable;\n  if (*zTable == '\0') {\n    uVar8 = 0;\n  }\n  else {\n    do {\n      pcVar7 = pcVar7 + 1;\n    } while (*pcVar7 != '\0');\n    uVar8 = (int)pcVar7 - (int)zTable & 0x3fffffff;\n  }\n  local_48 = sqlite3_mprintf("SELECT * FROM \"%w\"",zTable);\n  iVar3 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0);\n  if (iVar3 == 0) {\n    iVar3 = sqlite3_column_count(pQuery);\n    local_50 = (char *)sqlite3_malloc64((longlong)(int)(iVar3 * 3 + uVar8 + 200));\n    if (local_50 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      shell_out_of_memory();\n    }\n    sqlite3_snprintf(uVar8 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",zTable);\n    pcVar7 = local_50;\n    if (*local_50 == '\0') {\n      uVar8 = 0;\n    }\n    else {\n      do {\n        pcVar7 = pcVar7 + 1;\n      } while (*pcVar7 != '\0');\n      uVar8 = (int)pcVar7 - (int)local_50 & 0x3fffffff;\n      pcVar7 = local_50 + uVar8;\n    }\n    if (1 < iVar3) {\n      pcVar7 = local_50 + uVar8;\n      do {\n        pcVar4 = pcVar7 + 2;\n        pcVar7[0] = ',';\n        pcVar7[1] = '?';\n        pcVar7 = pcVar4;\n      } while (pcVar4 != local_50 + uVar8 + iVar3 * 2 + -2);\n      pcVar7 = local_50 + iVar3 * 2 + -2 + uVar8;\n    }\n    pcVar7[2] = '\0';\n    pcVar7[0] = ')';\n    pcVar7[1] = ';';\n    iVar5 = sqlite3_prepare_v2(newDb,local_50,-1,&pInsert,(char **)0x0);\n    puVar2 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar1 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = sqlite3_step(pQuery), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar3) {\n            do {\n              i = iVar5 + 1;\n              iVar6 = sqlite3_column_type(pQuery,iVar5);\n              switch(iVar6) {\n              case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;\n              case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;\n              case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;\n              case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;\n              case 5:\n                sqlite3_bind_null(pInsert,i);\n              }\n              iVar5 = i;\n            } while (iVar3 != i);\n          }\n          iVar5 = sqlite3_step(pInsert);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            pcVar7 = sqlite3_errmsg(newDb);\n            iVar5 = sqlite3_extended_errcode(newDb);\n            __fprintf_chk(*puVar1,1,"Error %d: %s\n",iVar5,pcVar7);\n          }\n          sqlite3_reset(pInsert);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar2);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        sqlite3_finalize(pQuery);\n        sqlite3_free(local_48);\n        local_48 = sqlite3_mprintf("SELECT * FROM \"%w\" ORDER BY rowid DESC;",zTable);\n        iVar5 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar1 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    zTable);\n    }\n    else {\n      pcVar7 = sqlite3_errmsg(newDb);\n      iVar3 = sqlite3_extended_errcode(newDb);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                    local_48);\n    }\n  }\n  else {\n    pcVar7 = sqlite3_errmsg(p->db);\n    iVar3 = sqlite3_extended_errcode(p->db);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                  local_48);\n    local_50 = (char *)0x0;\n  }\nLAB_00022311:\n  sqlite3_finalize(pQuery);\n  sqlite3_finalize(pInsert);\n  sqlite3_free(local_48);\n  sqlite3_free(local_50);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment (function_definition "void tryToCloneData(ShellState *p,sqlite3 *newDb,char *zTable)\n\n{\n  int i;\n  undefined4 *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  int iVar5;\n  int iVar6;\n  void *zData;\n  uchar *zData_00;\n  char *pcVar7;\n  uint uVar8;\n  int in_GS_OFFSET;\n  sqlite_int64 iValue;\n  double rValue;\n  uint local_58;\n  char *local_50;\n  char *local_48;\n  int local_30;\n  sqlite3_stmt *pQuery;\n  sqlite3_stmt *pInsert;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x21f39;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  pQuery = (sqlite3_stmt *)0x0;\n  pInsert = (sqlite3_stmt *)0x0;\n  pcVar7 = zTable;\n  if (*zTable == '\0') {\n    uVar8 = 0;\n  }\n  else {\n    do {\n      pcVar7 = pcVar7 + 1;\n    } while (*pcVar7 != '\0');\n    uVar8 = (int)pcVar7 - (int)zTable & 0x3fffffff;\n  }\n  local_48 = sqlite3_mprintf("SELECT * FROM \"%w\"",zTable);\n  iVar3 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0);\n  if (iVar3 == 0) {\n    iVar3 = sqlite3_column_count(pQuery);\n    local_50 = (char *)sqlite3_malloc64((longlong)(int)(iVar3 * 3 + uVar8 + 200));\n    if (local_50 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      shell_out_of_memory();\n    }\n    sqlite3_snprintf(uVar8 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",zTable);\n    pcVar7 = local_50;\n    if (*local_50 == '\0') {\n      uVar8 = 0;\n    }\n    else {\n      do {\n        pcVar7 = pcVar7 + 1;\n      } while (*pcVar7 != '\0');\n      uVar8 = (int)pcVar7 - (int)local_50 & 0x3fffffff;\n      pcVar7 = local_50 + uVar8;\n    }\n    if (1 < iVar3) {\n      pcVar7 = local_50 + uVar8;\n      do {\n        pcVar4 = pcVar7 + 2;\n        pcVar7[0] = ',';\n        pcVar7[1] = '?';\n        pcVar7 = pcVar4;\n      } while (pcVar4 != local_50 + uVar8 + iVar3 * 2 + -2);\n      pcVar7 = local_50 + iVar3 * 2 + -2 + uVar8;\n    }\n    pcVar7[2] = '\0';\n    pcVar7[0] = ')';\n    pcVar7[1] = ';';\n    iVar5 = sqlite3_prepare_v2(newDb,local_50,-1,&pInsert,(char **)0x0);\n    puVar2 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar1 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = sqlite3_step(pQuery), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar3) {\n            do {\n              i = iVar5 + 1;\n              iVar6 = sqlite3_column_type(pQuery,iVar5);\n              switch(iVar6) {\n              case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;\n              case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;\n              case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;\n              case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;\n              case 5:\n                sqlite3_bind_null(pInsert,i);\n              }\n              iVar5 = i;\n            } while (iVar3 != i);\n          }\n          iVar5 = sqlite3_step(pInsert);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            pcVar7 = sqlite3_errmsg(newDb);\n            iVar5 = sqlite3_extended_errcode(newDb);\n            __fprintf_chk(*puVar1,1,"Error %d: %s\n",iVar5,pcVar7);\n          }\n          sqlite3_reset(pInsert);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar2);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        sqlite3_finalize(pQuery);\n        sqlite3_free(local_48);\n        local_48 = sqlite3_mprintf("SELECT * FROM \"%w\" ORDER BY rowid DESC;",zTable);\n        iVar5 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar1 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    zTable);\n    }\n    else {\n      pcVar7 = sqlite3_errmsg(newDb);\n      iVar3 = sqlite3_extended_errcode(newDb);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                    local_48);\n    }\n  }\n  else {\n    pcVar7 = sqlite3_errmsg(p->db);\n    iVar3 = sqlite3_extended_errcode(p->db);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                  local_48);\n    local_50 = (char *)0x0;\n  }\nLAB_00022311:\n  sqlite3_finalize(pQuery);\n  sqlite3_finalize(pInsert);\n  sqlite3_free(local_48);\n  sqlite3_free(local_50);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (function_declarator "tryToCloneData(ShellState *p,sqlite3 *newDb,char *zTable)" identifier (parameter_list "(ShellState *p,sqlite3 *newDb,char *zTable)" ( (parameter_declaration "ShellState *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "sqlite3 *newDb" type_identifier (pointer_declarator "*newDb" * identifier)) , (parameter_declaration "char *zTable" primitive_type (pointer_declarator "*zTable" * identifier)) ))) (compound_statement "{\n  int i;\n  undefined4 *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  int iVar5;\n  int iVar6;\n  void *zData;\n  uchar *zData_00;\n  char *pcVar7;\n  uint uVar8;\n  int in_GS_OFFSET;\n  sqlite_int64 iValue;\n  double rValue;\n  uint local_58;\n  char *local_50;\n  char *local_48;\n  int local_30;\n  sqlite3_stmt *pQuery;\n  sqlite3_stmt *pInsert;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x21f39;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  pQuery = (sqlite3_stmt *)0x0;\n  pInsert = (sqlite3_stmt *)0x0;\n  pcVar7 = zTable;\n  if (*zTable == '\0') {\n    uVar8 = 0;\n  }\n  else {\n    do {\n      pcVar7 = pcVar7 + 1;\n    } while (*pcVar7 != '\0');\n    uVar8 = (int)pcVar7 - (int)zTable & 0x3fffffff;\n  }\n  local_48 = sqlite3_mprintf("SELECT * FROM \"%w\"",zTable);\n  iVar3 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0);\n  if (iVar3 == 0) {\n    iVar3 = sqlite3_column_count(pQuery);\n    local_50 = (char *)sqlite3_malloc64((longlong)(int)(iVar3 * 3 + uVar8 + 200));\n    if (local_50 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      shell_out_of_memory();\n    }\n    sqlite3_snprintf(uVar8 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",zTable);\n    pcVar7 = local_50;\n    if (*local_50 == '\0') {\n      uVar8 = 0;\n    }\n    else {\n      do {\n        pcVar7 = pcVar7 + 1;\n      } while (*pcVar7 != '\0');\n      uVar8 = (int)pcVar7 - (int)local_50 & 0x3fffffff;\n      pcVar7 = local_50 + uVar8;\n    }\n    if (1 < iVar3) {\n      pcVar7 = local_50 + uVar8;\n      do {\n        pcVar4 = pcVar7 + 2;\n        pcVar7[0] = ',';\n        pcVar7[1] = '?';\n        pcVar7 = pcVar4;\n      } while (pcVar4 != local_50 + uVar8 + iVar3 * 2 + -2);\n      pcVar7 = local_50 + iVar3 * 2 + -2 + uVar8;\n    }\n    pcVar7[2] = '\0';\n    pcVar7[0] = ')';\n    pcVar7[1] = ';';\n    iVar5 = sqlite3_prepare_v2(newDb,local_50,-1,&pInsert,(char **)0x0);\n    puVar2 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar1 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = sqlite3_step(pQuery), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar3) {\n            do {\n              i = iVar5 + 1;\n              iVar6 = sqlite3_column_type(pQuery,iVar5);\n              switch(iVar6) {\n              case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;\n              case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;\n              case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;\n              case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;\n              case 5:\n                sqlite3_bind_null(pInsert,i);\n              }\n              iVar5 = i;\n            } while (iVar3 != i);\n          }\n          iVar5 = sqlite3_step(pInsert);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            pcVar7 = sqlite3_errmsg(newDb);\n            iVar5 = sqlite3_extended_errcode(newDb);\n            __fprintf_chk(*puVar1,1,"Error %d: %s\n",iVar5,pcVar7);\n          }\n          sqlite3_reset(pInsert);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar2);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        sqlite3_finalize(pQuery);\n        sqlite3_free(local_48);\n        local_48 = sqlite3_mprintf("SELECT * FROM \"%w\" ORDER BY rowid DESC;",zTable);\n        iVar5 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar1 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    zTable);\n    }\n    else {\n      pcVar7 = sqlite3_errmsg(newDb);\n      iVar3 = sqlite3_extended_errcode(newDb);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                    local_48);\n    }\n  }\n  else {\n    pcVar7 = sqlite3_errmsg(p->db);\n    iVar3 = sqlite3_extended_errcode(p->db);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                  local_48);\n    local_50 = (char *)0x0;\n  }\nLAB_00022311:\n  sqlite3_finalize(pQuery);\n  sqlite3_finalize(pInsert);\n  sqlite3_free(local_48);\n  sqlite3_free(local_50);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "int i;" primitive_type identifier ;) (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "void *zData;" primitive_type (pointer_declarator "*zData" * identifier) ;) (declaration "uchar *zData_00;" type_identifier (pointer_declarator "*zData_00" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "sqlite_int64 iValue;" type_identifier identifier ;) (declaration "double rValue;" primitive_type identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "char *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "char *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "sqlite3_stmt *pQuery;" type_identifier (pointer_declarator "*pQuery" * identifier) ;) (declaration "sqlite3_stmt *pInsert;" type_identifier (pointer_declarator "*pInsert" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x21f39;" (assignment_expression "uStack_14 = 0x21f39" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "pQuery = (sqlite3_stmt *)0x0;" (assignment_expression "pQuery = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pInsert = (sqlite3_stmt *)0x0;" (assignment_expression "pInsert = (sqlite3_stmt *)0x0" identifier = (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar7 = zTable;" (assignment_expression "pcVar7 = zTable" identifier = identifier) ;) (if_statement "if (*zTable == '\0') {\n    uVar8 = 0;\n  }\n  else {\n    do {\n      pcVar7 = pcVar7 + 1;\n    } while (*pcVar7 != '\0');\n    uVar8 = (int)pcVar7 - (int)zTable & 0x3fffffff;\n  }" if (parenthesized_expression "(*zTable == '\0')" ( (binary_expression "*zTable == '\0'" (pointer_expression "*zTable" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar8 = 0;\n  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    do {\n      pcVar7 = pcVar7 + 1;\n    } while (*pcVar7 != '\0');\n    uVar8 = (int)pcVar7 - (int)zTable & 0x3fffffff;\n  }" else (compound_statement "{\n    do {\n      pcVar7 = pcVar7 + 1;\n    } while (*pcVar7 != '\0');\n    uVar8 = (int)pcVar7 - (int)zTable & 0x3fffffff;\n  }" { (do_statement "do {\n      pcVar7 = pcVar7 + 1;\n    } while (*pcVar7 != '\0');" do (compound_statement "{\n      pcVar7 = pcVar7 + 1;\n    }" { (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar7 != '\0')" ( (binary_expression "*pcVar7 != '\0'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar8 = (int)pcVar7 - (int)zTable & 0x3fffffff;" (assignment_expression "uVar8 = (int)pcVar7 - (int)zTable & 0x3fffffff" identifier = (binary_expression "(int)pcVar7 - (int)zTable & 0x3fffffff" (binary_expression "(int)pcVar7 - (int)zTable" (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)zTable" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal)) ;) }))) (expression_statement "local_48 = sqlite3_mprintf("SELECT * FROM \"%w\"",zTable);" (assignment_expression "local_48 = sqlite3_mprintf("SELECT * FROM \"%w\"",zTable)" identifier = (call_expression "sqlite3_mprintf("SELECT * FROM \"%w\"",zTable)" identifier (argument_list "("SELECT * FROM \"%w\"",zTable)" ( (string_literal ""SELECT * FROM \"%w\""" " string_content escape_sequence string_content escape_sequence ") , identifier )))) ;) (expression_statement "iVar3 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0);" (assignment_expression "iVar3 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0)" identifier = (call_expression "sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0)" identifier (argument_list "(p->db,local_48,-1,&pQuery,(char **)0x0)" ( (field_expression "p->db" identifier -> field_identifier) , identifier , number_literal , (pointer_expression "&pQuery" & identifier) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n    iVar3 = sqlite3_column_count(pQuery);\n    local_50 = (char *)sqlite3_malloc64((longlong)(int)(iVar3 * 3 + uVar8 + 200));\n    if (local_50 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      shell_out_of_memory();\n    }\n    sqlite3_snprintf(uVar8 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",zTable);\n    pcVar7 = local_50;\n    if (*local_50 == '\0') {\n      uVar8 = 0;\n    }\n    else {\n      do {\n        pcVar7 = pcVar7 + 1;\n      } while (*pcVar7 != '\0');\n      uVar8 = (int)pcVar7 - (int)local_50 & 0x3fffffff;\n      pcVar7 = local_50 + uVar8;\n    }\n    if (1 < iVar3) {\n      pcVar7 = local_50 + uVar8;\n      do {\n        pcVar4 = pcVar7 + 2;\n        pcVar7[0] = ',';\n        pcVar7[1] = '?';\n        pcVar7 = pcVar4;\n      } while (pcVar4 != local_50 + uVar8 + iVar3 * 2 + -2);\n      pcVar7 = local_50 + iVar3 * 2 + -2 + uVar8;\n    }\n    pcVar7[2] = '\0';\n    pcVar7[0] = ')';\n    pcVar7[1] = ';';\n    iVar5 = sqlite3_prepare_v2(newDb,local_50,-1,&pInsert,(char **)0x0);\n    puVar2 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar1 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = sqlite3_step(pQuery), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar3) {\n            do {\n              i = iVar5 + 1;\n              iVar6 = sqlite3_column_type(pQuery,iVar5);\n              switch(iVar6) {\n              case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;\n              case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;\n              case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;\n              case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;\n              case 5:\n                sqlite3_bind_null(pInsert,i);\n              }\n              iVar5 = i;\n            } while (iVar3 != i);\n          }\n          iVar5 = sqlite3_step(pInsert);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            pcVar7 = sqlite3_errmsg(newDb);\n            iVar5 = sqlite3_extended_errcode(newDb);\n            __fprintf_chk(*puVar1,1,"Error %d: %s\n",iVar5,pcVar7);\n          }\n          sqlite3_reset(pInsert);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar2);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        sqlite3_finalize(pQuery);\n        sqlite3_free(local_48);\n        local_48 = sqlite3_mprintf("SELECT * FROM \"%w\" ORDER BY rowid DESC;",zTable);\n        iVar5 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar1 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    zTable);\n    }\n    else {\n      pcVar7 = sqlite3_errmsg(newDb);\n      iVar3 = sqlite3_extended_errcode(newDb);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                    local_48);\n    }\n  }\n  else {\n    pcVar7 = sqlite3_errmsg(p->db);\n    iVar3 = sqlite3_extended_errcode(p->db);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                  local_48);\n    local_50 = (char *)0x0;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar3 = sqlite3_column_count(pQuery);\n    local_50 = (char *)sqlite3_malloc64((longlong)(int)(iVar3 * 3 + uVar8 + 200));\n    if (local_50 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      shell_out_of_memory();\n    }\n    sqlite3_snprintf(uVar8 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",zTable);\n    pcVar7 = local_50;\n    if (*local_50 == '\0') {\n      uVar8 = 0;\n    }\n    else {\n      do {\n        pcVar7 = pcVar7 + 1;\n      } while (*pcVar7 != '\0');\n      uVar8 = (int)pcVar7 - (int)local_50 & 0x3fffffff;\n      pcVar7 = local_50 + uVar8;\n    }\n    if (1 < iVar3) {\n      pcVar7 = local_50 + uVar8;\n      do {\n        pcVar4 = pcVar7 + 2;\n        pcVar7[0] = ',';\n        pcVar7[1] = '?';\n        pcVar7 = pcVar4;\n      } while (pcVar4 != local_50 + uVar8 + iVar3 * 2 + -2);\n      pcVar7 = local_50 + iVar3 * 2 + -2 + uVar8;\n    }\n    pcVar7[2] = '\0';\n    pcVar7[0] = ')';\n    pcVar7[1] = ';';\n    iVar5 = sqlite3_prepare_v2(newDb,local_50,-1,&pInsert,(char **)0x0);\n    puVar2 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar1 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = sqlite3_step(pQuery), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar3) {\n            do {\n              i = iVar5 + 1;\n              iVar6 = sqlite3_column_type(pQuery,iVar5);\n              switch(iVar6) {\n              case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;\n              case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;\n              case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;\n              case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;\n              case 5:\n                sqlite3_bind_null(pInsert,i);\n              }\n              iVar5 = i;\n            } while (iVar3 != i);\n          }\n          iVar5 = sqlite3_step(pInsert);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            pcVar7 = sqlite3_errmsg(newDb);\n            iVar5 = sqlite3_extended_errcode(newDb);\n            __fprintf_chk(*puVar1,1,"Error %d: %s\n",iVar5,pcVar7);\n          }\n          sqlite3_reset(pInsert);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar2);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        sqlite3_finalize(pQuery);\n        sqlite3_free(local_48);\n        local_48 = sqlite3_mprintf("SELECT * FROM \"%w\" ORDER BY rowid DESC;",zTable);\n        iVar5 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar1 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    zTable);\n    }\n    else {\n      pcVar7 = sqlite3_errmsg(newDb);\n      iVar3 = sqlite3_extended_errcode(newDb);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                    local_48);\n    }\n  }" { (expression_statement "iVar3 = sqlite3_column_count(pQuery);" (assignment_expression "iVar3 = sqlite3_column_count(pQuery)" identifier = (call_expression "sqlite3_column_count(pQuery)" identifier (argument_list "(pQuery)" ( identifier )))) ;) (expression_statement "local_50 = (char *)sqlite3_malloc64((longlong)(int)(iVar3 * 3 + uVar8 + 200));" (assignment_expression "local_50 = (char *)sqlite3_malloc64((longlong)(int)(iVar3 * 3 + uVar8 + 200))" identifier = (cast_expression "(char *)sqlite3_malloc64((longlong)(int)(iVar3 * 3 + uVar8 + 200))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_malloc64((longlong)(int)(iVar3 * 3 + uVar8 + 200))" identifier (argument_list "((longlong)(int)(iVar3 * 3 + uVar8 + 200))" ( (call_expression "(longlong)(int)(iVar3 * 3 + uVar8 + 200)" (call_expression "(longlong)(int)" (parenthesized_expression "(longlong)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(iVar3 * 3 + uVar8 + 200)" ( (binary_expression "iVar3 * 3 + uVar8 + 200" (binary_expression "iVar3 * 3 + uVar8" (binary_expression "iVar3 * 3" identifier * number_literal) + identifier) + number_literal) ))) ))))) ;) (if_statement "if (local_50 == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      shell_out_of_memory();\n    }" if (parenthesized_expression "(local_50 == (char *)0x0)" ( (binary_expression "local_50 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      shell_out_of_memory();\n    }" { comment (expression_statement "shell_out_of_memory();" (call_expression "shell_out_of_memory()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "sqlite3_snprintf(uVar8 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",zTable);" (call_expression "sqlite3_snprintf(uVar8 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",zTable)" identifier (argument_list "(uVar8 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",zTable)" ( (binary_expression "uVar8 + 200" identifier + number_literal) , identifier , (string_literal ""INSERT OR IGNORE INTO \"%s\" VALUES(?"" " string_content escape_sequence string_content escape_sequence string_content ") , identifier ))) ;) (expression_statement "pcVar7 = local_50;" (assignment_expression "pcVar7 = local_50" identifier = identifier) ;) (if_statement "if (*local_50 == '\0') {\n      uVar8 = 0;\n    }\n    else {\n      do {\n        pcVar7 = pcVar7 + 1;\n      } while (*pcVar7 != '\0');\n      uVar8 = (int)pcVar7 - (int)local_50 & 0x3fffffff;\n      pcVar7 = local_50 + uVar8;\n    }" if (parenthesized_expression "(*local_50 == '\0')" ( (binary_expression "*local_50 == '\0'" (pointer_expression "*local_50" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar8 = 0;\n    }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        pcVar7 = pcVar7 + 1;\n      } while (*pcVar7 != '\0');\n      uVar8 = (int)pcVar7 - (int)local_50 & 0x3fffffff;\n      pcVar7 = local_50 + uVar8;\n    }" else (compound_statement "{\n      do {\n        pcVar7 = pcVar7 + 1;\n      } while (*pcVar7 != '\0');\n      uVar8 = (int)pcVar7 - (int)local_50 & 0x3fffffff;\n      pcVar7 = local_50 + uVar8;\n    }" { (do_statement "do {\n        pcVar7 = pcVar7 + 1;\n      } while (*pcVar7 != '\0');" do (compound_statement "{\n        pcVar7 = pcVar7 + 1;\n      }" { (expression_statement "pcVar7 = pcVar7 + 1;" (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar7 != '\0')" ( (binary_expression "*pcVar7 != '\0'" (pointer_expression "*pcVar7" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar8 = (int)pcVar7 - (int)local_50 & 0x3fffffff;" (assignment_expression "uVar8 = (int)pcVar7 - (int)local_50 & 0x3fffffff" identifier = (binary_expression "(int)pcVar7 - (int)local_50 & 0x3fffffff" (binary_expression "(int)pcVar7 - (int)local_50" (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal)) ;) (expression_statement "pcVar7 = local_50 + uVar8;" (assignment_expression "pcVar7 = local_50 + uVar8" identifier = (binary_expression "local_50 + uVar8" identifier + identifier)) ;) }))) (if_statement "if (1 < iVar3) {\n      pcVar7 = local_50 + uVar8;\n      do {\n        pcVar4 = pcVar7 + 2;\n        pcVar7[0] = ',';\n        pcVar7[1] = '?';\n        pcVar7 = pcVar4;\n      } while (pcVar4 != local_50 + uVar8 + iVar3 * 2 + -2);\n      pcVar7 = local_50 + iVar3 * 2 + -2 + uVar8;\n    }" if (parenthesized_expression "(1 < iVar3)" ( (binary_expression "1 < iVar3" number_literal < identifier) )) (compound_statement "{\n      pcVar7 = local_50 + uVar8;\n      do {\n        pcVar4 = pcVar7 + 2;\n        pcVar7[0] = ',';\n        pcVar7[1] = '?';\n        pcVar7 = pcVar4;\n      } while (pcVar4 != local_50 + uVar8 + iVar3 * 2 + -2);\n      pcVar7 = local_50 + iVar3 * 2 + -2 + uVar8;\n    }" { (expression_statement "pcVar7 = local_50 + uVar8;" (assignment_expression "pcVar7 = local_50 + uVar8" identifier = (binary_expression "local_50 + uVar8" identifier + identifier)) ;) (do_statement "do {\n        pcVar4 = pcVar7 + 2;\n        pcVar7[0] = ',';\n        pcVar7[1] = '?';\n        pcVar7 = pcVar4;\n      } while (pcVar4 != local_50 + uVar8 + iVar3 * 2 + -2);" do (compound_statement "{\n        pcVar4 = pcVar7 + 2;\n        pcVar7[0] = ',';\n        pcVar7[1] = '?';\n        pcVar7 = pcVar4;\n      }" { (expression_statement "pcVar4 = pcVar7 + 2;" (assignment_expression "pcVar4 = pcVar7 + 2" identifier = (binary_expression "pcVar7 + 2" identifier + number_literal)) ;) (expression_statement "pcVar7[0] = ',';" (assignment_expression "pcVar7[0] = ','" (subscript_expression "pcVar7[0]" identifier [ number_literal ]) = (char_literal "','" ' character ')) ;) (expression_statement "pcVar7[1] = '?';" (assignment_expression "pcVar7[1] = '?'" (subscript_expression "pcVar7[1]" identifier [ number_literal ]) = (char_literal "'?'" ' character ')) ;) (expression_statement "pcVar7 = pcVar4;" (assignment_expression "pcVar7 = pcVar4" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar4 != local_50 + uVar8 + iVar3 * 2 + -2)" ( (binary_expression "pcVar4 != local_50 + uVar8 + iVar3 * 2 + -2" identifier != (binary_expression "local_50 + uVar8 + iVar3 * 2 + -2" (binary_expression "local_50 + uVar8 + iVar3 * 2" (binary_expression "local_50 + uVar8" identifier + identifier) + (binary_expression "iVar3 * 2" identifier * number_literal)) + number_literal)) )) ;) (expression_statement "pcVar7 = local_50 + iVar3 * 2 + -2 + uVar8;" (assignment_expression "pcVar7 = local_50 + iVar3 * 2 + -2 + uVar8" identifier = (binary_expression "local_50 + iVar3 * 2 + -2 + uVar8" (binary_expression "local_50 + iVar3 * 2 + -2" (binary_expression "local_50 + iVar3 * 2" identifier + (binary_expression "iVar3 * 2" identifier * number_literal)) + number_literal) + identifier)) ;) })) (expression_statement "pcVar7[2] = '\0';" (assignment_expression "pcVar7[2] = '\0'" (subscript_expression "pcVar7[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar7[0] = ')';" (assignment_expression "pcVar7[0] = ')'" (subscript_expression "pcVar7[0]" identifier [ number_literal ]) = (char_literal "')'" ' character ')) ;) (expression_statement "pcVar7[1] = ';';" (assignment_expression "pcVar7[1] = ';'" (subscript_expression "pcVar7[1]" identifier [ number_literal ]) = (char_literal "';'" ' character ')) ;) (expression_statement "iVar5 = sqlite3_prepare_v2(newDb,local_50,-1,&pInsert,(char **)0x0);" (assignment_expression "iVar5 = sqlite3_prepare_v2(newDb,local_50,-1,&pInsert,(char **)0x0)" identifier = (call_expression "sqlite3_prepare_v2(newDb,local_50,-1,&pInsert,(char **)0x0)" identifier (argument_list "(newDb,local_50,-1,&pInsert,(char **)0x0)" ( identifier , identifier , number_literal , (pointer_expression "&pInsert" & identifier) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) (expression_statement "puVar2 = PTR_stdout_0017bfe8;" (assignment_expression "puVar2 = PTR_stdout_0017bfe8" identifier = identifier) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 2;" (assignment_expression "local_30 = 2" identifier = number_literal) ;) (expression_statement "puVar1 = (undefined4 *)PTR_stderr_0017bfd0;" (assignment_expression "puVar1 = (undefined4 *)PTR_stderr_0017bfd0" identifier = (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = sqlite3_step(pQuery), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar3) {\n            do {\n              i = iVar5 + 1;\n              iVar6 = sqlite3_column_type(pQuery,iVar5);\n              switch(iVar6) {\n              case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;\n              case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;\n              case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;\n              case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;\n              case 5:\n                sqlite3_bind_null(pInsert,i);\n              }\n              iVar5 = i;\n            } while (iVar3 != i);\n          }\n          iVar5 = sqlite3_step(pInsert);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            pcVar7 = sqlite3_errmsg(newDb);\n            iVar5 = sqlite3_extended_errcode(newDb);\n            __fprintf_chk(*puVar1,1,"Error %d: %s\n",iVar5,pcVar7);\n          }\n          sqlite3_reset(pInsert);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar2);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        sqlite3_finalize(pQuery);\n        sqlite3_free(local_48);\n        local_48 = sqlite3_mprintf("SELECT * FROM \"%w\" ORDER BY rowid DESC;",zTable);\n        iVar5 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar1 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    zTable);\n    }\n    else {\n      pcVar7 = sqlite3_errmsg(newDb);\n      iVar3 = sqlite3_extended_errcode(newDb);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                    local_48);\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      while( true ) {\n        while (iVar5 = sqlite3_step(pQuery), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar3) {\n            do {\n              i = iVar5 + 1;\n              iVar6 = sqlite3_column_type(pQuery,iVar5);\n              switch(iVar6) {\n              case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;\n              case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;\n              case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;\n              case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;\n              case 5:\n                sqlite3_bind_null(pInsert,i);\n              }\n              iVar5 = i;\n            } while (iVar3 != i);\n          }\n          iVar5 = sqlite3_step(pInsert);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            pcVar7 = sqlite3_errmsg(newDb);\n            iVar5 = sqlite3_extended_errcode(newDb);\n            __fprintf_chk(*puVar1,1,"Error %d: %s\n",iVar5,pcVar7);\n          }\n          sqlite3_reset(pInsert);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar2);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        sqlite3_finalize(pQuery);\n        sqlite3_free(local_48);\n        local_48 = sqlite3_mprintf("SELECT * FROM \"%w\" ORDER BY rowid DESC;",zTable);\n        iVar5 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar1 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    zTable);\n    }" { (while_statement "while( true ) {\n        while (iVar5 = sqlite3_step(pQuery), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar3) {\n            do {\n              i = iVar5 + 1;\n              iVar6 = sqlite3_column_type(pQuery,iVar5);\n              switch(iVar6) {\n              case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;\n              case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;\n              case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;\n              case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;\n              case 5:\n                sqlite3_bind_null(pInsert,i);\n              }\n              iVar5 = i;\n            } while (iVar3 != i);\n          }\n          iVar5 = sqlite3_step(pInsert);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            pcVar7 = sqlite3_errmsg(newDb);\n            iVar5 = sqlite3_extended_errcode(newDb);\n            __fprintf_chk(*puVar1,1,"Error %d: %s\n",iVar5,pcVar7);\n          }\n          sqlite3_reset(pInsert);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar2);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        sqlite3_finalize(pQuery);\n        sqlite3_free(local_48);\n        local_48 = sqlite3_mprintf("SELECT * FROM \"%w\" ORDER BY rowid DESC;",zTable);\n        iVar5 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar1 = (undefined4 *)PTR_stderr_0017bfd0;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        while (iVar5 = sqlite3_step(pQuery), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar3) {\n            do {\n              i = iVar5 + 1;\n              iVar6 = sqlite3_column_type(pQuery,iVar5);\n              switch(iVar6) {\n              case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;\n              case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;\n              case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;\n              case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;\n              case 5:\n                sqlite3_bind_null(pInsert,i);\n              }\n              iVar5 = i;\n            } while (iVar3 != i);\n          }\n          iVar5 = sqlite3_step(pInsert);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            pcVar7 = sqlite3_errmsg(newDb);\n            iVar5 = sqlite3_extended_errcode(newDb);\n            __fprintf_chk(*puVar1,1,"Error %d: %s\n",iVar5,pcVar7);\n          }\n          sqlite3_reset(pInsert);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar2);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        sqlite3_finalize(pQuery);\n        sqlite3_free(local_48);\n        local_48 = sqlite3_mprintf("SELECT * FROM \"%w\" ORDER BY rowid DESC;",zTable);\n        iVar5 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar1 = (undefined4 *)PTR_stderr_0017bfd0;\n      }" { (while_statement "while (iVar5 = sqlite3_step(pQuery), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar3) {\n            do {\n              i = iVar5 + 1;\n              iVar6 = sqlite3_column_type(pQuery,iVar5);\n              switch(iVar6) {\n              case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;\n              case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;\n              case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;\n              case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;\n              case 5:\n                sqlite3_bind_null(pInsert,i);\n              }\n              iVar5 = i;\n            } while (iVar3 != i);\n          }\n          iVar5 = sqlite3_step(pInsert);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            pcVar7 = sqlite3_errmsg(newDb);\n            iVar5 = sqlite3_extended_errcode(newDb);\n            __fprintf_chk(*puVar1,1,"Error %d: %s\n",iVar5,pcVar7);\n          }\n          sqlite3_reset(pInsert);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar2);\n          }\n        }" while (parenthesized_expression "(iVar5 = sqlite3_step(pQuery), iVar5 == 100)" ( (comma_expression "iVar5 = sqlite3_step(pQuery), iVar5 == 100" (assignment_expression "iVar5 = sqlite3_step(pQuery)" identifier = (call_expression "sqlite3_step(pQuery)" identifier (argument_list "(pQuery)" ( identifier )))) , (binary_expression "iVar5 == 100" identifier == number_literal)) )) (compound_statement "{\n          iVar5 = 0;\n          if (0 < iVar3) {\n            do {\n              i = iVar5 + 1;\n              iVar6 = sqlite3_column_type(pQuery,iVar5);\n              switch(iVar6) {\n              case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;\n              case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;\n              case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;\n              case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;\n              case 5:\n                sqlite3_bind_null(pInsert,i);\n              }\n              iVar5 = i;\n            } while (iVar3 != i);\n          }\n          iVar5 = sqlite3_step(pInsert);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            pcVar7 = sqlite3_errmsg(newDb);\n            iVar5 = sqlite3_extended_errcode(newDb);\n            __fprintf_chk(*puVar1,1,"Error %d: %s\n",iVar5,pcVar7);\n          }\n          sqlite3_reset(pInsert);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar2);\n          }\n        }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar3) {\n            do {\n              i = iVar5 + 1;\n              iVar6 = sqlite3_column_type(pQuery,iVar5);\n              switch(iVar6) {\n              case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;\n              case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;\n              case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;\n              case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;\n              case 5:\n                sqlite3_bind_null(pInsert,i);\n              }\n              iVar5 = i;\n            } while (iVar3 != i);\n          }" if (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) (compound_statement "{\n            do {\n              i = iVar5 + 1;\n              iVar6 = sqlite3_column_type(pQuery,iVar5);\n              switch(iVar6) {\n              case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;\n              case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;\n              case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;\n              case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;\n              case 5:\n                sqlite3_bind_null(pInsert,i);\n              }\n              iVar5 = i;\n            } while (iVar3 != i);\n          }" { (do_statement "do {\n              i = iVar5 + 1;\n              iVar6 = sqlite3_column_type(pQuery,iVar5);\n              switch(iVar6) {\n              case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;\n              case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;\n              case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;\n              case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;\n              case 5:\n                sqlite3_bind_null(pInsert,i);\n              }\n              iVar5 = i;\n            } while (iVar3 != i);" do (compound_statement "{\n              i = iVar5 + 1;\n              iVar6 = sqlite3_column_type(pQuery,iVar5);\n              switch(iVar6) {\n              case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;\n              case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;\n              case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;\n              case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;\n              case 5:\n                sqlite3_bind_null(pInsert,i);\n              }\n              iVar5 = i;\n            }" { (expression_statement "i = iVar5 + 1;" (assignment_expression "i = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar6 = sqlite3_column_type(pQuery,iVar5);" (assignment_expression "iVar6 = sqlite3_column_type(pQuery,iVar5)" identifier = (call_expression "sqlite3_column_type(pQuery,iVar5)" identifier (argument_list "(pQuery,iVar5)" ( identifier , identifier )))) ;) (switch_statement "switch(iVar6) {\n              case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;\n              case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;\n              case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;\n              case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;\n              case 5:\n                sqlite3_bind_null(pInsert,i);\n              }" switch (parenthesized_expression "(iVar6)" ( identifier )) (compound_statement "{\n              case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;\n              case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;\n              case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;\n              case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;\n              case 5:\n                sqlite3_bind_null(pInsert,i);\n              }" { (case_statement "case 1:\n                iValue = sqlite3_column_int64(pQuery,iVar5);\n                sqlite3_bind_int64(pInsert,i,iValue);\n                break;" case number_literal : (expression_statement "iValue = sqlite3_column_int64(pQuery,iVar5);" (assignment_expression "iValue = sqlite3_column_int64(pQuery,iVar5)" identifier = (call_expression "sqlite3_column_int64(pQuery,iVar5)" identifier (argument_list "(pQuery,iVar5)" ( identifier , identifier )))) ;) (expression_statement "sqlite3_bind_int64(pInsert,i,iValue);" (call_expression "sqlite3_bind_int64(pInsert,i,iValue)" identifier (argument_list "(pInsert,i,iValue)" ( identifier , identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n                rValue = sqlite3_column_double(pQuery,iVar5);\n                sqlite3_bind_double(pInsert,i,rValue);\n                break;" case number_literal : (expression_statement "rValue = sqlite3_column_double(pQuery,iVar5);" (assignment_expression "rValue = sqlite3_column_double(pQuery,iVar5)" identifier = (call_expression "sqlite3_column_double(pQuery,iVar5)" identifier (argument_list "(pQuery,iVar5)" ( identifier , identifier )))) ;) (expression_statement "sqlite3_bind_double(pInsert,i,rValue);" (call_expression "sqlite3_bind_double(pInsert,i,rValue)" identifier (argument_list "(pInsert,i,rValue)" ( identifier , identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n                zData_00 = sqlite3_column_text(pQuery,iVar5);\n                sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);\n                break;" case number_literal : (expression_statement "zData_00 = sqlite3_column_text(pQuery,iVar5);" (assignment_expression "zData_00 = sqlite3_column_text(pQuery,iVar5)" identifier = (call_expression "sqlite3_column_text(pQuery,iVar5)" identifier (argument_list "(pQuery,iVar5)" ( identifier , identifier )))) ;) (expression_statement "sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0);" (call_expression "sqlite3_bind_text(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0)" identifier (argument_list "(pInsert,i,(char *)zData_00,-1,(_func_void_void_ptr *)0x0)" ( identifier , identifier , (cast_expression "(char *)zData_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (cast_expression "(_func_void_void_ptr *)0x0" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n                iVar6 = sqlite3_column_bytes(pQuery,iVar5);\n                zData = sqlite3_column_blob(pQuery,iVar5);\n                sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);\n                break;" case number_literal : (expression_statement "iVar6 = sqlite3_column_bytes(pQuery,iVar5);" (assignment_expression "iVar6 = sqlite3_column_bytes(pQuery,iVar5)" identifier = (call_expression "sqlite3_column_bytes(pQuery,iVar5)" identifier (argument_list "(pQuery,iVar5)" ( identifier , identifier )))) ;) (expression_statement "zData = sqlite3_column_blob(pQuery,iVar5);" (assignment_expression "zData = sqlite3_column_blob(pQuery,iVar5)" identifier = (call_expression "sqlite3_column_blob(pQuery,iVar5)" identifier (argument_list "(pQuery,iVar5)" ( identifier , identifier )))) ;) (expression_statement "sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0);" (call_expression "sqlite3_bind_blob(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0)" identifier (argument_list "(pInsert,i,zData,iVar6,(_func_void_void_ptr *)0x0)" ( identifier , identifier , identifier , identifier , (cast_expression "(_func_void_void_ptr *)0x0" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n                sqlite3_bind_null(pInsert,i);" case number_literal : (expression_statement "sqlite3_bind_null(pInsert,i);" (call_expression "sqlite3_bind_null(pInsert,i)" identifier (argument_list "(pInsert,i)" ( identifier , identifier ))) ;)) })) (expression_statement "iVar5 = i;" (assignment_expression "iVar5 = i" identifier = identifier) ;) }) while (parenthesized_expression "(iVar3 != i)" ( (binary_expression "iVar3 != i" identifier != identifier) )) ;) })) (expression_statement "iVar5 = sqlite3_step(pInsert);" (assignment_expression "iVar5 = sqlite3_step(pInsert)" identifier = (call_expression "sqlite3_step(pInsert)" identifier (argument_list "(pInsert)" ( identifier )))) ;) (if_statement "if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            pcVar7 = sqlite3_errmsg(newDb);\n            iVar5 = sqlite3_extended_errcode(newDb);\n            __fprintf_chk(*puVar1,1,"Error %d: %s\n",iVar5,pcVar7);\n          }" if (parenthesized_expression "((1 < iVar5 - 100U) && (iVar5 != 0))" ( (binary_expression "(1 < iVar5 - 100U) && (iVar5 != 0)" (parenthesized_expression "(1 < iVar5 - 100U)" ( (binary_expression "1 < iVar5 - 100U" number_literal < (binary_expression "iVar5 - 100U" identifier - number_literal)) )) && (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) ))) )) (compound_statement "{\n            pcVar7 = sqlite3_errmsg(newDb);\n            iVar5 = sqlite3_extended_errcode(newDb);\n            __fprintf_chk(*puVar1,1,"Error %d: %s\n",iVar5,pcVar7);\n          }" { (expression_statement "pcVar7 = sqlite3_errmsg(newDb);" (assignment_expression "pcVar7 = sqlite3_errmsg(newDb)" identifier = (call_expression "sqlite3_errmsg(newDb)" identifier (argument_list "(newDb)" ( identifier )))) ;) (expression_statement "iVar5 = sqlite3_extended_errcode(newDb);" (assignment_expression "iVar5 = sqlite3_extended_errcode(newDb)" identifier = (call_expression "sqlite3_extended_errcode(newDb)" identifier (argument_list "(newDb)" ( identifier )))) ;) (expression_statement "__fprintf_chk(*puVar1,1,"Error %d: %s\n",iVar5,pcVar7);" (call_expression "__fprintf_chk(*puVar1,1,"Error %d: %s\n",iVar5,pcVar7)" identifier (argument_list "(*puVar1,1,"Error %d: %s\n",iVar5,pcVar7)" ( (pointer_expression "*puVar1" * identifier) , number_literal , (string_literal ""Error %d: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) })) (expression_statement "sqlite3_reset(pInsert);" (call_expression "sqlite3_reset(pInsert)" identifier (argument_list "(pInsert)" ( identifier ))) ;) (expression_statement "local_58 = local_58 + 1;" (assignment_expression "local_58 = local_58 + 1" identifier = (binary_expression "local_58 + 1" identifier + number_literal)) ;) (if_statement "if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar2);\n          }" if (parenthesized_expression "(local_58 == (local_58 / 10000) * 10000)" ( (binary_expression "local_58 == (local_58 / 10000) * 10000" identifier == (binary_expression "(local_58 / 10000) * 10000" (parenthesized_expression "(local_58 / 10000)" ( (binary_expression "local_58 / 10000" identifier / number_literal) )) * number_literal)) )) (compound_statement "{\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar2);\n          }" { (expression_statement "__printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);" (call_expression "__printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3])" identifier (argument_list "(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3])" ( number_literal , (pointer_expression "&DAT_001173fd" & identifier) , (cast_expression "(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)(&DAT_00117401)[local_58 / 10000 & 3]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "(&DAT_00117401)[local_58 / 10000 & 3]" (parenthesized_expression "(&DAT_00117401)" ( (pointer_expression "&DAT_00117401" & identifier) )) [ (binary_expression "local_58 / 10000 & 3" (binary_expression "local_58 / 10000" identifier / number_literal) & number_literal) ]))) ))) ;) (expression_statement "fflush(*(FILE **)puVar2);" (call_expression "fflush(*(FILE **)puVar2)" identifier (argument_list "(*(FILE **)puVar2)" ( (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) })) })) (if_statement "if (iVar5 == 0x65) goto LAB_00022311;" if (parenthesized_expression "(iVar5 == 0x65)" ( (binary_expression "iVar5 == 0x65" identifier == number_literal) )) (goto_statement "goto LAB_00022311;" goto statement_identifier ;)) (expression_statement "sqlite3_finalize(pQuery);" (call_expression "sqlite3_finalize(pQuery)" identifier (argument_list "(pQuery)" ( identifier ))) ;) (expression_statement "sqlite3_free(local_48);" (call_expression "sqlite3_free(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) (expression_statement "local_48 = sqlite3_mprintf("SELECT * FROM \"%w\" ORDER BY rowid DESC;",zTable);" (assignment_expression "local_48 = sqlite3_mprintf("SELECT * FROM \"%w\" ORDER BY rowid DESC;",zTable)" identifier = (call_expression "sqlite3_mprintf("SELECT * FROM \"%w\" ORDER BY rowid DESC;",zTable)" identifier (argument_list "("SELECT * FROM \"%w\" ORDER BY rowid DESC;",zTable)" ( (string_literal ""SELECT * FROM \"%w\" ORDER BY rowid DESC;"" " string_content escape_sequence string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "iVar5 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0);" (assignment_expression "iVar5 = sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0)" identifier = (call_expression "sqlite3_prepare_v2(p->db,local_48,-1,&pQuery,(char **)0x0)" identifier (argument_list "(p->db,local_48,-1,&pQuery,(char **)0x0)" ( (field_expression "p->db" identifier -> field_identifier) , identifier , number_literal , (pointer_expression "&pQuery" & identifier) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) (if_statement "if (iVar5 != 0) break;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (local_30 == 1) goto LAB_00022311;" if (parenthesized_expression "(local_30 == 1)" ( (binary_expression "local_30 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00022311;" goto statement_identifier ;)) (expression_statement "local_30 = 1;" (assignment_expression "local_30 = 1" identifier = number_literal) ;) (expression_statement "puVar1 = (undefined4 *)PTR_stderr_0017bfd0;" (assignment_expression "puVar1 = (undefined4 *)PTR_stderr_0017bfd0" identifier = (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    zTable);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    zTable)" identifier (argument_list "(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    zTable)" ( (pointer_expression "*(undefined4 *)PTR_stderr_0017bfd0" * (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""Warning: cannot step \"%s\" backwards"" " string_content escape_sequence string_content escape_sequence string_content ") , identifier ))) ;) }) (else_clause "else {\n      pcVar7 = sqlite3_errmsg(newDb);\n      iVar3 = sqlite3_extended_errcode(newDb);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                    local_48);\n    }" else (compound_statement "{\n      pcVar7 = sqlite3_errmsg(newDb);\n      iVar3 = sqlite3_extended_errcode(newDb);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                    local_48);\n    }" { (expression_statement "pcVar7 = sqlite3_errmsg(newDb);" (assignment_expression "pcVar7 = sqlite3_errmsg(newDb)" identifier = (call_expression "sqlite3_errmsg(newDb)" identifier (argument_list "(newDb)" ( identifier )))) ;) (expression_statement "iVar3 = sqlite3_extended_errcode(newDb);" (assignment_expression "iVar3 = sqlite3_extended_errcode(newDb)" identifier = (call_expression "sqlite3_extended_errcode(newDb)" identifier (argument_list "(newDb)" ( identifier )))) ;) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                    local_48);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                    local_48)" identifier (argument_list "(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                    local_48)" ( (pointer_expression "*(undefined4 *)PTR_stderr_0017bfd0" * (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""Error %d: %s on [%s]\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) }))) }) (else_clause "else {\n    pcVar7 = sqlite3_errmsg(p->db);\n    iVar3 = sqlite3_extended_errcode(p->db);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                  local_48);\n    local_50 = (char *)0x0;\n  }" else (compound_statement "{\n    pcVar7 = sqlite3_errmsg(p->db);\n    iVar3 = sqlite3_extended_errcode(p->db);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                  local_48);\n    local_50 = (char *)0x0;\n  }" { (expression_statement "pcVar7 = sqlite3_errmsg(p->db);" (assignment_expression "pcVar7 = sqlite3_errmsg(p->db)" identifier = (call_expression "sqlite3_errmsg(p->db)" identifier (argument_list "(p->db)" ( (field_expression "p->db" identifier -> field_identifier) )))) ;) (expression_statement "iVar3 = sqlite3_extended_errcode(p->db);" (assignment_expression "iVar3 = sqlite3_extended_errcode(p->db)" identifier = (call_expression "sqlite3_extended_errcode(p->db)" identifier (argument_list "(p->db)" ( (field_expression "p->db" identifier -> field_identifier) )))) ;) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                  local_48);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                  local_48)" identifier (argument_list "(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",iVar3,pcVar7,\n                  local_48)" ( (pointer_expression "*(undefined4 *)PTR_stderr_0017bfd0" * (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""Error %d: %s on [%s]\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_00022311:\n  sqlite3_finalize(pQuery);" statement_identifier : (expression_statement "sqlite3_finalize(pQuery);" (call_expression "sqlite3_finalize(pQuery)" identifier (argument_list "(pQuery)" ( identifier ))) ;)) (expression_statement "sqlite3_finalize(pInsert);" (call_expression "sqlite3_finalize(pInsert)" identifier (argument_list "(pInsert)" ( identifier ))) ;) (expression_statement "sqlite3_free(local_48);" (call_expression "sqlite3_free(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) (expression_statement "sqlite3_free(local_50);" (call_expression "sqlite3_free(local_50)" identifier (argument_list "(local_50)" ( identifier ))) ;) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_00021f30(undefined4 *param_1,undefined4 param_2,char *param_3)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  uint uVar10;\n  int in_GS_OFFSET;\n  uint local_58;\n  char *local_50;\n  undefined4 local_48;\n  int local_30;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x21f39;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28 = 0;\n  local_24 = 0;\n  pcVar9 = param_3;\n  if (*param_3 == '\0') {\n    uVar10 = 0;\n  }\n  else {\n    do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');\n    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;\n  }\n  local_48 = FUN_0008ff90("SELECT * FROM \"%w\"",param_3);\n  iVar4 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n  if (iVar4 == 0) {\n    iVar4 = FUN_00039060(local_28);\n    iVar5 = iVar4 * 3 + uVar10 + 200;\n    local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);\n    if (local_50 == (char *)0x0) {\n                    \n      FUN_0001f910();\n    }\n    FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);\n    pcVar9 = local_50;\n    if (*local_50 == '\0') {\n      uVar10 = 0;\n    }\n    else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }\n    if (1 < iVar4) {\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }\n    pcVar9[2] = '\0';\n    pcVar9[0] = ')';\n    pcVar9[1] = ';';\n    iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);\n    puVar3 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }\n    else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }\n  }\n  else {\n    uVar7 = FUN_00073210(*param_1);\n    uVar8 = FUN_00073180(*param_1);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );\n    local_50 = (char *)0x0;\n  }\nLAB_00022311:\n  FUN_000a96f0(local_28);\n  FUN_000a96f0(local_24);\n  FUN_00042800(local_48);\n  FUN_00042800(local_50);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00116110();\n}\n\n" (function_definition "void FUN_00021f30(undefined4 *param_1,undefined4 param_2,char *param_3)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  uint uVar10;\n  int in_GS_OFFSET;\n  uint local_58;\n  char *local_50;\n  undefined4 local_48;\n  int local_30;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x21f39;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28 = 0;\n  local_24 = 0;\n  pcVar9 = param_3;\n  if (*param_3 == '\0') {\n    uVar10 = 0;\n  }\n  else {\n    do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');\n    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;\n  }\n  local_48 = FUN_0008ff90("SELECT * FROM \"%w\"",param_3);\n  iVar4 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n  if (iVar4 == 0) {\n    iVar4 = FUN_00039060(local_28);\n    iVar5 = iVar4 * 3 + uVar10 + 200;\n    local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);\n    if (local_50 == (char *)0x0) {\n                    \n      FUN_0001f910();\n    }\n    FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);\n    pcVar9 = local_50;\n    if (*local_50 == '\0') {\n      uVar10 = 0;\n    }\n    else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }\n    if (1 < iVar4) {\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }\n    pcVar9[2] = '\0';\n    pcVar9[0] = ')';\n    pcVar9[1] = ';';\n    iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);\n    puVar3 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }\n    else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }\n  }\n  else {\n    uVar7 = FUN_00073210(*param_1);\n    uVar8 = FUN_00073180(*param_1);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );\n    local_50 = (char *)0x0;\n  }\nLAB_00022311:\n  FUN_000a96f0(local_28);\n  FUN_000a96f0(local_24);\n  FUN_00042800(local_48);\n  FUN_00042800(local_50);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00116110();\n}" primitive_type (function_declarator "FUN_00021f30(undefined4 *param_1,undefined4 param_2,char *param_3)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,char *param_3)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  uint uVar10;\n  int in_GS_OFFSET;\n  uint local_58;\n  char *local_50;\n  undefined4 local_48;\n  int local_30;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x21f39;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28 = 0;\n  local_24 = 0;\n  pcVar9 = param_3;\n  if (*param_3 == '\0') {\n    uVar10 = 0;\n  }\n  else {\n    do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');\n    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;\n  }\n  local_48 = FUN_0008ff90("SELECT * FROM \"%w\"",param_3);\n  iVar4 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n  if (iVar4 == 0) {\n    iVar4 = FUN_00039060(local_28);\n    iVar5 = iVar4 * 3 + uVar10 + 200;\n    local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);\n    if (local_50 == (char *)0x0) {\n                    \n      FUN_0001f910();\n    }\n    FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);\n    pcVar9 = local_50;\n    if (*local_50 == '\0') {\n      uVar10 = 0;\n    }\n    else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }\n    if (1 < iVar4) {\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }\n    pcVar9[2] = '\0';\n    pcVar9[0] = ')';\n    pcVar9[1] = ';';\n    iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);\n    puVar3 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }\n    else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }\n  }\n  else {\n    uVar7 = FUN_00073210(*param_1);\n    uVar8 = FUN_00073180(*param_1);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );\n    local_50 = (char *)0x0;\n  }\nLAB_00022311:\n  FUN_000a96f0(local_28);\n  FUN_000a96f0(local_24);\n  FUN_00042800(local_48);\n  FUN_00042800(local_50);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00116110();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "char *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x21f39;" (assignment_expression "uStack_14 = 0x21f39" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "pcVar9 = param_3;" (assignment_expression "pcVar9 = param_3" identifier = identifier) ;) (if_statement "if (*param_3 == '\0') {\n    uVar10 = 0;\n  }\n  else {\n    do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');\n    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;\n  }" if (parenthesized_expression "(*param_3 == '\0')" ( (binary_expression "*param_3 == '\0'" (pointer_expression "*param_3" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar10 = 0;\n  }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');\n    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;\n  }" else (compound_statement "{\n    do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');\n    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;\n  }" { (do_statement "do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');" do (compound_statement "{\n      pcVar9 = pcVar9 + 1;\n    }" { (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar9 != '\0')" ( (binary_expression "*pcVar9 != '\0'" (pointer_expression "*pcVar9" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;" (assignment_expression "uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff" identifier = (binary_expression "(int)pcVar9 - (int)param_3 & 0x3fffffff" (binary_expression "(int)pcVar9 - (int)param_3" (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal)) ;) }))) (expression_statement "local_48 = FUN_0008ff90("SELECT * FROM \"%w\"",param_3);" (assignment_expression "local_48 = FUN_0008ff90("SELECT * FROM \"%w\"",param_3)" identifier = (call_expression "FUN_0008ff90("SELECT * FROM \"%w\"",param_3)" identifier (argument_list "("SELECT * FROM \"%w\"",param_3)" ( (string_literal ""SELECT * FROM \"%w\""" " string_content escape_sequence string_content escape_sequence ") , identifier )))) ;) (expression_statement "iVar4 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);" (assignment_expression "iVar4 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0)" identifier = (call_expression "FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0)" identifier (argument_list "(*param_1,local_48,0xffffffff,&local_28,0)" ( (pointer_expression "*param_1" * identifier) , identifier , number_literal , (pointer_expression "&local_28" & identifier) , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n    iVar4 = FUN_00039060(local_28);\n    iVar5 = iVar4 * 3 + uVar10 + 200;\n    local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);\n    if (local_50 == (char *)0x0) {\n                    \n      FUN_0001f910();\n    }\n    FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);\n    pcVar9 = local_50;\n    if (*local_50 == '\0') {\n      uVar10 = 0;\n    }\n    else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }\n    if (1 < iVar4) {\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }\n    pcVar9[2] = '\0';\n    pcVar9[0] = ')';\n    pcVar9[1] = ';';\n    iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);\n    puVar3 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }\n    else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }\n  }\n  else {\n    uVar7 = FUN_00073210(*param_1);\n    uVar8 = FUN_00073180(*param_1);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );\n    local_50 = (char *)0x0;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar4 = FUN_00039060(local_28);\n    iVar5 = iVar4 * 3 + uVar10 + 200;\n    local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);\n    if (local_50 == (char *)0x0) {\n                    \n      FUN_0001f910();\n    }\n    FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);\n    pcVar9 = local_50;\n    if (*local_50 == '\0') {\n      uVar10 = 0;\n    }\n    else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }\n    if (1 < iVar4) {\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }\n    pcVar9[2] = '\0';\n    pcVar9[0] = ')';\n    pcVar9[1] = ';';\n    iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);\n    puVar3 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }\n    else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }\n  }" { (expression_statement "iVar4 = FUN_00039060(local_28);" (assignment_expression "iVar4 = FUN_00039060(local_28)" identifier = (call_expression "FUN_00039060(local_28)" identifier (argument_list "(local_28)" ( identifier )))) ;) (expression_statement "iVar5 = iVar4 * 3 + uVar10 + 200;" (assignment_expression "iVar5 = iVar4 * 3 + uVar10 + 200" identifier = (binary_expression "iVar4 * 3 + uVar10 + 200" (binary_expression "iVar4 * 3 + uVar10" (binary_expression "iVar4 * 3" identifier * number_literal) + identifier) + number_literal)) ;) (expression_statement "local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);" (assignment_expression "local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f)" identifier = (cast_expression "(char *)FUN_0005d080(iVar5,iVar5 >> 0x1f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0005d080(iVar5,iVar5 >> 0x1f)" identifier (argument_list "(iVar5,iVar5 >> 0x1f)" ( identifier , (binary_expression "iVar5 >> 0x1f" identifier >> number_literal) ))))) ;) (if_statement "if (local_50 == (char *)0x0) {\n                    \n      FUN_0001f910();\n    }" if (parenthesized_expression "(local_50 == (char *)0x0)" ( (binary_expression "local_50 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n      FUN_0001f910();\n    }" { (expression_statement "FUN_0001f910();" (call_expression "FUN_0001f910()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);" (call_expression "FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3)" identifier (argument_list "(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3)" ( (binary_expression "uVar10 + 200" identifier + number_literal) , identifier , (string_literal ""INSERT OR IGNORE INTO \"%s\" VALUES(?"" " string_content escape_sequence string_content escape_sequence string_content ") , identifier ))) ;) (expression_statement "pcVar9 = local_50;" (assignment_expression "pcVar9 = local_50" identifier = identifier) ;) (if_statement "if (*local_50 == '\0') {\n      uVar10 = 0;\n    }\n    else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }" if (parenthesized_expression "(*local_50 == '\0')" ( (binary_expression "*local_50 == '\0'" (pointer_expression "*local_50" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = 0;\n    }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }" else (compound_statement "{\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }" { (do_statement "do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');" do (compound_statement "{\n        pcVar9 = pcVar9 + 1;\n      }" { (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pcVar9 != '\0')" ( (binary_expression "*pcVar9 != '\0'" (pointer_expression "*pcVar9" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;" (assignment_expression "uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff" identifier = (binary_expression "(int)pcVar9 - (int)local_50 & 0x3fffffff" (binary_expression "(int)pcVar9 - (int)local_50" (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal)) ;) (expression_statement "pcVar9 = local_50 + uVar10;" (assignment_expression "pcVar9 = local_50 + uVar10" identifier = (binary_expression "local_50 + uVar10" identifier + identifier)) ;) }))) (if_statement "if (1 < iVar4) {\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }" if (parenthesized_expression "(1 < iVar4)" ( (binary_expression "1 < iVar4" number_literal < identifier) )) (compound_statement "{\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }" { (expression_statement "pcVar9 = local_50 + uVar10;" (assignment_expression "pcVar9 = local_50 + uVar10" identifier = (binary_expression "local_50 + uVar10" identifier + identifier)) ;) (do_statement "do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);" do (compound_statement "{\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      }" { (expression_statement "pcVar6 = pcVar9 + 2;" (assignment_expression "pcVar6 = pcVar9 + 2" identifier = (binary_expression "pcVar9 + 2" identifier + number_literal)) ;) (expression_statement "pcVar9[0] = ',';" (assignment_expression "pcVar9[0] = ','" (subscript_expression "pcVar9[0]" identifier [ number_literal ]) = (char_literal "','" ' character ')) ;) (expression_statement "pcVar9[1] = '?';" (assignment_expression "pcVar9[1] = '?'" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) = (char_literal "'?'" ' character ')) ;) (expression_statement "pcVar9 = pcVar6;" (assignment_expression "pcVar9 = pcVar6" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2)" ( (binary_expression "pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2" identifier != (binary_expression "local_50 + uVar10 + iVar4 * 2 + -2" (binary_expression "local_50 + uVar10 + iVar4 * 2" (binary_expression "local_50 + uVar10" identifier + identifier) + (binary_expression "iVar4 * 2" identifier * number_literal)) + number_literal)) )) ;) (expression_statement "pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;" (assignment_expression "pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10" identifier = (binary_expression "local_50 + iVar4 * 2 + -2 + uVar10" (binary_expression "local_50 + iVar4 * 2 + -2" (binary_expression "local_50 + iVar4 * 2" identifier + (binary_expression "iVar4 * 2" identifier * number_literal)) + number_literal) + identifier)) ;) })) (expression_statement "pcVar9[2] = '\0';" (assignment_expression "pcVar9[2] = '\0'" (subscript_expression "pcVar9[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar9[0] = ')';" (assignment_expression "pcVar9[0] = ')'" (subscript_expression "pcVar9[0]" identifier [ number_literal ]) = (char_literal "')'" ' character ')) ;) (expression_statement "pcVar9[1] = ';';" (assignment_expression "pcVar9[1] = ';'" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) = (char_literal "';'" ' character ')) ;) (expression_statement "iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);" (assignment_expression "iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0)" identifier = (call_expression "FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0)" identifier (argument_list "(param_2,local_50,0xffffffff,&local_24,0)" ( identifier , identifier , number_literal , (pointer_expression "&local_24" & identifier) , number_literal )))) ;) (expression_statement "puVar3 = PTR_stdout_0017bfe8;" (assignment_expression "puVar3 = PTR_stdout_0017bfe8" identifier = identifier) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 2;" (assignment_expression "local_30 = 2" identifier = number_literal) ;) (expression_statement "puVar2 = (undefined4 *)PTR_stderr_0017bfd0;" (assignment_expression "puVar2 = (undefined4 *)PTR_stderr_0017bfd0" identifier = (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }\n    else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }" { (while_statement "while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }" { (while_statement "while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }" while (parenthesized_expression "(iVar5 = FUN_000ccd70(local_28), iVar5 == 100)" ( (comma_expression "iVar5 = FUN_000ccd70(local_28), iVar5 == 100" (assignment_expression "iVar5 = FUN_000ccd70(local_28)" identifier = (call_expression "FUN_000ccd70(local_28)" identifier (argument_list "(local_28)" ( identifier )))) , (binary_expression "iVar5 == 100" identifier == number_literal)) )) (compound_statement "{\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }" { (do_statement "do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);" do (compound_statement "{\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            }" { (expression_statement "iVar1 = iVar5 + 1;" (assignment_expression "iVar1 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = FUN_000562f0(local_28,iVar5);" (assignment_expression "uVar7 = FUN_000562f0(local_28,iVar5)" identifier = (call_expression "FUN_000562f0(local_28,iVar5)" identifier (argument_list "(local_28,iVar5)" ( identifier , identifier )))) ;) (switch_statement "switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }" switch (parenthesized_expression "(uVar7)" ( identifier )) (compound_statement "{\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }" { (case_statement "case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;" case number_literal : (expression_statement "FUN_000561a0(local_28,iVar5);" (call_expression "FUN_000561a0(local_28,iVar5)" identifier (argument_list "(local_28,iVar5)" ( identifier , identifier ))) ;) (expression_statement "FUN_000739f0(local_24,iVar1);" (call_expression "FUN_000739f0(local_24,iVar1)" identifier (argument_list "(local_24,iVar1)" ( identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;" case number_literal : (expression_statement "FUN_00056140(local_28,iVar5);" (call_expression "FUN_00056140(local_28,iVar5)" identifier (argument_list "(local_28,iVar5)" ( identifier , identifier ))) ;) (expression_statement "FUN_00073970(local_24,iVar1);" (call_expression "FUN_00073970(local_24,iVar1)" identifier (argument_list "(local_24,iVar1)" ( identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;" case number_literal : (expression_statement "uVar7 = FUN_0006a9b0(local_28,iVar5);" (assignment_expression "uVar7 = FUN_0006a9b0(local_28,iVar5)" identifier = (call_expression "FUN_0006a9b0(local_28,iVar5)" identifier (argument_list "(local_28,iVar5)" ( identifier , identifier )))) ;) (expression_statement "FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);" (call_expression "FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0)" identifier (argument_list "(local_24,iVar1,uVar7,0xffffffff,0)" ( identifier , identifier , identifier , number_literal , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;" case number_literal : (expression_statement "uVar7 = FUN_0006a300(local_28,iVar5);" (assignment_expression "uVar7 = FUN_0006a300(local_28,iVar5)" identifier = (call_expression "FUN_0006a300(local_28,iVar5)" identifier (argument_list "(local_28,iVar5)" ( identifier , identifier )))) ;) (expression_statement "uVar8 = FUN_0006a5f0(local_28,iVar5);" (assignment_expression "uVar8 = FUN_0006a5f0(local_28,iVar5)" identifier = (call_expression "FUN_0006a5f0(local_28,iVar5)" identifier (argument_list "(local_28,iVar5)" ( identifier , identifier )))) ;) (expression_statement "FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);" (call_expression "FUN_000737d0(local_24,iVar1,uVar8,uVar7,0)" identifier (argument_list "(local_24,iVar1,uVar8,uVar7,0)" ( identifier , identifier , identifier , identifier , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n                FUN_00073a80(local_24,iVar1);" case number_literal : (expression_statement "FUN_00073a80(local_24,iVar1);" (call_expression "FUN_00073a80(local_24,iVar1)" identifier (argument_list "(local_24,iVar1)" ( identifier , identifier ))) ;)) })) (expression_statement "iVar5 = iVar1;" (assignment_expression "iVar5 = iVar1" identifier = identifier) ;) }) while (parenthesized_expression "(iVar4 != iVar1)" ( (binary_expression "iVar4 != iVar1" identifier != identifier) )) ;) })) (expression_statement "iVar5 = FUN_000ccd70(local_24);" (assignment_expression "iVar5 = FUN_000ccd70(local_24)" identifier = (call_expression "FUN_000ccd70(local_24)" identifier (argument_list "(local_24)" ( identifier )))) ;) (if_statement "if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }" if (parenthesized_expression "((1 < iVar5 - 100U) && (iVar5 != 0))" ( (binary_expression "(1 < iVar5 - 100U) && (iVar5 != 0)" (parenthesized_expression "(1 < iVar5 - 100U)" ( (binary_expression "1 < iVar5 - 100U" number_literal < (binary_expression "iVar5 - 100U" identifier - number_literal)) )) && (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) ))) )) (compound_statement "{\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }" { (expression_statement "uVar7 = FUN_00073210(param_2);" (assignment_expression "uVar7 = FUN_00073210(param_2)" identifier = (call_expression "FUN_00073210(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar8 = FUN_00073180(param_2);" (assignment_expression "uVar8 = FUN_00073180(param_2)" identifier = (call_expression "FUN_00073180(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "__fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);" (call_expression "__fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7)" identifier (argument_list "(*puVar2,1,"Error %d: %s\n",uVar8,uVar7)" ( (pointer_expression "*puVar2" * identifier) , number_literal , (string_literal ""Error %d: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) })) (expression_statement "FUN_000ac730(local_24);" (call_expression "FUN_000ac730(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "local_58 = local_58 + 1;" (assignment_expression "local_58 = local_58 + 1" identifier = (binary_expression "local_58 + 1" identifier + number_literal)) ;) (if_statement "if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }" if (parenthesized_expression "(local_58 == (local_58 / 10000) * 10000)" ( (binary_expression "local_58 == (local_58 / 10000) * 10000" identifier == (binary_expression "(local_58 / 10000) * 10000" (parenthesized_expression "(local_58 / 10000)" ( (binary_expression "local_58 / 10000" identifier / number_literal) )) * number_literal)) )) (compound_statement "{\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }" { (expression_statement "__printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);" (call_expression "__printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3])" identifier (argument_list "(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3])" ( number_literal , (pointer_expression "&DAT_001173fd" & identifier) , (cast_expression "(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)(&DAT_00117401)[local_58 / 10000 & 3]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "(&DAT_00117401)[local_58 / 10000 & 3]" (parenthesized_expression "(&DAT_00117401)" ( (pointer_expression "&DAT_00117401" & identifier) )) [ (binary_expression "local_58 / 10000 & 3" (binary_expression "local_58 / 10000" identifier / number_literal) & number_literal) ]))) ))) ;) (expression_statement "fflush(*(FILE **)puVar3);" (call_expression "fflush(*(FILE **)puVar3)" identifier (argument_list "(*(FILE **)puVar3)" ( (pointer_expression "*(FILE **)puVar3" * (cast_expression "(FILE **)puVar3" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) })) })) (if_statement "if (iVar5 == 0x65) goto LAB_00022311;" if (parenthesized_expression "(iVar5 == 0x65)" ( (binary_expression "iVar5 == 0x65" identifier == number_literal) )) (goto_statement "goto LAB_00022311;" goto statement_identifier ;)) (expression_statement "FUN_000a96f0(local_28);" (call_expression "FUN_000a96f0(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (expression_statement "FUN_00042800(local_48);" (call_expression "FUN_00042800(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) (expression_statement "local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);" (assignment_expression "local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3)" identifier = (call_expression "FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3)" identifier (argument_list "("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3)" ( (string_literal ""SELECT * FROM \"%w\" ORDER BY rowid DESC;"" " string_content escape_sequence string_content escape_sequence string_content ") , identifier )))) ;) (expression_statement "iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);" (assignment_expression "iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0)" identifier = (call_expression "FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0)" identifier (argument_list "(*param_1,local_48,0xffffffff,&local_28,0)" ( (pointer_expression "*param_1" * identifier) , identifier , number_literal , (pointer_expression "&local_28" & identifier) , number_literal )))) ;) (if_statement "if (iVar5 != 0) break;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (local_30 == 1) goto LAB_00022311;" if (parenthesized_expression "(local_30 == 1)" ( (binary_expression "local_30 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00022311;" goto statement_identifier ;)) (expression_statement "local_30 = 1;" (assignment_expression "local_30 = 1" identifier = number_literal) ;) (expression_statement "puVar2 = (undefined4 *)PTR_stderr_0017bfd0;" (assignment_expression "puVar2 = (undefined4 *)PTR_stderr_0017bfd0" identifier = (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3)" identifier (argument_list "(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3)" ( (pointer_expression "*(undefined4 *)PTR_stderr_0017bfd0" * (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""Warning: cannot step \"%s\" backwards"" " string_content escape_sequence string_content escape_sequence string_content ") , identifier ))) ;) }) (else_clause "else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }" else (compound_statement "{\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }" { (expression_statement "uVar7 = FUN_00073210(param_2);" (assignment_expression "uVar7 = FUN_00073210(param_2)" identifier = (call_expression "FUN_00073210(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar8 = FUN_00073180(param_2);" (assignment_expression "uVar8 = FUN_00073180(param_2)" identifier = (call_expression "FUN_00073180(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48)" identifier (argument_list "(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48)" ( (pointer_expression "*(undefined4 *)PTR_stderr_0017bfd0" * (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""Error %d: %s on [%s]\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) }))) }) (else_clause "else {\n    uVar7 = FUN_00073210(*param_1);\n    uVar8 = FUN_00073180(*param_1);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );\n    local_50 = (char *)0x0;\n  }" else (compound_statement "{\n    uVar7 = FUN_00073210(*param_1);\n    uVar8 = FUN_00073180(*param_1);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );\n    local_50 = (char *)0x0;\n  }" { (expression_statement "uVar7 = FUN_00073210(*param_1);" (assignment_expression "uVar7 = FUN_00073210(*param_1)" identifier = (call_expression "FUN_00073210(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "uVar8 = FUN_00073180(*param_1);" (assignment_expression "uVar8 = FUN_00073180(*param_1)" identifier = (call_expression "FUN_00073180(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 )" identifier (argument_list "(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 )" ( (pointer_expression "*(undefined4 *)PTR_stderr_0017bfd0" * (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""Error %d: %s on [%s]\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_00022311:\n  FUN_000a96f0(local_28);" statement_identifier : (expression_statement "FUN_000a96f0(local_28);" (call_expression "FUN_000a96f0(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;)) (expression_statement "FUN_000a96f0(local_24);" (call_expression "FUN_000a96f0(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "FUN_00042800(local_48);" (call_expression "FUN_00042800(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) (expression_statement "FUN_00042800(local_50);" (call_expression "FUN_00042800(local_50)" identifier (argument_list "(local_50)" ( identifier ))) ;) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_00116110();" (call_expression "FUN_00116110()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) & LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence ") , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , LIT , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * LIT) + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression 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 ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (string_literal " string_content escape_sequence string_content escape_sequence string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' character ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (binary_expression (binary_expression IDENT + IDENT) + (binary_expression IDENT * LIT)) + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) + IDENT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' character ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , LIT ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression (parenthesized_expression ( (binary_expression IDENT / LIT) )) * LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression IDENT / LIT) & LIT) ]))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content ") , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , LIT , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content ") , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT , IDENT ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_00021f30(undefined4 *param_1,undefined4 param_2,char *param_3)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  uint uVar10;\n  int in_GS_OFFSET;\n  uint local_58;\n  char *local_50;\n  undefined4 local_48;\n  int local_30;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x21f39;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28 = 0;\n  local_24 = 0;\n  pcVar9 = param_3;\n  if (*param_3 == '\0') {\n    uVar10 = 0;\n  }\n  else {\n    do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');\n    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;\n  }\n  local_48 = FUN_0008ff90("SELECT * FROM \"%w\"",param_3);\n  iVar4 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n  if (iVar4 == 0) {\n    iVar4 = FUN_00039060(local_28);\n    iVar5 = iVar4 * 3 + uVar10 + 200;\n    local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);\n    if (local_50 == (char *)0x0) {\n                    \n      FUN_0001f910();\n    }\n    FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);\n    pcVar9 = local_50;\n    if (*local_50 == '\0') {\n      uVar10 = 0;\n    }\n    else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }\n    if (1 < iVar4) {\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }\n    pcVar9[2] = '\0';\n    pcVar9[0] = ')';\n    pcVar9[1] = ';';\n    iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);\n    puVar3 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }\n    else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }\n  }\n  else {\n    uVar7 = FUN_00073210(*param_1);\n    uVar8 = FUN_00073180(*param_1);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );\n    local_50 = (char *)0x0;\n  }\nLAB_00022311:\n  FUN_000a96f0(local_28);\n  FUN_000a96f0(local_24);\n  FUN_00042800(local_48);\n  FUN_00042800(local_50);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00116110();\n}" (primitive_type "void") (function_declarator "FUN_00021f30(undefined4 *param_1,undefined4 param_2,char *param_3)" (identifier "FUN_00021f30") (parameter_list "(undefined4 *param_1,undefined4 param_2,char *param_3)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  int iVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  uint uVar10;\n  int in_GS_OFFSET;\n  uint local_58;\n  char *local_50;\n  undefined4 local_48;\n  int local_30;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x21f39;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28 = 0;\n  local_24 = 0;\n  pcVar9 = param_3;\n  if (*param_3 == '\0') {\n    uVar10 = 0;\n  }\n  else {\n    do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');\n    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;\n  }\n  local_48 = FUN_0008ff90("SELECT * FROM \"%w\"",param_3);\n  iVar4 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n  if (iVar4 == 0) {\n    iVar4 = FUN_00039060(local_28);\n    iVar5 = iVar4 * 3 + uVar10 + 200;\n    local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);\n    if (local_50 == (char *)0x0) {\n                    \n      FUN_0001f910();\n    }\n    FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);\n    pcVar9 = local_50;\n    if (*local_50 == '\0') {\n      uVar10 = 0;\n    }\n    else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }\n    if (1 < iVar4) {\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }\n    pcVar9[2] = '\0';\n    pcVar9[0] = ')';\n    pcVar9[1] = ';';\n    iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);\n    puVar3 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }\n    else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }\n  }\n  else {\n    uVar7 = FUN_00073210(*param_1);\n    uVar8 = FUN_00073180(*param_1);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );\n    local_50 = (char *)0x0;\n  }\nLAB_00022311:\n  FUN_000a96f0(local_28);\n  FUN_000a96f0(local_24);\n  FUN_00042800(local_48);\n  FUN_00042800(local_50);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00116110();\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "uint local_58;" (type_identifier "uint") (identifier "local_58") (; ";")) (declaration "char *local_50;" (primitive_type "char") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x21f39;" (assignment_expression "uStack_14 = 0x21f39" (identifier "uStack_14") (= "=") (number_literal "0x21f39")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar9 = param_3;" (assignment_expression "pcVar9 = param_3" (identifier "pcVar9") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (*param_3 == '\0') {\n    uVar10 = 0;\n  }\n  else {\n    do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');\n    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;\n  }" (if "if") (parenthesized_expression "(*param_3 == '\0')" (( "(") (binary_expression "*param_3 == '\0'" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    uVar10 = 0;\n  }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');\n    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;\n  }" (else "else") (compound_statement "{\n    do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');\n    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;\n  }" ({ "{") (do_statement "do {\n      pcVar9 = pcVar9 + 1;\n    } while (*pcVar9 != '\0');" (do "do") (compound_statement "{\n      pcVar9 = pcVar9 + 1;\n    }" ({ "{") (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + 1" (identifier "pcVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pcVar9 != '\0')" (( "(") (binary_expression "*pcVar9 != '\0'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;" (assignment_expression "uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff" (identifier "uVar10") (= "=") (binary_expression "(int)pcVar9 - (int)param_3 & 0x3fffffff" (binary_expression "(int)pcVar9 - (int)param_3" (cast_expression "(int)pcVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar9")) (- "-") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) (& "&") (number_literal "0x3fffffff"))) (; ";")) (} "}")))) (expression_statement "local_48 = FUN_0008ff90("SELECT * FROM \"%w\"",param_3);" (assignment_expression "local_48 = FUN_0008ff90("SELECT * FROM \"%w\"",param_3)" (identifier "local_48") (= "=") (call_expression "FUN_0008ff90("SELECT * FROM \"%w\"",param_3)" (identifier "FUN_0008ff90") (argument_list "("SELECT * FROM \"%w\"",param_3)" (( "(") (string_literal ""SELECT * FROM \"%w\""" (" """) (string_content "SELECT * FROM ") (escape_sequence "\"") (string_content "%w") (escape_sequence "\"") (" """)) (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "iVar4 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);" (assignment_expression "iVar4 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0)" (identifier "iVar4") (= "=") (call_expression "FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0)" (identifier "FUN_000e2d60") (argument_list "(*param_1,local_48,0xffffffff,&local_28,0)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "local_48") (, ",") (number_literal "0xffffffff") (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n    iVar4 = FUN_00039060(local_28);\n    iVar5 = iVar4 * 3 + uVar10 + 200;\n    local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);\n    if (local_50 == (char *)0x0) {\n                    \n      FUN_0001f910();\n    }\n    FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);\n    pcVar9 = local_50;\n    if (*local_50 == '\0') {\n      uVar10 = 0;\n    }\n    else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }\n    if (1 < iVar4) {\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }\n    pcVar9[2] = '\0';\n    pcVar9[0] = ')';\n    pcVar9[1] = ';';\n    iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);\n    puVar3 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }\n    else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }\n  }\n  else {\n    uVar7 = FUN_00073210(*param_1);\n    uVar8 = FUN_00073180(*param_1);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );\n    local_50 = (char *)0x0;\n  }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar4 = FUN_00039060(local_28);\n    iVar5 = iVar4 * 3 + uVar10 + 200;\n    local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);\n    if (local_50 == (char *)0x0) {\n                    \n      FUN_0001f910();\n    }\n    FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);\n    pcVar9 = local_50;\n    if (*local_50 == '\0') {\n      uVar10 = 0;\n    }\n    else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }\n    if (1 < iVar4) {\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }\n    pcVar9[2] = '\0';\n    pcVar9[0] = ')';\n    pcVar9[1] = ';';\n    iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);\n    puVar3 = PTR_stdout_0017bfe8;\n    local_58 = 0;\n    local_30 = 2;\n    puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n    if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }\n    else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }\n  }" ({ "{") (expression_statement "iVar4 = FUN_00039060(local_28);" (assignment_expression "iVar4 = FUN_00039060(local_28)" (identifier "iVar4") (= "=") (call_expression "FUN_00039060(local_28)" (identifier "FUN_00039060") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")")))) (; ";")) (expression_statement "iVar5 = iVar4 * 3 + uVar10 + 200;" (assignment_expression "iVar5 = iVar4 * 3 + uVar10 + 200" (identifier "iVar5") (= "=") (binary_expression "iVar4 * 3 + uVar10 + 200" (binary_expression "iVar4 * 3 + uVar10" (binary_expression "iVar4 * 3" (identifier "iVar4") (* "*") (number_literal "3")) (+ "+") (identifier "uVar10")) (+ "+") (number_literal "200"))) (; ";")) (expression_statement "local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);" (assignment_expression "local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f)" (identifier "local_50") (= "=") (cast_expression "(char *)FUN_0005d080(iVar5,iVar5 >> 0x1f)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0005d080(iVar5,iVar5 >> 0x1f)" (identifier "FUN_0005d080") (argument_list "(iVar5,iVar5 >> 0x1f)" (( "(") (identifier "iVar5") (, ",") (binary_expression "iVar5 >> 0x1f" (identifier "iVar5") (>> ">>") (number_literal "0x1f")) () ")"))))) (; ";")) (if_statement "if (local_50 == (char *)0x0) {\n                    \n      FUN_0001f910();\n    }" (if "if") (parenthesized_expression "(local_50 == (char *)0x0)" (( "(") (binary_expression "local_50 == (char *)0x0" (identifier "local_50") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n      FUN_0001f910();\n    }" ({ "{") (expression_statement "FUN_0001f910();" (call_expression "FUN_0001f910()" (identifier "FUN_0001f910") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);" (call_expression "FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3)" (identifier "FUN_00069ff0") (argument_list "(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3)" (( "(") (binary_expression "uVar10 + 200" (identifier "uVar10") (+ "+") (number_literal "200")) (, ",") (identifier "local_50") (, ",") (string_literal ""INSERT OR IGNORE INTO \"%s\" VALUES(?"" (" """) (string_content "INSERT OR IGNORE INTO ") (escape_sequence "\"") (string_content "%s") (escape_sequence "\"") (string_content " VALUES(?") (" """)) (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "pcVar9 = local_50;" (assignment_expression "pcVar9 = local_50" (identifier "pcVar9") (= "=") (identifier "local_50")) (; ";")) (if_statement "if (*local_50 == '\0') {\n      uVar10 = 0;\n    }\n    else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }" (if "if") (parenthesized_expression "(*local_50 == '\0')" (( "(") (binary_expression "*local_50 == '\0'" (pointer_expression "*local_50" (* "*") (identifier "local_50")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = 0;\n    }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }" (else "else") (compound_statement "{\n      do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');\n      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;\n      pcVar9 = local_50 + uVar10;\n    }" ({ "{") (do_statement "do {\n        pcVar9 = pcVar9 + 1;\n      } while (*pcVar9 != '\0');" (do "do") (compound_statement "{\n        pcVar9 = pcVar9 + 1;\n      }" ({ "{") (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + 1" (identifier "pcVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pcVar9 != '\0')" (( "(") (binary_expression "*pcVar9 != '\0'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;" (assignment_expression "uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff" (identifier "uVar10") (= "=") (binary_expression "(int)pcVar9 - (int)local_50 & 0x3fffffff" (binary_expression "(int)pcVar9 - (int)local_50" (cast_expression "(int)pcVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar9")) (- "-") (cast_expression "(int)local_50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_50"))) (& "&") (number_literal "0x3fffffff"))) (; ";")) (expression_statement "pcVar9 = local_50 + uVar10;" (assignment_expression "pcVar9 = local_50 + uVar10" (identifier "pcVar9") (= "=") (binary_expression "local_50 + uVar10" (identifier "local_50") (+ "+") (identifier "uVar10"))) (; ";")) (} "}")))) (if_statement "if (1 < iVar4) {\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }" (if "if") (parenthesized_expression "(1 < iVar4)" (( "(") (binary_expression "1 < iVar4" (number_literal "1") (< "<") (identifier "iVar4")) () ")")) (compound_statement "{\n      pcVar9 = local_50 + uVar10;\n      do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);\n      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;\n    }" ({ "{") (expression_statement "pcVar9 = local_50 + uVar10;" (assignment_expression "pcVar9 = local_50 + uVar10" (identifier "pcVar9") (= "=") (binary_expression "local_50 + uVar10" (identifier "local_50") (+ "+") (identifier "uVar10"))) (; ";")) (do_statement "do {\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);" (do "do") (compound_statement "{\n        pcVar6 = pcVar9 + 2;\n        pcVar9[0] = ',';\n        pcVar9[1] = '?';\n        pcVar9 = pcVar6;\n      }" ({ "{") (expression_statement "pcVar6 = pcVar9 + 2;" (assignment_expression "pcVar6 = pcVar9 + 2" (identifier "pcVar6") (= "=") (binary_expression "pcVar9 + 2" (identifier "pcVar9") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pcVar9[0] = ',';" (assignment_expression "pcVar9[0] = ','" (subscript_expression "pcVar9[0]" (identifier "pcVar9") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "','" (' "'") (character ",") (' "'"))) (; ";")) (expression_statement "pcVar9[1] = '?';" (assignment_expression "pcVar9[1] = '?'" (subscript_expression "pcVar9[1]" (identifier "pcVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (char_literal "'?'" (' "'") (character "?") (' "'"))) (; ";")) (expression_statement "pcVar9 = pcVar6;" (assignment_expression "pcVar9 = pcVar6" (identifier "pcVar9") (= "=") (identifier "pcVar6")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2)" (( "(") (binary_expression "pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2" (identifier "pcVar6") (!= "!=") (binary_expression "local_50 + uVar10 + iVar4 * 2 + -2" (binary_expression "local_50 + uVar10 + iVar4 * 2" (binary_expression "local_50 + uVar10" (identifier "local_50") (+ "+") (identifier "uVar10")) (+ "+") (binary_expression "iVar4 * 2" (identifier "iVar4") (* "*") (number_literal "2"))) (+ "+") (number_literal "-2"))) () ")")) (; ";")) (expression_statement "pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;" (assignment_expression "pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10" (identifier "pcVar9") (= "=") (binary_expression "local_50 + iVar4 * 2 + -2 + uVar10" (binary_expression "local_50 + iVar4 * 2 + -2" (binary_expression "local_50 + iVar4 * 2" (identifier "local_50") (+ "+") (binary_expression "iVar4 * 2" (identifier "iVar4") (* "*") (number_literal "2"))) (+ "+") (number_literal "-2")) (+ "+") (identifier "uVar10"))) (; ";")) (} "}"))) (expression_statement "pcVar9[2] = '\0';" (assignment_expression "pcVar9[2] = '\0'" (subscript_expression "pcVar9[2]" (identifier "pcVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar9[0] = ')';" (assignment_expression "pcVar9[0] = ')'" (subscript_expression "pcVar9[0]" (identifier "pcVar9") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "')'" (' "'") (character ")") (' "'"))) (; ";")) (expression_statement "pcVar9[1] = ';';" (assignment_expression "pcVar9[1] = ';'" (subscript_expression "pcVar9[1]" (identifier "pcVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (char_literal "';'" (' "'") (character ";") (' "'"))) (; ";")) (expression_statement "iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);" (assignment_expression "iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0)" (identifier "iVar5") (= "=") (call_expression "FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0)" (identifier "FUN_000e2d60") (argument_list "(param_2,local_50,0xffffffff,&local_24,0)" (( "(") (identifier "param_2") (, ",") (identifier "local_50") (, ",") (number_literal "0xffffffff") (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar3 = PTR_stdout_0017bfe8;" (assignment_expression "puVar3 = PTR_stdout_0017bfe8" (identifier "puVar3") (= "=") (identifier "PTR_stdout_0017bfe8")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = 2;" (assignment_expression "local_30 = 2" (identifier "local_30") (= "=") (number_literal "2")) (; ";")) (expression_statement "puVar2 = (undefined4 *)PTR_stderr_0017bfd0;" (assignment_expression "puVar2 = (undefined4 *)PTR_stderr_0017bfd0" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_0017bfd0"))) (; ";")) (if_statement "if (iVar5 == 0) {\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }\n    else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);\n    }" ({ "{") (while_statement "while( true ) {\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }\n        if (iVar5 == 0x65) goto LAB_00022311;\n        FUN_000a96f0(local_28);\n        FUN_00042800(local_48);\n        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);\n        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);\n        if (iVar5 != 0) break;\n        if (local_30 == 1) goto LAB_00022311;\n        local_30 = 1;\n        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;\n      }" ({ "{") (while_statement "while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }" (while "while") (parenthesized_expression "(iVar5 = FUN_000ccd70(local_28), iVar5 == 100)" (( "(") (comma_expression "iVar5 = FUN_000ccd70(local_28), iVar5 == 100" (assignment_expression "iVar5 = FUN_000ccd70(local_28)" (identifier "iVar5") (= "=") (call_expression "FUN_000ccd70(local_28)" (identifier "FUN_000ccd70") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")")))) (, ",") (binary_expression "iVar5 == 100" (identifier "iVar5") (== "==") (number_literal "100"))) () ")")) (compound_statement "{\n          iVar5 = 0;\n          if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }\n          iVar5 = FUN_000ccd70(local_24);\n          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }\n          FUN_000ac730(local_24);\n          local_58 = local_58 + 1;\n          if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }\n        }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < iVar4) {\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }" (if "if") (parenthesized_expression "(0 < iVar4)" (( "(") (binary_expression "0 < iVar4" (number_literal "0") (< "<") (identifier "iVar4")) () ")")) (compound_statement "{\n            do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);\n          }" ({ "{") (do_statement "do {\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            } while (iVar4 != iVar1);" (do "do") (compound_statement "{\n              iVar1 = iVar5 + 1;\n              uVar7 = FUN_000562f0(local_28,iVar5);\n              switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }\n              iVar5 = iVar1;\n            }" ({ "{") (expression_statement "iVar1 = iVar5 + 1;" (assignment_expression "iVar1 = iVar5 + 1" (identifier "iVar1") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar7 = FUN_000562f0(local_28,iVar5);" (assignment_expression "uVar7 = FUN_000562f0(local_28,iVar5)" (identifier "uVar7") (= "=") (call_expression "FUN_000562f0(local_28,iVar5)" (identifier "FUN_000562f0") (argument_list "(local_28,iVar5)" (( "(") (identifier "local_28") (, ",") (identifier "iVar5") () ")")))) (; ";")) (switch_statement "switch(uVar7) {\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }" (switch "switch") (parenthesized_expression "(uVar7)" (( "(") (identifier "uVar7") () ")")) (compound_statement "{\n              case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;\n              case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;\n              case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;\n              case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;\n              case 5:\n                FUN_00073a80(local_24,iVar1);\n              }" ({ "{") (case_statement "case 1:\n                FUN_000561a0(local_28,iVar5);\n                FUN_000739f0(local_24,iVar1);\n                break;" (case "case") (number_literal "1") (: ":") (expression_statement "FUN_000561a0(local_28,iVar5);" (call_expression "FUN_000561a0(local_28,iVar5)" (identifier "FUN_000561a0") (argument_list "(local_28,iVar5)" (( "(") (identifier "local_28") (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "FUN_000739f0(local_24,iVar1);" (call_expression "FUN_000739f0(local_24,iVar1)" (identifier "FUN_000739f0") (argument_list "(local_24,iVar1)" (( "(") (identifier "local_24") (, ",") (identifier "iVar1") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n                FUN_00056140(local_28,iVar5);\n                FUN_00073970(local_24,iVar1);\n                break;" (case "case") (number_literal "2") (: ":") (expression_statement "FUN_00056140(local_28,iVar5);" (call_expression "FUN_00056140(local_28,iVar5)" (identifier "FUN_00056140") (argument_list "(local_28,iVar5)" (( "(") (identifier "local_28") (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "FUN_00073970(local_24,iVar1);" (call_expression "FUN_00073970(local_24,iVar1)" (identifier "FUN_00073970") (argument_list "(local_24,iVar1)" (( "(") (identifier "local_24") (, ",") (identifier "iVar1") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\n                uVar7 = FUN_0006a9b0(local_28,iVar5);\n                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);\n                break;" (case "case") (number_literal "3") (: ":") (expression_statement "uVar7 = FUN_0006a9b0(local_28,iVar5);" (assignment_expression "uVar7 = FUN_0006a9b0(local_28,iVar5)" (identifier "uVar7") (= "=") (call_expression "FUN_0006a9b0(local_28,iVar5)" (identifier "FUN_0006a9b0") (argument_list "(local_28,iVar5)" (( "(") (identifier "local_28") (, ",") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);" (call_expression "FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0)" (identifier "FUN_00073870") (argument_list "(local_24,iVar1,uVar7,0xffffffff,0)" (( "(") (identifier "local_24") (, ",") (identifier "iVar1") (, ",") (identifier "uVar7") (, ",") (number_literal "0xffffffff") (, ",") (number_literal "0") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n                uVar7 = FUN_0006a300(local_28,iVar5);\n                uVar8 = FUN_0006a5f0(local_28,iVar5);\n                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);\n                break;" (case "case") (number_literal "4") (: ":") (expression_statement "uVar7 = FUN_0006a300(local_28,iVar5);" (assignment_expression "uVar7 = FUN_0006a300(local_28,iVar5)" (identifier "uVar7") (= "=") (call_expression "FUN_0006a300(local_28,iVar5)" (identifier "FUN_0006a300") (argument_list "(local_28,iVar5)" (( "(") (identifier "local_28") (, ",") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "uVar8 = FUN_0006a5f0(local_28,iVar5);" (assignment_expression "uVar8 = FUN_0006a5f0(local_28,iVar5)" (identifier "uVar8") (= "=") (call_expression "FUN_0006a5f0(local_28,iVar5)" (identifier "FUN_0006a5f0") (argument_list "(local_28,iVar5)" (( "(") (identifier "local_28") (, ",") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);" (call_expression "FUN_000737d0(local_24,iVar1,uVar8,uVar7,0)" (identifier "FUN_000737d0") (argument_list "(local_24,iVar1,uVar8,uVar7,0)" (( "(") (identifier "local_24") (, ",") (identifier "iVar1") (, ",") (identifier "uVar8") (, ",") (identifier "uVar7") (, ",") (number_literal "0") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:\n                FUN_00073a80(local_24,iVar1);" (case "case") (number_literal "5") (: ":") (expression_statement "FUN_00073a80(local_24,iVar1);" (call_expression "FUN_00073a80(local_24,iVar1)" (identifier "FUN_00073a80") (argument_list "(local_24,iVar1)" (( "(") (identifier "local_24") (, ",") (identifier "iVar1") () ")"))) (; ";"))) (} "}"))) (expression_statement "iVar5 = iVar1;" (assignment_expression "iVar5 = iVar1" (identifier "iVar5") (= "=") (identifier "iVar1")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 != iVar1)" (( "(") (binary_expression "iVar4 != iVar1" (identifier "iVar4") (!= "!=") (identifier "iVar1")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_000ccd70(local_24);" (assignment_expression "iVar5 = FUN_000ccd70(local_24)" (identifier "iVar5") (= "=") (call_expression "FUN_000ccd70(local_24)" (identifier "FUN_000ccd70") (argument_list "(local_24)" (( "(") (identifier "local_24") () ")")))) (; ";")) (if_statement "if ((1 < iVar5 - 100U) && (iVar5 != 0)) {\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }" (if "if") (parenthesized_expression "((1 < iVar5 - 100U) && (iVar5 != 0))" (( "(") (binary_expression "(1 < iVar5 - 100U) && (iVar5 != 0)" (parenthesized_expression "(1 < iVar5 - 100U)" (( "(") (binary_expression "1 < iVar5 - 100U" (number_literal "1") (< "<") (binary_expression "iVar5 - 100U" (identifier "iVar5") (- "-") (number_literal "100U"))) () ")")) (&& "&&") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            uVar7 = FUN_00073210(param_2);\n            uVar8 = FUN_00073180(param_2);\n            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);\n          }" ({ "{") (expression_statement "uVar7 = FUN_00073210(param_2);" (assignment_expression "uVar7 = FUN_00073210(param_2)" (identifier "uVar7") (= "=") (call_expression "FUN_00073210(param_2)" (identifier "FUN_00073210") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uVar8 = FUN_00073180(param_2);" (assignment_expression "uVar8 = FUN_00073180(param_2)" (identifier "uVar8") (= "=") (call_expression "FUN_00073180(param_2)" (identifier "FUN_00073180") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "__fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);" (call_expression "__fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7)" (identifier "__fprintf_chk") (argument_list "(*puVar2,1,"Error %d: %s\n",uVar8,uVar7)" (( "(") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (, ",") (number_literal "1") (, ",") (string_literal ""Error %d: %s\n"" (" """) (string_content "Error %d: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar8") (, ",") (identifier "uVar7") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000ac730(local_24);" (call_expression "FUN_000ac730(local_24)" (identifier "FUN_000ac730") (argument_list "(local_24)" (( "(") (identifier "local_24") () ")"))) (; ";")) (expression_statement "local_58 = local_58 + 1;" (assignment_expression "local_58 = local_58 + 1" (identifier "local_58") (= "=") (binary_expression "local_58 + 1" (identifier "local_58") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_58 == (local_58 / 10000) * 10000) {\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }" (if "if") (parenthesized_expression "(local_58 == (local_58 / 10000) * 10000)" (( "(") (binary_expression "local_58 == (local_58 / 10000) * 10000" (identifier "local_58") (== "==") (binary_expression "(local_58 / 10000) * 10000" (parenthesized_expression "(local_58 / 10000)" (( "(") (binary_expression "local_58 / 10000" (identifier "local_58") (/ "/") (number_literal "10000")) () ")")) (* "*") (number_literal "10000"))) () ")")) (compound_statement "{\n            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);\n            fflush(*(FILE **)puVar3);\n          }" ({ "{") (expression_statement "__printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);" (call_expression "__printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3])" (identifier "__printf_chk") (argument_list "(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3])" (( "(") (number_literal "1") (, ",") (pointer_expression "&DAT_001173fd" (& "&") (identifier "DAT_001173fd")) (, ",") (cast_expression "(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)(&DAT_00117401)[local_58 / 10000 & 3]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "(&DAT_00117401)[local_58 / 10000 & 3]" (parenthesized_expression "(&DAT_00117401)" (( "(") (pointer_expression "&DAT_00117401" (& "&") (identifier "DAT_00117401")) () ")")) ([ "[") (binary_expression "local_58 / 10000 & 3" (binary_expression "local_58 / 10000" (identifier "local_58") (/ "/") (number_literal "10000")) (& "&") (number_literal "3")) (] "]")))) () ")"))) (; ";")) (expression_statement "fflush(*(FILE **)puVar3);" (call_expression "fflush(*(FILE **)puVar3)" (identifier "fflush") (argument_list "(*(FILE **)puVar3)" (( "(") (pointer_expression "*(FILE **)puVar3" (* "*") (cast_expression "(FILE **)puVar3" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar3"))) () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (iVar5 == 0x65) goto LAB_00022311;" (if "if") (parenthesized_expression "(iVar5 == 0x65)" (( "(") (binary_expression "iVar5 == 0x65" (identifier "iVar5") (== "==") (number_literal "0x65")) () ")")) (goto_statement "goto LAB_00022311;" (goto "goto") (statement_identifier "LAB_00022311") (; ";"))) (expression_statement "FUN_000a96f0(local_28);" (call_expression "FUN_000a96f0(local_28)" (identifier "FUN_000a96f0") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")"))) (; ";")) (expression_statement "FUN_00042800(local_48);" (call_expression "FUN_00042800(local_48)" (identifier "FUN_00042800") (argument_list "(local_48)" (( "(") (identifier "local_48") () ")"))) (; ";")) (expression_statement "local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);" (assignment_expression "local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3)" (identifier "local_48") (= "=") (call_expression "FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3)" (identifier "FUN_0008ff90") (argument_list "("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3)" (( "(") (string_literal ""SELECT * FROM \"%w\" ORDER BY rowid DESC;"" (" """) (string_content "SELECT * FROM ") (escape_sequence "\"") (string_content "%w") (escape_sequence "\"") (string_content " ORDER BY rowid DESC;") (" """)) (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);" (assignment_expression "iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0)" (identifier "iVar5") (= "=") (call_expression "FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0)" (identifier "FUN_000e2d60") (argument_list "(*param_1,local_48,0xffffffff,&local_28,0)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "local_48") (, ",") (number_literal "0xffffffff") (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) break;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (local_30 == 1) goto LAB_00022311;" (if "if") (parenthesized_expression "(local_30 == 1)" (( "(") (binary_expression "local_30 == 1" (identifier "local_30") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_00022311;" (goto "goto") (statement_identifier "LAB_00022311") (; ";"))) (expression_statement "local_30 = 1;" (assignment_expression "local_30 = 1" (identifier "local_30") (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar2 = (undefined4 *)PTR_stderr_0017bfd0;" (assignment_expression "puVar2 = (undefined4 *)PTR_stderr_0017bfd0" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_0017bfd0"))) (; ";")) (} "}"))) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3)" (identifier "__fprintf_chk") (argument_list "(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",\n                    param_3)" (( "(") (pointer_expression "*(undefined4 *)PTR_stderr_0017bfd0" (* "*") (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_0017bfd0"))) (, ",") (number_literal "1") (, ",") (string_literal ""Warning: cannot step \"%s\" backwards"" (" """) (string_content "Warning: cannot step ") (escape_sequence "\"") (string_content "%s") (escape_sequence "\"") (string_content " backwards") (" """)) (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }" (else "else") (compound_statement "{\n      uVar7 = FUN_00073210(param_2);\n      uVar8 = FUN_00073180(param_2);\n      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);\n    }" ({ "{") (expression_statement "uVar7 = FUN_00073210(param_2);" (assignment_expression "uVar7 = FUN_00073210(param_2)" (identifier "uVar7") (= "=") (call_expression "FUN_00073210(param_2)" (identifier "FUN_00073210") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uVar8 = FUN_00073180(param_2);" (assignment_expression "uVar8 = FUN_00073180(param_2)" (identifier "uVar8") (= "=") (call_expression "FUN_00073180(param_2)" (identifier "FUN_00073180") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48)" (identifier "__fprintf_chk") (argument_list "(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,\n                    local_48)" (( "(") (pointer_expression "*(undefined4 *)PTR_stderr_0017bfd0" (* "*") (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_0017bfd0"))) (, ",") (number_literal "1") (, ",") (string_literal ""Error %d: %s on [%s]\n"" (" """) (string_content "Error %d: %s on [%s]") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar8") (, ",") (identifier "uVar7") (, ",") (identifier "local_48") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    uVar7 = FUN_00073210(*param_1);\n    uVar8 = FUN_00073180(*param_1);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );\n    local_50 = (char *)0x0;\n  }" (else "else") (compound_statement "{\n    uVar7 = FUN_00073210(*param_1);\n    uVar8 = FUN_00073180(*param_1);\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );\n    local_50 = (char *)0x0;\n  }" ({ "{") (expression_statement "uVar7 = FUN_00073210(*param_1);" (assignment_expression "uVar7 = FUN_00073210(*param_1)" (identifier "uVar7") (= "=") (call_expression "FUN_00073210(*param_1)" (identifier "FUN_00073210") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";")) (expression_statement "uVar8 = FUN_00073180(*param_1);" (assignment_expression "uVar8 = FUN_00073180(*param_1)" (identifier "uVar8") (= "=") (call_expression "FUN_00073180(*param_1)" (identifier "FUN_00073180") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";")) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 );" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 )" (identifier "__fprintf_chk") (argument_list "(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48\n                 )" (( "(") (pointer_expression "*(undefined4 *)PTR_stderr_0017bfd0" (* "*") (cast_expression "(undefined4 *)PTR_stderr_0017bfd0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_0017bfd0"))) (, ",") (number_literal "1") (, ",") (string_literal ""Error %d: %s on [%s]\n"" (" """) (string_content "Error %d: %s on [%s]") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar8") (, ",") (identifier "uVar7") (, ",") (identifier "local_48") () ")"))) (; ";")) (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" (identifier "local_50") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (labeled_statement "LAB_00022311:\n  FUN_000a96f0(local_28);" (statement_identifier "LAB_00022311") (: ":") (expression_statement "FUN_000a96f0(local_28);" (call_expression "FUN_000a96f0(local_28)" (identifier "FUN_000a96f0") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")"))) (; ";"))) (expression_statement "FUN_000a96f0(local_24);" (call_expression "FUN_000a96f0(local_24)" (identifier "FUN_000a96f0") (argument_list "(local_24)" (( "(") (identifier "local_24") () ")"))) (; ";")) (expression_statement "FUN_00042800(local_48);" (call_expression "FUN_00042800(local_48)" (identifier "FUN_00042800") (argument_list "(local_48)" (( "(") (identifier "local_48") () ")"))) (; ";")) (expression_statement "FUN_00042800(local_50);" (call_expression "FUN_00042800(local_50)" (identifier "FUN_00042800") (argument_list "(local_50)" (( "(") (identifier "local_50") () ")"))) (; ";")) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00116110();" (call_expression "FUN_00116110()" (identifier "FUN_00116110") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void function_1(type_1 *p,type_2 *newDb,char *zTable)

{
  int var_26;
  type_3 *puVar1;
  type_4 *puVar2;
  int var_5;
  char *var_12;
  int var_13;
  int iVar6;
  void *zData;
  type_5 *zData_00;
  char *var_2;
  type_6 var_8;
  int var_1;
  type_7 iValue;
  double rValue;
  type_6 var_31;
  char *var_9;
  char *local_48;
  int var_36;
  type_8 *pQuery;
  type_8 *pInsert;
  int var_37;
  type_3 uStack_14;
  
  uStack_14 = 0x21f39;
  var_37 = *(int *)(var_1 + 0x14);
  pQuery = (type_8 *)0x0;
  pInsert = (type_8 *)0x0;
  var_2 = zTable;
  if (*zTable == '\0') {
    var_8 = 0;
  }
  else {
    do {
      var_2 = var_2 + 1;
    } while (*var_2 != '\0');
    var_8 = (int)var_2 - (int)zTable & 0x3fffffff;
  }
  local_48 = var_3("SELECT * FROM \"%w\"",zTable);
  var_5 = var_4(p->db,local_48,-1,&pQuery,(char **)0x0);
  if (var_5 == 0) {
    var_5 = var_6(pQuery);
    var_9 = (char *)var_7((longlong)(int)(var_5 * 3 + var_8 + 200));
    if (var_9 == (char *)0x0) {
                    /* WARNING: Subroutine does not return */
      var_10();
    }
    var_11(var_8 + 200,var_9,"INSERT OR IGNORE INTO \"%s\" VALUES(?",zTable);
    var_2 = var_9;
    if (*var_9 == '\0') {
      var_8 = 0;
    }
    else {
      do {
        var_2 = var_2 + 1;
      } while (*var_2 != '\0');
      var_8 = (int)var_2 - (int)var_9 & 0x3fffffff;
      var_2 = var_9 + var_8;
    }
    if (1 < var_5) {
      var_2 = var_9 + var_8;
      do {
        var_12 = var_2 + 2;
        var_2[0] = ',';
        var_2[1] = '?';
        var_2 = var_12;
      } while (var_12 != var_9 + var_8 + var_5 * 2 + -2);
      var_2 = var_9 + var_5 * 2 + -2 + var_8;
    }
    var_2[2] = '\0';
    var_2[0] = ')';
    var_2[1] = ';';
    var_13 = var_4(newDb,var_9,-1,&pInsert,(char **)0x0);
    puVar2 = PTR_stdout_0017bfe8;
    var_31 = 0;
    var_36 = 2;
    puVar1 = (type_3 *)PTR_stderr_0017bfd0;
    if (var_13 == 0) {
      while( true ) {
        while (var_13 = var_14(pQuery), var_13 == 100) {
          var_13 = 0;
          if (0 < var_5) {
            do {
              var_26 = var_13 + 1;
              iVar6 = var_15(pQuery,var_13);
              switch(iVar6) {
              case 1:
                iValue = var_16(pQuery,var_13);
                var_17(pInsert,var_26,iValue);
                break;
              case 2:
                rValue = var_18(pQuery,var_13);
                var_19(pInsert,var_26,rValue);
                break;
              case 3:
                zData_00 = var_20(pQuery,var_13);
                var_21(pInsert,var_26,(char *)zData_00,-1,(type_9 *)0x0);
                break;
              case 4:
                iVar6 = var_22(pQuery,var_13);
                zData = var_23(pQuery,var_13);
                var_24(pInsert,var_26,zData,iVar6,(type_9 *)0x0);
                break;
              case 5:
                var_25(pInsert,var_26);
              }
              var_13 = var_26;
            } while (var_5 != var_26);
          }
          var_13 = var_14(pInsert);
          if ((1 < var_13 - 100U) && (var_13 != 0)) {
            var_2 = var_27(newDb);
            var_13 = var_28(newDb);
            var_29(*puVar1,1,"Error %d: %s\n",var_13,var_2);
          }
          var_30(pInsert);
          var_31 = var_31 + 1;
          if (var_31 == (var_31 / 10000) * 10000) {
            var_32(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[var_31 / 10000 & 3]);
            var_33(*(type_10 **)puVar2);
          }
        }
        if (var_13 == 0x65) goto LAB_00022311;
        var_34(pQuery);
        var_35(local_48);
        local_48 = var_3("SELECT * FROM \"%w\" ORDER BY rowid DESC;",zTable);
        var_13 = var_4(p->db,local_48,-1,&pQuery,(char **)0x0);
        if (var_13 != 0) break;
        if (var_36 == 1) goto LAB_00022311;
        var_36 = 1;
        puVar1 = (type_3 *)PTR_stderr_0017bfd0;
      }
      var_29(*(type_3 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",
                    zTable);
    }
    else {
      var_2 = var_27(newDb);
      var_5 = var_28(newDb);
      var_29(*(type_3 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",var_5,var_2,
                    local_48);
    }
  }
  else {
    var_2 = var_27(p->db);
    var_5 = var_28(p->db);
    var_29(*(type_3 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",var_5,var_2,
                  local_48);
    var_9 = (char *)0x0;
  }
LAB_00022311:
  var_34(pQuery);
  var_34(pInsert);
  var_35(local_48);
  var_35(var_9);
  if (var_37 == *(int *)(var_1 + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_38();
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(undefined4 *param_1,undefined4 param_2,char *param_3)

{
  int iVar1;
  undefined4 *puVar2;
  undefined *puVar3;
  int iVar4;
  int iVar5;
  char *pcVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  char *pcVar9;
  uint uVar10;
  int in_GS_OFFSET;
  uint local_58;
  char *local_50;
  undefined4 local_48;
  int local_30;
  undefined4 local_28;
  undefined4 local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x21f39;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_28 = 0;
  local_24 = 0;
  pcVar9 = param_3;
  if (*param_3 == '\0') {
    uVar10 = 0;
  }
  else {
    do {
      pcVar9 = pcVar9 + 1;
    } while (*pcVar9 != '\0');
    uVar10 = (int)pcVar9 - (int)param_3 & 0x3fffffff;
  }
  local_48 = FUN_0008ff90("SELECT * FROM \"%w\"",param_3);
  iVar4 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);
  if (iVar4 == 0) {
    iVar4 = FUN_00039060(local_28);
    iVar5 = iVar4 * 3 + uVar10 + 200;
    local_50 = (char *)FUN_0005d080(iVar5,iVar5 >> 0x1f);
    if (local_50 == (char *)0x0) {
                    /* WARNING: Subroutine does not return */
      FUN_0001f910();
    }
    FUN_00069ff0(uVar10 + 200,local_50,"INSERT OR IGNORE INTO \"%s\" VALUES(?",param_3);
    pcVar9 = local_50;
    if (*local_50 == '\0') {
      uVar10 = 0;
    }
    else {
      do {
        pcVar9 = pcVar9 + 1;
      } while (*pcVar9 != '\0');
      uVar10 = (int)pcVar9 - (int)local_50 & 0x3fffffff;
      pcVar9 = local_50 + uVar10;
    }
    if (1 < iVar4) {
      pcVar9 = local_50 + uVar10;
      do {
        pcVar6 = pcVar9 + 2;
        pcVar9[0] = ',';
        pcVar9[1] = '?';
        pcVar9 = pcVar6;
      } while (pcVar6 != local_50 + uVar10 + iVar4 * 2 + -2);
      pcVar9 = local_50 + iVar4 * 2 + -2 + uVar10;
    }
    pcVar9[2] = '\0';
    pcVar9[0] = ')';
    pcVar9[1] = ';';
    iVar5 = FUN_000e2d60(param_2,local_50,0xffffffff,&local_24,0);
    puVar3 = PTR_stdout_0017bfe8;
    local_58 = 0;
    local_30 = 2;
    puVar2 = (undefined4 *)PTR_stderr_0017bfd0;
    if (iVar5 == 0) {
      while( true ) {
        while (iVar5 = FUN_000ccd70(local_28), iVar5 == 100) {
          iVar5 = 0;
          if (0 < iVar4) {
            do {
              iVar1 = iVar5 + 1;
              uVar7 = FUN_000562f0(local_28,iVar5);
              switch(uVar7) {
              case 1:
                FUN_000561a0(local_28,iVar5);
                FUN_000739f0(local_24,iVar1);
                break;
              case 2:
                FUN_00056140(local_28,iVar5);
                FUN_00073970(local_24,iVar1);
                break;
              case 3:
                uVar7 = FUN_0006a9b0(local_28,iVar5);
                FUN_00073870(local_24,iVar1,uVar7,0xffffffff,0);
                break;
              case 4:
                uVar7 = FUN_0006a300(local_28,iVar5);
                uVar8 = FUN_0006a5f0(local_28,iVar5);
                FUN_000737d0(local_24,iVar1,uVar8,uVar7,0);
                break;
              case 5:
                FUN_00073a80(local_24,iVar1);
              }
              iVar5 = iVar1;
            } while (iVar4 != iVar1);
          }
          iVar5 = FUN_000ccd70(local_24);
          if ((1 < iVar5 - 100U) && (iVar5 != 0)) {
            uVar7 = FUN_00073210(param_2);
            uVar8 = FUN_00073180(param_2);
            __fprintf_chk(*puVar2,1,"Error %d: %s\n",uVar8,uVar7);
          }
          FUN_000ac730(local_24);
          local_58 = local_58 + 1;
          if (local_58 == (local_58 / 10000) * 10000) {
            __printf_chk(1,&DAT_001173fd,(int)(char)(&DAT_00117401)[local_58 / 10000 & 3]);
            fflush(*(FILE **)puVar3);
          }
        }
        if (iVar5 == 0x65) goto LAB_00022311;
        FUN_000a96f0(local_28);
        FUN_00042800(local_48);
        local_48 = FUN_0008ff90("SELECT * FROM \"%w\" ORDER BY rowid DESC;",param_3);
        iVar5 = FUN_000e2d60(*param_1,local_48,0xffffffff,&local_28,0);
        if (iVar5 != 0) break;
        if (local_30 == 1) goto LAB_00022311;
        local_30 = 1;
        puVar2 = (undefined4 *)PTR_stderr_0017bfd0;
      }
      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Warning: cannot step \"%s\" backwards",
                    param_3);
    }
    else {
      uVar7 = FUN_00073210(param_2);
      uVar8 = FUN_00073180(param_2);
      __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,
                    local_48);
    }
  }
  else {
    uVar7 = FUN_00073210(*param_1);
    uVar8 = FUN_00073180(*param_1);
    __fprintf_chk(*(undefined4 *)PTR_stderr_0017bfd0,1,"Error %d: %s on [%s]\n",uVar8,uVar7,local_48
                 );
    local_50 = (char *)0x0;
  }
LAB_00022311:
  FUN_000a96f0(local_28);
  FUN_000a96f0(local_24);
  FUN_00042800(local_48);
  FUN_00042800(local_50);
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00116110();
}

