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

void __regparm3 sessionAppendCol(SessionBuffer *p,sqlite3_stmt *pStmt,int iCol,int *pRc)

{
  int iVar1;
  int iVar2;
  uchar *aBlob;
  uint uVar3;
  int in_GS_OFFSET;
  double dVar4;
  u8 uStack_2d;
  u8 aBuf [8];
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  iVar2 = sqlite3_column_type(pStmt,iCol);
  sessionAppendByte(p,(u8)iVar2,pRc);
  if (iVar2 - 1U < 2) {
    if (iVar2 == 1) {
      dVar4 = (double)sqlite3_column_int64(pStmt,iCol);
      aBuf[0] = (u8)((ulonglong)dVar4 >> 0x38);
    }
    else {
      dVar4 = sqlite3_column_double(pStmt,iCol);
      uStack_2d = (u8)((ulonglong)dVar4 >> 0x38);
      aBuf[0] = uStack_2d;
    }
    uVar3 = SUB84(dVar4,0);
    aBuf[2] = (u8)((ulonglong)dVar4 >> 0x28);
    aBuf._4_4_ = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;
    aBuf[3] = (u8)((ulonglong)dVar4 >> 0x20);
    aBuf[1] = (u8)((ulonglong)dVar4 >> 0x30);
    sessionAppendBlob(p,aBuf,8,pRc);
    goto LAB_0006f7ea;
  }
  if (1 < iVar2 - 3U) goto LAB_0006f7ea;
  if (iVar2 == 4) {
    aBlob = (uchar *)sqlite3_column_blob(pStmt,iCol);
    iVar2 = sqlite3_column_bytes(pStmt,iCol);
    if ((aBlob == (u8 *)0x0) && (iVar2 != 0)) goto LAB_0006f8a0;
  }
  else {
    aBlob = sqlite3_column_text(pStmt,iCol);
    iVar2 = sqlite3_column_bytes(pStmt,iCol);
    if (aBlob == (uchar *)0x0) {
LAB_0006f8a0:
      *pRc = 7;
      goto LAB_0006f7ea;
    }
  }
  sessionAppendVarint(p,iVar2,pRc);
  sessionAppendBlob(p,aBlob,iVar2,pRc);
LAB_0006f7ea:
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return;
}



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

void __regparm3
FUN_0006f740(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int in_GS_OFFSET;
  undefined4 *puVar4;
  undefined4 extraout_var;
  undefined4 uVar5;
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  iVar2 = FUN_00039e80(param_2,param_3);
  uVar5 = extraout_var;
  FUN_0006f6a0();
  if (iVar2 - 1U < 2) {
    if (iVar2 == 1) {
      FUN_00039cf0(param_2,param_3);
    }
    else {
      FUN_00039c70(param_2,param_3);
    }
    FUN_0006f4b0(param_4);
    goto LAB_0006f7ea;
  }
  if (1 < iVar2 - 3U) goto LAB_0006f7ea;
  if (iVar2 == 4) {
    iVar2 = FUN_0004e800(param_2,param_3);
    iVar3 = FUN_0004e4d0(param_2,param_3);
    puVar4 = param_4;
    if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;
  }
  else {
    iVar2 = FUN_0004eb80(param_2,param_3);
    FUN_0004e4d0(param_2,param_3);
    puVar4 = param_4;
    if (iVar2 == 0) {
LAB_0006f8a0:
      *param_4 = 7;
      goto LAB_0006f7ea;
    }
  }
  param_4 = puVar4;
  FUN_0006f460();
  FUN_0006f4b0(puVar4);
LAB_0006f7ea:
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_000f6410(param_4,uVar5);
  }
  return;
}


PUSH EBP
PUSH EDI
MOV EDI,ECX
PUSH ESI
MOV ESI,EDX
PUSH EBX
CALL 0x00014d20
ADD EBX,0xdb787
SUB ESP,0x34
MOV ECX,dword ptr [ESP + 0x48]
MOV dword ptr [ESP + 0xc],EAX
MOV dword ptr [ESP + 0x8],ECX
MOV EDX,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0x24],EDX
XOR EDX,EDX
PUSH EDI
PUSH ESI
CALL 0x00039e80
MOV ECX,dword ptr [ESP + 0x10]
MOV EBP,EAX
MOVZX EDX,AL
MOV EAX,dword ptr [ESP + 0x14]
CALL 0x0006f6a0
LEA EAX,[EBP + -0x1]
ADD ESP,0x10
CMP EAX,0x1
JBE 0x0006f808
LEA EAX,[EBP + -0x3]
CMP EAX,0x1
JA 0x0006f7ea
CMP EBP,0x4
JZ 0x0006f870
SUB ESP,0x8
PUSH EDI
PUSH ESI
CALL 0x0004eb80
MOV EBP,EAX
POP EAX
POP EDX
PUSH EDI
PUSH ESI
CALL 0x0004e4d0
ADD ESP,0x10
MOV EBX,EAX
TEST EBP,EBP
JZ 0x0006f8a0
MOV ESI,dword ptr [ESP + 0x4]
MOV EDI,dword ptr [ESP]
MOV EDX,EBX
MOV ECX,EDI
MOV EAX,ESI
CALL 0x0006f460
SUB ESP,0xc
MOV ECX,EBX
MOV EDX,EBP
PUSH EDI
MOV EAX,ESI
CALL 0x0006f4b0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x1c]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x0006f8c4
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP EBP,0x1
JZ 0x0006f8b0
SUB ESP,0x8
PUSH EDI
PUSH ESI
CALL 0x00039c70
FSTP qword ptr [ESP + 0x18]
MOV ECX,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV EDX,ECX
SHR ECX,0x18
MOV byte ptr [ESP + 0x16],DH
BSWAP EAX
MOV byte ptr [ESP + 0x14],CL
MOV ECX,EDX
SAR ECX,0x10
MOV byte ptr [ESP + 0x17],DL
LEA EDX,[ESP + 0x14]
SUB ESP,0xc
MOV byte ptr [ESP + 0x21],CL
MOV ECX,0x8
MOV dword ptr [ESP + 0x24],EAX
PUSH dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0x14]
CALL 0x0006f4b0
ADD ESP,0x10
JMP 0x0006f7ea
SUB ESP,0x8
PUSH EDI
PUSH ESI
CALL 0x0004e800
POP ECX
MOV EBP,EAX
POP EAX
PUSH EDI
PUSH ESI
CALL 0x0004e4d0
ADD ESP,0x10
MOV EBX,EAX
TEST EBP,EBP
JNZ 0x0006f7c6
TEST EAX,EAX
JZ 0x0006f7c6
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP]
MOV dword ptr [EAX],0x7
JMP 0x0006f7ea
SUB ESP,0x8
PUSH EDI
PUSH ESI
CALL 0x00039cf0
ADD ESP,0x10
MOV ECX,EDX
JMP 0x0006f82c
CALL 0x000f6410
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3\nFUN_0006f740(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  undefined4 *puVar4;\n  undefined4 extraout_var;\n  undefined4 uVar5;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = FUN_00039e80(param_2,param_3);\n  uVar5 = extraout_var;\n  FUN_0006f6a0();\n  if (iVar2 - 1U < 2) {\n    if (iVar2 == 1) {\n      FUN_00039cf0(param_2,param_3);\n    }\n    else {\n      FUN_00039c70(param_2,param_3);\n    }\n    FUN_0006f4b0(param_4);\n    goto LAB_0006f7ea;\n  }\n  if (1 < iVar2 - 3U) goto LAB_0006f7ea;\n  if (iVar2 == 4) {\n    iVar2 = FUN_0004e800(param_2,param_3);\n    iVar3 = FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;\n  }\n  else {\n    iVar2 = FUN_0004eb80(param_2,param_3);\n    FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }\n  }\n  param_4 = puVar4;\n  FUN_0006f460();\n  FUN_0006f4b0(puVar4);\nLAB_0006f7ea:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000f6410(param_4,uVar5);\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3\nFUN_0006f740(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  undefined4 *puVar4;\n  undefined4 extraout_var;\n  undefined4 uVar5;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = FUN_00039e80(param_2,param_3);\n  uVar5 = extraout_var;\n  FUN_0006f6a0();\n  if (iVar2 - 1U < 2) {\n    if (iVar2 == 1) {\n      FUN_00039cf0(param_2,param_3);\n    }\n    else {\n      FUN_00039c70(param_2,param_3);\n    }\n    FUN_0006f4b0(param_4);\n    goto LAB_0006f7ea;\n  }\n  if (1 < iVar2 - 3U) goto LAB_0006f7ea;\n  if (iVar2 == 4) {\n    iVar2 = FUN_0004e800(param_2,param_3);\n    iVar3 = FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;\n  }\n  else {\n    iVar2 = FUN_0004eb80(param_2,param_3);\n    FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }\n  }\n  param_4 = puVar4;\n  FUN_0006f460();\n  FUN_0006f4b0(puVar4);\nLAB_0006f7ea:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000f6410(param_4,uVar5);\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0006f740(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  undefined4 *puVar4;\n  undefined4 extraout_var;\n  undefined4 uVar5;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = FUN_00039e80(param_2,param_3);\n  uVar5 = extraout_var;\n  FUN_0006f6a0();\n  if (iVar2 - 1U < 2) {\n    if (iVar2 == 1) {\n      FUN_00039cf0(param_2,param_3);\n    }\n    else {\n      FUN_00039c70(param_2,param_3);\n    }\n    FUN_0006f4b0(param_4);\n    goto LAB_0006f7ea;\n  }\n  if (1 < iVar2 - 3U) goto LAB_0006f7ea;\n  if (iVar2 == 4) {\n    iVar2 = FUN_0004e800(param_2,param_3);\n    iVar3 = FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;\n  }\n  else {\n    iVar2 = FUN_0004eb80(param_2,param_3);\n    FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }\n  }\n  param_4 = puVar4;\n  FUN_0006f460();\n  FUN_0006f4b0(puVar4);\nLAB_0006f7ea:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000f6410(param_4,uVar5);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 extraout_var;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(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 "iVar2 = FUN_00039e80(param_2,param_3);" (assignment_expression "iVar2 = FUN_00039e80(param_2,param_3)" identifier = (call_expression "FUN_00039e80(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (expression_statement "uVar5 = extraout_var;" (assignment_expression "uVar5 = extraout_var" identifier = identifier) ;) (expression_statement "FUN_0006f6a0();" (call_expression "FUN_0006f6a0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iVar2 - 1U < 2) {\n    if (iVar2 == 1) {\n      FUN_00039cf0(param_2,param_3);\n    }\n    else {\n      FUN_00039c70(param_2,param_3);\n    }\n    FUN_0006f4b0(param_4);\n    goto LAB_0006f7ea;\n  }" if (parenthesized_expression "(iVar2 - 1U < 2)" ( (binary_expression "iVar2 - 1U < 2" (binary_expression "iVar2 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n    if (iVar2 == 1) {\n      FUN_00039cf0(param_2,param_3);\n    }\n    else {\n      FUN_00039c70(param_2,param_3);\n    }\n    FUN_0006f4b0(param_4);\n    goto LAB_0006f7ea;\n  }" { (if_statement "if (iVar2 == 1) {\n      FUN_00039cf0(param_2,param_3);\n    }\n    else {\n      FUN_00039c70(param_2,param_3);\n    }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n      FUN_00039cf0(param_2,param_3);\n    }" { (expression_statement "FUN_00039cf0(param_2,param_3);" (call_expression "FUN_00039cf0(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier ))) ;) }) (else_clause "else {\n      FUN_00039c70(param_2,param_3);\n    }" else (compound_statement "{\n      FUN_00039c70(param_2,param_3);\n    }" { (expression_statement "FUN_00039c70(param_2,param_3);" (call_expression "FUN_00039c70(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier ))) ;) }))) (expression_statement "FUN_0006f4b0(param_4);" (call_expression "FUN_0006f4b0(param_4)" identifier (argument_list "(param_4)" ( identifier ))) ;) (goto_statement "goto LAB_0006f7ea;" goto statement_identifier ;) })) (if_statement "if (1 < iVar2 - 3U) goto LAB_0006f7ea;" if (parenthesized_expression "(1 < iVar2 - 3U)" ( (binary_expression "1 < iVar2 - 3U" number_literal < (binary_expression "iVar2 - 3U" identifier - number_literal)) )) (goto_statement "goto LAB_0006f7ea;" goto statement_identifier ;)) (if_statement "if (iVar2 == 4) {\n    iVar2 = FUN_0004e800(param_2,param_3);\n    iVar3 = FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;\n  }\n  else {\n    iVar2 = FUN_0004eb80(param_2,param_3);\n    FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }\n  }" if (parenthesized_expression "(iVar2 == 4)" ( (binary_expression "iVar2 == 4" identifier == number_literal) )) (compound_statement "{\n    iVar2 = FUN_0004e800(param_2,param_3);\n    iVar3 = FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;\n  }" { (expression_statement "iVar2 = FUN_0004e800(param_2,param_3);" (assignment_expression "iVar2 = FUN_0004e800(param_2,param_3)" identifier = (call_expression "FUN_0004e800(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (expression_statement "iVar3 = FUN_0004e4d0(param_2,param_3);" (assignment_expression "iVar3 = FUN_0004e4d0(param_2,param_3)" identifier = (call_expression "FUN_0004e4d0(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (expression_statement "puVar4 = param_4;" (assignment_expression "puVar4 = param_4" identifier = identifier) ;) (if_statement "if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;" if (parenthesized_expression "((iVar2 == 0) && (iVar3 != 0))" ( (binary_expression "(iVar2 == 0) && (iVar3 != 0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0006f8a0;" goto statement_identifier ;)) }) (else_clause "else {\n    iVar2 = FUN_0004eb80(param_2,param_3);\n    FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }\n  }" else (compound_statement "{\n    iVar2 = FUN_0004eb80(param_2,param_3);\n    FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }\n  }" { (expression_statement "iVar2 = FUN_0004eb80(param_2,param_3);" (assignment_expression "iVar2 = FUN_0004eb80(param_2,param_3)" identifier = (call_expression "FUN_0004eb80(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (expression_statement "FUN_0004e4d0(param_2,param_3);" (call_expression "FUN_0004e4d0(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier ))) ;) (expression_statement "puVar4 = param_4;" (assignment_expression "puVar4 = param_4" identifier = identifier) ;) (if_statement "if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }" { (labeled_statement "LAB_0006f8a0:\n      *param_4 = 7;" statement_identifier : (expression_statement "*param_4 = 7;" (assignment_expression "*param_4 = 7" (pointer_expression "*param_4" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0006f7ea;" goto statement_identifier ;) })) }))) (expression_statement "param_4 = puVar4;" (assignment_expression "param_4 = puVar4" identifier = identifier) ;) (expression_statement "FUN_0006f460();" (call_expression "FUN_0006f460()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0006f4b0(puVar4);" (call_expression "FUN_0006f4b0(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (labeled_statement "LAB_0006f7ea:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000f6410(param_4,uVar5);\n  }" statement_identifier : (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000f6410(param_4,uVar5);\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(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                    /* WARNING: Subroutine does not return */\n    FUN_000f6410(param_4,uVar5);\n  }" { comment (expression_statement "FUN_000f6410(param_4,uVar5);" (call_expression "FUN_000f6410(param_4,uVar5)" identifier (argument_list "(param_4,uVar5)" ( identifier , identifier ))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 sessionAppendCol(SessionBuffer *p,sqlite3_stmt *pStmt,int iCol,int *pRc)\n\n{\n  int iVar1;\n  int iVar2;\n  uchar *aBlob;\n  uint uVar3;\n  int in_GS_OFFSET;\n  double dVar4;\n  u8 uStack_2d;\n  u8 aBuf [8];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = sqlite3_column_type(pStmt,iCol);\n  sessionAppendByte(p,(u8)iVar2,pRc);\n  if (iVar2 - 1U < 2) {\n    if (iVar2 == 1) {\n      dVar4 = (double)sqlite3_column_int64(pStmt,iCol);\n      aBuf[0] = (u8)((ulonglong)dVar4 >> 0x38);\n    }\n    else {\n      dVar4 = sqlite3_column_double(pStmt,iCol);\n      uStack_2d = (u8)((ulonglong)dVar4 >> 0x38);\n      aBuf[0] = uStack_2d;\n    }\n    uVar3 = SUB84(dVar4,0);\n    aBuf[2] = (u8)((ulonglong)dVar4 >> 0x28);\n    aBuf._4_4_ = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n    aBuf[3] = (u8)((ulonglong)dVar4 >> 0x20);\n    aBuf[1] = (u8)((ulonglong)dVar4 >> 0x30);\n    sessionAppendBlob(p,aBuf,8,pRc);\n    goto LAB_0006f7ea;\n  }\n  if (1 < iVar2 - 3U) goto LAB_0006f7ea;\n  if (iVar2 == 4) {\n    aBlob = (uchar *)sqlite3_column_blob(pStmt,iCol);\n    iVar2 = sqlite3_column_bytes(pStmt,iCol);\n    if ((aBlob == (u8 *)0x0) && (iVar2 != 0)) goto LAB_0006f8a0;\n  }\n  else {\n    aBlob = sqlite3_column_text(pStmt,iCol);\n    iVar2 = sqlite3_column_bytes(pStmt,iCol);\n    if (aBlob == (uchar *)0x0) {\nLAB_0006f8a0:\n      *pRc = 7;\n      goto LAB_0006f7ea;\n    }\n  }\n  sessionAppendVarint(p,iVar2,pRc);\n  sessionAppendBlob(p,aBlob,iVar2,pRc);\nLAB_0006f7ea:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 sessionAppendCol(SessionBuffer *p,sqlite3_stmt *pStmt,int iCol,int *pRc)\n\n{\n  int iVar1;\n  int iVar2;\n  uchar *aBlob;\n  uint uVar3;\n  int in_GS_OFFSET;\n  double dVar4;\n  u8 uStack_2d;\n  u8 aBuf [8];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = sqlite3_column_type(pStmt,iCol);\n  sessionAppendByte(p,(u8)iVar2,pRc);\n  if (iVar2 - 1U < 2) {\n    if (iVar2 == 1) {\n      dVar4 = (double)sqlite3_column_int64(pStmt,iCol);\n      aBuf[0] = (u8)((ulonglong)dVar4 >> 0x38);\n    }\n    else {\n      dVar4 = sqlite3_column_double(pStmt,iCol);\n      uStack_2d = (u8)((ulonglong)dVar4 >> 0x38);\n      aBuf[0] = uStack_2d;\n    }\n    uVar3 = SUB84(dVar4,0);\n    aBuf[2] = (u8)((ulonglong)dVar4 >> 0x28);\n    aBuf._4_4_ = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n    aBuf[3] = (u8)((ulonglong)dVar4 >> 0x20);\n    aBuf[1] = (u8)((ulonglong)dVar4 >> 0x30);\n    sessionAppendBlob(p,aBuf,8,pRc);\n    goto LAB_0006f7ea;\n  }\n  if (1 < iVar2 - 3U) goto LAB_0006f7ea;\n  if (iVar2 == 4) {\n    aBlob = (uchar *)sqlite3_column_blob(pStmt,iCol);\n    iVar2 = sqlite3_column_bytes(pStmt,iCol);\n    if ((aBlob == (u8 *)0x0) && (iVar2 != 0)) goto LAB_0006f8a0;\n  }\n  else {\n    aBlob = sqlite3_column_text(pStmt,iCol);\n    iVar2 = sqlite3_column_bytes(pStmt,iCol);\n    if (aBlob == (uchar *)0x0) {\nLAB_0006f8a0:\n      *pRc = 7;\n      goto LAB_0006f7ea;\n    }\n  }\n  sessionAppendVarint(p,iVar2,pRc);\n  sessionAppendBlob(p,aBlob,iVar2,pRc);\nLAB_0006f7ea:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "sessionAppendCol(SessionBuffer *p,sqlite3_stmt *pStmt,int iCol,int *pRc)" identifier (parameter_list "(SessionBuffer *p,sqlite3_stmt *pStmt,int iCol,int *pRc)" ( (parameter_declaration "SessionBuffer *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "sqlite3_stmt *pStmt" type_identifier (pointer_declarator "*pStmt" * identifier)) , (parameter_declaration "int iCol" primitive_type identifier) , (parameter_declaration "int *pRc" primitive_type (pointer_declarator "*pRc" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  uchar *aBlob;\n  uint uVar3;\n  int in_GS_OFFSET;\n  double dVar4;\n  u8 uStack_2d;\n  u8 aBuf [8];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = sqlite3_column_type(pStmt,iCol);\n  sessionAppendByte(p,(u8)iVar2,pRc);\n  if (iVar2 - 1U < 2) {\n    if (iVar2 == 1) {\n      dVar4 = (double)sqlite3_column_int64(pStmt,iCol);\n      aBuf[0] = (u8)((ulonglong)dVar4 >> 0x38);\n    }\n    else {\n      dVar4 = sqlite3_column_double(pStmt,iCol);\n      uStack_2d = (u8)((ulonglong)dVar4 >> 0x38);\n      aBuf[0] = uStack_2d;\n    }\n    uVar3 = SUB84(dVar4,0);\n    aBuf[2] = (u8)((ulonglong)dVar4 >> 0x28);\n    aBuf._4_4_ = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n    aBuf[3] = (u8)((ulonglong)dVar4 >> 0x20);\n    aBuf[1] = (u8)((ulonglong)dVar4 >> 0x30);\n    sessionAppendBlob(p,aBuf,8,pRc);\n    goto LAB_0006f7ea;\n  }\n  if (1 < iVar2 - 3U) goto LAB_0006f7ea;\n  if (iVar2 == 4) {\n    aBlob = (uchar *)sqlite3_column_blob(pStmt,iCol);\n    iVar2 = sqlite3_column_bytes(pStmt,iCol);\n    if ((aBlob == (u8 *)0x0) && (iVar2 != 0)) goto LAB_0006f8a0;\n  }\n  else {\n    aBlob = sqlite3_column_text(pStmt,iCol);\n    iVar2 = sqlite3_column_bytes(pStmt,iCol);\n    if (aBlob == (uchar *)0x0) {\nLAB_0006f8a0:\n      *pRc = 7;\n      goto LAB_0006f7ea;\n    }\n  }\n  sessionAppendVarint(p,iVar2,pRc);\n  sessionAppendBlob(p,aBlob,iVar2,pRc);\nLAB_0006f7ea:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uchar *aBlob;" type_identifier (pointer_declarator "*aBlob" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "u8 uStack_2d;" type_identifier identifier ;) (declaration "u8 aBuf [8];" type_identifier (array_declarator "aBuf [8]" identifier [ number_literal ]) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(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 "iVar2 = sqlite3_column_type(pStmt,iCol);" (assignment_expression "iVar2 = sqlite3_column_type(pStmt,iCol)" identifier = (call_expression "sqlite3_column_type(pStmt,iCol)" identifier (argument_list "(pStmt,iCol)" ( identifier , identifier )))) ;) (expression_statement "sessionAppendByte(p,(u8)iVar2,pRc);" (call_expression "sessionAppendByte(p,(u8)iVar2,pRc)" identifier (argument_list "(p,(u8)iVar2,pRc)" ( identifier , (cast_expression "(u8)iVar2" ( (type_descriptor "u8" type_identifier) ) identifier) , identifier ))) ;) (if_statement "if (iVar2 - 1U < 2) {\n    if (iVar2 == 1) {\n      dVar4 = (double)sqlite3_column_int64(pStmt,iCol);\n      aBuf[0] = (u8)((ulonglong)dVar4 >> 0x38);\n    }\n    else {\n      dVar4 = sqlite3_column_double(pStmt,iCol);\n      uStack_2d = (u8)((ulonglong)dVar4 >> 0x38);\n      aBuf[0] = uStack_2d;\n    }\n    uVar3 = SUB84(dVar4,0);\n    aBuf[2] = (u8)((ulonglong)dVar4 >> 0x28);\n    aBuf._4_4_ = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n    aBuf[3] = (u8)((ulonglong)dVar4 >> 0x20);\n    aBuf[1] = (u8)((ulonglong)dVar4 >> 0x30);\n    sessionAppendBlob(p,aBuf,8,pRc);\n    goto LAB_0006f7ea;\n  }" if (parenthesized_expression "(iVar2 - 1U < 2)" ( (binary_expression "iVar2 - 1U < 2" (binary_expression "iVar2 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n    if (iVar2 == 1) {\n      dVar4 = (double)sqlite3_column_int64(pStmt,iCol);\n      aBuf[0] = (u8)((ulonglong)dVar4 >> 0x38);\n    }\n    else {\n      dVar4 = sqlite3_column_double(pStmt,iCol);\n      uStack_2d = (u8)((ulonglong)dVar4 >> 0x38);\n      aBuf[0] = uStack_2d;\n    }\n    uVar3 = SUB84(dVar4,0);\n    aBuf[2] = (u8)((ulonglong)dVar4 >> 0x28);\n    aBuf._4_4_ = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n    aBuf[3] = (u8)((ulonglong)dVar4 >> 0x20);\n    aBuf[1] = (u8)((ulonglong)dVar4 >> 0x30);\n    sessionAppendBlob(p,aBuf,8,pRc);\n    goto LAB_0006f7ea;\n  }" { (if_statement "if (iVar2 == 1) {\n      dVar4 = (double)sqlite3_column_int64(pStmt,iCol);\n      aBuf[0] = (u8)((ulonglong)dVar4 >> 0x38);\n    }\n    else {\n      dVar4 = sqlite3_column_double(pStmt,iCol);\n      uStack_2d = (u8)((ulonglong)dVar4 >> 0x38);\n      aBuf[0] = uStack_2d;\n    }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n      dVar4 = (double)sqlite3_column_int64(pStmt,iCol);\n      aBuf[0] = (u8)((ulonglong)dVar4 >> 0x38);\n    }" { (expression_statement "dVar4 = (double)sqlite3_column_int64(pStmt,iCol);" (assignment_expression "dVar4 = (double)sqlite3_column_int64(pStmt,iCol)" identifier = (cast_expression "(double)sqlite3_column_int64(pStmt,iCol)" ( (type_descriptor "double" primitive_type) ) (call_expression "sqlite3_column_int64(pStmt,iCol)" identifier (argument_list "(pStmt,iCol)" ( identifier , identifier ))))) ;) (expression_statement "aBuf[0] = (u8)((ulonglong)dVar4 >> 0x38);" (assignment_expression "aBuf[0] = (u8)((ulonglong)dVar4 >> 0x38)" (subscript_expression "aBuf[0]" identifier [ number_literal ]) = (call_expression "(u8)((ulonglong)dVar4 >> 0x38)" (parenthesized_expression "(u8)" ( identifier )) (argument_list "((ulonglong)dVar4 >> 0x38)" ( (binary_expression "(ulonglong)dVar4 >> 0x38" (cast_expression "(ulonglong)dVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }) (else_clause "else {\n      dVar4 = sqlite3_column_double(pStmt,iCol);\n      uStack_2d = (u8)((ulonglong)dVar4 >> 0x38);\n      aBuf[0] = uStack_2d;\n    }" else (compound_statement "{\n      dVar4 = sqlite3_column_double(pStmt,iCol);\n      uStack_2d = (u8)((ulonglong)dVar4 >> 0x38);\n      aBuf[0] = uStack_2d;\n    }" { (expression_statement "dVar4 = sqlite3_column_double(pStmt,iCol);" (assignment_expression "dVar4 = sqlite3_column_double(pStmt,iCol)" identifier = (call_expression "sqlite3_column_double(pStmt,iCol)" identifier (argument_list "(pStmt,iCol)" ( identifier , identifier )))) ;) (expression_statement "uStack_2d = (u8)((ulonglong)dVar4 >> 0x38);" (assignment_expression "uStack_2d = (u8)((ulonglong)dVar4 >> 0x38)" identifier = (call_expression "(u8)((ulonglong)dVar4 >> 0x38)" (parenthesized_expression "(u8)" ( identifier )) (argument_list "((ulonglong)dVar4 >> 0x38)" ( (binary_expression "(ulonglong)dVar4 >> 0x38" (cast_expression "(ulonglong)dVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "aBuf[0] = uStack_2d;" (assignment_expression "aBuf[0] = uStack_2d" (subscript_expression "aBuf[0]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "uVar3 = SUB84(dVar4,0);" (assignment_expression "uVar3 = SUB84(dVar4,0)" identifier = (call_expression "SUB84(dVar4,0)" identifier (argument_list "(dVar4,0)" ( identifier , number_literal )))) ;) (expression_statement "aBuf[2] = (u8)((ulonglong)dVar4 >> 0x28);" (assignment_expression "aBuf[2] = (u8)((ulonglong)dVar4 >> 0x28)" (subscript_expression "aBuf[2]" identifier [ number_literal ]) = (call_expression "(u8)((ulonglong)dVar4 >> 0x28)" (parenthesized_expression "(u8)" ( identifier )) (argument_list "((ulonglong)dVar4 >> 0x28)" ( (binary_expression "(ulonglong)dVar4 >> 0x28" (cast_expression "(ulonglong)dVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "aBuf._4_4_ = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;" (assignment_expression "aBuf._4_4_ = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18" (field_expression "aBuf._4_4_" identifier . field_identifier) = (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal))) ;) (expression_statement "aBuf[3] = (u8)((ulonglong)dVar4 >> 0x20);" (assignment_expression "aBuf[3] = (u8)((ulonglong)dVar4 >> 0x20)" (subscript_expression "aBuf[3]" identifier [ number_literal ]) = (call_expression "(u8)((ulonglong)dVar4 >> 0x20)" (parenthesized_expression "(u8)" ( identifier )) (argument_list "((ulonglong)dVar4 >> 0x20)" ( (binary_expression "(ulonglong)dVar4 >> 0x20" (cast_expression "(ulonglong)dVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "aBuf[1] = (u8)((ulonglong)dVar4 >> 0x30);" (assignment_expression "aBuf[1] = (u8)((ulonglong)dVar4 >> 0x30)" (subscript_expression "aBuf[1]" identifier [ number_literal ]) = (call_expression "(u8)((ulonglong)dVar4 >> 0x30)" (parenthesized_expression "(u8)" ( identifier )) (argument_list "((ulonglong)dVar4 >> 0x30)" ( (binary_expression "(ulonglong)dVar4 >> 0x30" (cast_expression "(ulonglong)dVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "sessionAppendBlob(p,aBuf,8,pRc);" (call_expression "sessionAppendBlob(p,aBuf,8,pRc)" identifier (argument_list "(p,aBuf,8,pRc)" ( identifier , identifier , number_literal , identifier ))) ;) (goto_statement "goto LAB_0006f7ea;" goto statement_identifier ;) })) (if_statement "if (1 < iVar2 - 3U) goto LAB_0006f7ea;" if (parenthesized_expression "(1 < iVar2 - 3U)" ( (binary_expression "1 < iVar2 - 3U" number_literal < (binary_expression "iVar2 - 3U" identifier - number_literal)) )) (goto_statement "goto LAB_0006f7ea;" goto statement_identifier ;)) (if_statement "if (iVar2 == 4) {\n    aBlob = (uchar *)sqlite3_column_blob(pStmt,iCol);\n    iVar2 = sqlite3_column_bytes(pStmt,iCol);\n    if ((aBlob == (u8 *)0x0) && (iVar2 != 0)) goto LAB_0006f8a0;\n  }\n  else {\n    aBlob = sqlite3_column_text(pStmt,iCol);\n    iVar2 = sqlite3_column_bytes(pStmt,iCol);\n    if (aBlob == (uchar *)0x0) {\nLAB_0006f8a0:\n      *pRc = 7;\n      goto LAB_0006f7ea;\n    }\n  }" if (parenthesized_expression "(iVar2 == 4)" ( (binary_expression "iVar2 == 4" identifier == number_literal) )) (compound_statement "{\n    aBlob = (uchar *)sqlite3_column_blob(pStmt,iCol);\n    iVar2 = sqlite3_column_bytes(pStmt,iCol);\n    if ((aBlob == (u8 *)0x0) && (iVar2 != 0)) goto LAB_0006f8a0;\n  }" { (expression_statement "aBlob = (uchar *)sqlite3_column_blob(pStmt,iCol);" (assignment_expression "aBlob = (uchar *)sqlite3_column_blob(pStmt,iCol)" identifier = (cast_expression "(uchar *)sqlite3_column_blob(pStmt,iCol)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_column_blob(pStmt,iCol)" identifier (argument_list "(pStmt,iCol)" ( identifier , identifier ))))) ;) (expression_statement "iVar2 = sqlite3_column_bytes(pStmt,iCol);" (assignment_expression "iVar2 = sqlite3_column_bytes(pStmt,iCol)" identifier = (call_expression "sqlite3_column_bytes(pStmt,iCol)" identifier (argument_list "(pStmt,iCol)" ( identifier , identifier )))) ;) (if_statement "if ((aBlob == (u8 *)0x0) && (iVar2 != 0)) goto LAB_0006f8a0;" if (parenthesized_expression "((aBlob == (u8 *)0x0) && (iVar2 != 0))" ( (binary_expression "(aBlob == (u8 *)0x0) && (iVar2 != 0)" (parenthesized_expression "(aBlob == (u8 *)0x0)" ( (binary_expression "aBlob == (u8 *)0x0" identifier == (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0006f8a0;" goto statement_identifier ;)) }) (else_clause "else {\n    aBlob = sqlite3_column_text(pStmt,iCol);\n    iVar2 = sqlite3_column_bytes(pStmt,iCol);\n    if (aBlob == (uchar *)0x0) {\nLAB_0006f8a0:\n      *pRc = 7;\n      goto LAB_0006f7ea;\n    }\n  }" else (compound_statement "{\n    aBlob = sqlite3_column_text(pStmt,iCol);\n    iVar2 = sqlite3_column_bytes(pStmt,iCol);\n    if (aBlob == (uchar *)0x0) {\nLAB_0006f8a0:\n      *pRc = 7;\n      goto LAB_0006f7ea;\n    }\n  }" { (expression_statement "aBlob = sqlite3_column_text(pStmt,iCol);" (assignment_expression "aBlob = sqlite3_column_text(pStmt,iCol)" identifier = (call_expression "sqlite3_column_text(pStmt,iCol)" identifier (argument_list "(pStmt,iCol)" ( identifier , identifier )))) ;) (expression_statement "iVar2 = sqlite3_column_bytes(pStmt,iCol);" (assignment_expression "iVar2 = sqlite3_column_bytes(pStmt,iCol)" identifier = (call_expression "sqlite3_column_bytes(pStmt,iCol)" identifier (argument_list "(pStmt,iCol)" ( identifier , identifier )))) ;) (if_statement "if (aBlob == (uchar *)0x0) {\nLAB_0006f8a0:\n      *pRc = 7;\n      goto LAB_0006f7ea;\n    }" if (parenthesized_expression "(aBlob == (uchar *)0x0)" ( (binary_expression "aBlob == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0006f8a0:\n      *pRc = 7;\n      goto LAB_0006f7ea;\n    }" { (labeled_statement "LAB_0006f8a0:\n      *pRc = 7;" statement_identifier : (expression_statement "*pRc = 7;" (assignment_expression "*pRc = 7" (pointer_expression "*pRc" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0006f7ea;" goto statement_identifier ;) })) }))) (expression_statement "sessionAppendVarint(p,iVar2,pRc);" (call_expression "sessionAppendVarint(p,iVar2,pRc)" identifier (argument_list "(p,iVar2,pRc)" ( identifier , identifier , identifier ))) ;) (expression_statement "sessionAppendBlob(p,aBlob,iVar2,pRc);" (call_expression "sessionAppendBlob(p,aBlob,iVar2,pRc)" identifier (argument_list "(p,aBlob,iVar2,pRc)" ( identifier , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_0006f7ea:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" statement_identifier : (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(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                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3\nFUN_0006f740(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  undefined4 *puVar4;\n  undefined4 extraout_var;\n  undefined4 uVar5;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = FUN_00039e80(param_2,param_3);\n  uVar5 = extraout_var;\n  FUN_0006f6a0();\n  if (iVar2 - 1U < 2) {\n    if (iVar2 == 1) {\n      FUN_00039cf0(param_2,param_3);\n    }\n    else {\n      FUN_00039c70(param_2,param_3);\n    }\n    FUN_0006f4b0(param_4);\n    goto LAB_0006f7ea;\n  }\n  if (1 < iVar2 - 3U) goto LAB_0006f7ea;\n  if (iVar2 == 4) {\n    iVar2 = FUN_0004e800(param_2,param_3);\n    iVar3 = FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;\n  }\n  else {\n    iVar2 = FUN_0004eb80(param_2,param_3);\n    FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }\n  }\n  param_4 = puVar4;\n  FUN_0006f460();\n  FUN_0006f4b0(puVar4);\nLAB_0006f7ea:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f6410(param_4,uVar5);\n  }\n  return;\n}\n\n" (function_definition "void __regparm3\nFUN_0006f740(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  undefined4 *puVar4;\n  undefined4 extraout_var;\n  undefined4 uVar5;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = FUN_00039e80(param_2,param_3);\n  uVar5 = extraout_var;\n  FUN_0006f6a0();\n  if (iVar2 - 1U < 2) {\n    if (iVar2 == 1) {\n      FUN_00039cf0(param_2,param_3);\n    }\n    else {\n      FUN_00039c70(param_2,param_3);\n    }\n    FUN_0006f4b0(param_4);\n    goto LAB_0006f7ea;\n  }\n  if (1 < iVar2 - 3U) goto LAB_0006f7ea;\n  if (iVar2 == 4) {\n    iVar2 = FUN_0004e800(param_2,param_3);\n    iVar3 = FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;\n  }\n  else {\n    iVar2 = FUN_0004eb80(param_2,param_3);\n    FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }\n  }\n  param_4 = puVar4;\n  FUN_0006f460();\n  FUN_0006f4b0(puVar4);\nLAB_0006f7ea:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f6410(param_4,uVar5);\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0006f740(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  undefined4 *puVar4;\n  undefined4 extraout_var;\n  undefined4 uVar5;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = FUN_00039e80(param_2,param_3);\n  uVar5 = extraout_var;\n  FUN_0006f6a0();\n  if (iVar2 - 1U < 2) {\n    if (iVar2 == 1) {\n      FUN_00039cf0(param_2,param_3);\n    }\n    else {\n      FUN_00039c70(param_2,param_3);\n    }\n    FUN_0006f4b0(param_4);\n    goto LAB_0006f7ea;\n  }\n  if (1 < iVar2 - 3U) goto LAB_0006f7ea;\n  if (iVar2 == 4) {\n    iVar2 = FUN_0004e800(param_2,param_3);\n    iVar3 = FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;\n  }\n  else {\n    iVar2 = FUN_0004eb80(param_2,param_3);\n    FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }\n  }\n  param_4 = puVar4;\n  FUN_0006f460();\n  FUN_0006f4b0(puVar4);\nLAB_0006f7ea:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f6410(param_4,uVar5);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 extraout_var;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(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 "iVar2 = FUN_00039e80(param_2,param_3);" (assignment_expression "iVar2 = FUN_00039e80(param_2,param_3)" identifier = (call_expression "FUN_00039e80(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (expression_statement "uVar5 = extraout_var;" (assignment_expression "uVar5 = extraout_var" identifier = identifier) ;) (expression_statement "FUN_0006f6a0();" (call_expression "FUN_0006f6a0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iVar2 - 1U < 2) {\n    if (iVar2 == 1) {\n      FUN_00039cf0(param_2,param_3);\n    }\n    else {\n      FUN_00039c70(param_2,param_3);\n    }\n    FUN_0006f4b0(param_4);\n    goto LAB_0006f7ea;\n  }" if (parenthesized_expression "(iVar2 - 1U < 2)" ( (binary_expression "iVar2 - 1U < 2" (binary_expression "iVar2 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n    if (iVar2 == 1) {\n      FUN_00039cf0(param_2,param_3);\n    }\n    else {\n      FUN_00039c70(param_2,param_3);\n    }\n    FUN_0006f4b0(param_4);\n    goto LAB_0006f7ea;\n  }" { (if_statement "if (iVar2 == 1) {\n      FUN_00039cf0(param_2,param_3);\n    }\n    else {\n      FUN_00039c70(param_2,param_3);\n    }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n      FUN_00039cf0(param_2,param_3);\n    }" { (expression_statement "FUN_00039cf0(param_2,param_3);" (call_expression "FUN_00039cf0(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier ))) ;) }) (else_clause "else {\n      FUN_00039c70(param_2,param_3);\n    }" else (compound_statement "{\n      FUN_00039c70(param_2,param_3);\n    }" { (expression_statement "FUN_00039c70(param_2,param_3);" (call_expression "FUN_00039c70(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier ))) ;) }))) (expression_statement "FUN_0006f4b0(param_4);" (call_expression "FUN_0006f4b0(param_4)" identifier (argument_list "(param_4)" ( identifier ))) ;) (goto_statement "goto LAB_0006f7ea;" goto statement_identifier ;) })) (if_statement "if (1 < iVar2 - 3U) goto LAB_0006f7ea;" if (parenthesized_expression "(1 < iVar2 - 3U)" ( (binary_expression "1 < iVar2 - 3U" number_literal < (binary_expression "iVar2 - 3U" identifier - number_literal)) )) (goto_statement "goto LAB_0006f7ea;" goto statement_identifier ;)) (if_statement "if (iVar2 == 4) {\n    iVar2 = FUN_0004e800(param_2,param_3);\n    iVar3 = FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;\n  }\n  else {\n    iVar2 = FUN_0004eb80(param_2,param_3);\n    FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }\n  }" if (parenthesized_expression "(iVar2 == 4)" ( (binary_expression "iVar2 == 4" identifier == number_literal) )) (compound_statement "{\n    iVar2 = FUN_0004e800(param_2,param_3);\n    iVar3 = FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;\n  }" { (expression_statement "iVar2 = FUN_0004e800(param_2,param_3);" (assignment_expression "iVar2 = FUN_0004e800(param_2,param_3)" identifier = (call_expression "FUN_0004e800(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (expression_statement "iVar3 = FUN_0004e4d0(param_2,param_3);" (assignment_expression "iVar3 = FUN_0004e4d0(param_2,param_3)" identifier = (call_expression "FUN_0004e4d0(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (expression_statement "puVar4 = param_4;" (assignment_expression "puVar4 = param_4" identifier = identifier) ;) (if_statement "if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;" if (parenthesized_expression "((iVar2 == 0) && (iVar3 != 0))" ( (binary_expression "(iVar2 == 0) && (iVar3 != 0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0006f8a0;" goto statement_identifier ;)) }) (else_clause "else {\n    iVar2 = FUN_0004eb80(param_2,param_3);\n    FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }\n  }" else (compound_statement "{\n    iVar2 = FUN_0004eb80(param_2,param_3);\n    FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }\n  }" { (expression_statement "iVar2 = FUN_0004eb80(param_2,param_3);" (assignment_expression "iVar2 = FUN_0004eb80(param_2,param_3)" identifier = (call_expression "FUN_0004eb80(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (expression_statement "FUN_0004e4d0(param_2,param_3);" (call_expression "FUN_0004e4d0(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier ))) ;) (expression_statement "puVar4 = param_4;" (assignment_expression "puVar4 = param_4" identifier = identifier) ;) (if_statement "if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }" { (labeled_statement "LAB_0006f8a0:\n      *param_4 = 7;" statement_identifier : (expression_statement "*param_4 = 7;" (assignment_expression "*param_4 = 7" (pointer_expression "*param_4" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0006f7ea;" goto statement_identifier ;) })) }))) (expression_statement "param_4 = puVar4;" (assignment_expression "param_4 = puVar4" identifier = identifier) ;) (expression_statement "FUN_0006f460();" (call_expression "FUN_0006f460()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0006f4b0(puVar4);" (call_expression "FUN_0006f4b0(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (labeled_statement "LAB_0006f7ea:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f6410(param_4,uVar5);\n  }" statement_identifier : (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f6410(param_4,uVar5);\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(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                    \n    FUN_000f6410(param_4,uVar5);\n  }" { (expression_statement "FUN_000f6410(param_4,uVar5);" (call_expression "FUN_000f6410(param_4,uVar5)" identifier (argument_list "(param_4,uVar5)" ( identifier , identifier ))) ;) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (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 { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (return_statement return ;) })))
(function_definition "void __regparm3\nFUN_0006f740(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  undefined4 *puVar4;\n  undefined4 extraout_var;\n  undefined4 uVar5;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = FUN_00039e80(param_2,param_3);\n  uVar5 = extraout_var;\n  FUN_0006f6a0();\n  if (iVar2 - 1U < 2) {\n    if (iVar2 == 1) {\n      FUN_00039cf0(param_2,param_3);\n    }\n    else {\n      FUN_00039c70(param_2,param_3);\n    }\n    FUN_0006f4b0(param_4);\n    goto LAB_0006f7ea;\n  }\n  if (1 < iVar2 - 3U) goto LAB_0006f7ea;\n  if (iVar2 == 4) {\n    iVar2 = FUN_0004e800(param_2,param_3);\n    iVar3 = FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;\n  }\n  else {\n    iVar2 = FUN_0004eb80(param_2,param_3);\n    FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }\n  }\n  param_4 = puVar4;\n  FUN_0006f460();\n  FUN_0006f4b0(puVar4);\nLAB_0006f7ea:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f6410(param_4,uVar5);\n  }\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0006f740(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4)" (identifier "FUN_0006f740") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  undefined4 *puVar4;\n  undefined4 extraout_var;\n  undefined4 uVar5;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = FUN_00039e80(param_2,param_3);\n  uVar5 = extraout_var;\n  FUN_0006f6a0();\n  if (iVar2 - 1U < 2) {\n    if (iVar2 == 1) {\n      FUN_00039cf0(param_2,param_3);\n    }\n    else {\n      FUN_00039c70(param_2,param_3);\n    }\n    FUN_0006f4b0(param_4);\n    goto LAB_0006f7ea;\n  }\n  if (1 < iVar2 - 3U) goto LAB_0006f7ea;\n  if (iVar2 == 4) {\n    iVar2 = FUN_0004e800(param_2,param_3);\n    iVar3 = FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;\n  }\n  else {\n    iVar2 = FUN_0004eb80(param_2,param_3);\n    FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }\n  }\n  param_4 = puVar4;\n  FUN_0006f460();\n  FUN_0006f4b0(puVar4);\nLAB_0006f7ea:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f6410(param_4,uVar5);\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 extraout_var;" (type_identifier "undefined4") (identifier "extraout_var") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "iVar1") (= "=") (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 "iVar2 = FUN_00039e80(param_2,param_3);" (assignment_expression "iVar2 = FUN_00039e80(param_2,param_3)" (identifier "iVar2") (= "=") (call_expression "FUN_00039e80(param_2,param_3)" (identifier "FUN_00039e80") (argument_list "(param_2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "uVar5 = extraout_var;" (assignment_expression "uVar5 = extraout_var" (identifier "uVar5") (= "=") (identifier "extraout_var")) (; ";")) (expression_statement "FUN_0006f6a0();" (call_expression "FUN_0006f6a0()" (identifier "FUN_0006f6a0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (iVar2 - 1U < 2) {\n    if (iVar2 == 1) {\n      FUN_00039cf0(param_2,param_3);\n    }\n    else {\n      FUN_00039c70(param_2,param_3);\n    }\n    FUN_0006f4b0(param_4);\n    goto LAB_0006f7ea;\n  }" (if "if") (parenthesized_expression "(iVar2 - 1U < 2)" (( "(") (binary_expression "iVar2 - 1U < 2" (binary_expression "iVar2 - 1U" (identifier "iVar2") (- "-") (number_literal "1U")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n    if (iVar2 == 1) {\n      FUN_00039cf0(param_2,param_3);\n    }\n    else {\n      FUN_00039c70(param_2,param_3);\n    }\n    FUN_0006f4b0(param_4);\n    goto LAB_0006f7ea;\n  }" ({ "{") (if_statement "if (iVar2 == 1) {\n      FUN_00039cf0(param_2,param_3);\n    }\n    else {\n      FUN_00039c70(param_2,param_3);\n    }" (if "if") (parenthesized_expression "(iVar2 == 1)" (( "(") (binary_expression "iVar2 == 1" (identifier "iVar2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      FUN_00039cf0(param_2,param_3);\n    }" ({ "{") (expression_statement "FUN_00039cf0(param_2,param_3);" (call_expression "FUN_00039cf0(param_2,param_3)" (identifier "FUN_00039cf0") (argument_list "(param_2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      FUN_00039c70(param_2,param_3);\n    }" (else "else") (compound_statement "{\n      FUN_00039c70(param_2,param_3);\n    }" ({ "{") (expression_statement "FUN_00039c70(param_2,param_3);" (call_expression "FUN_00039c70(param_2,param_3)" (identifier "FUN_00039c70") (argument_list "(param_2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_0006f4b0(param_4);" (call_expression "FUN_0006f4b0(param_4)" (identifier "FUN_0006f4b0") (argument_list "(param_4)" (( "(") (identifier "param_4") () ")"))) (; ";")) (goto_statement "goto LAB_0006f7ea;" (goto "goto") (statement_identifier "LAB_0006f7ea") (; ";")) (} "}"))) (if_statement "if (1 < iVar2 - 3U) goto LAB_0006f7ea;" (if "if") (parenthesized_expression "(1 < iVar2 - 3U)" (( "(") (binary_expression "1 < iVar2 - 3U" (number_literal "1") (< "<") (binary_expression "iVar2 - 3U" (identifier "iVar2") (- "-") (number_literal "3U"))) () ")")) (goto_statement "goto LAB_0006f7ea;" (goto "goto") (statement_identifier "LAB_0006f7ea") (; ";"))) (if_statement "if (iVar2 == 4) {\n    iVar2 = FUN_0004e800(param_2,param_3);\n    iVar3 = FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;\n  }\n  else {\n    iVar2 = FUN_0004eb80(param_2,param_3);\n    FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 == 4)" (( "(") (binary_expression "iVar2 == 4" (identifier "iVar2") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n    iVar2 = FUN_0004e800(param_2,param_3);\n    iVar3 = FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;\n  }" ({ "{") (expression_statement "iVar2 = FUN_0004e800(param_2,param_3);" (assignment_expression "iVar2 = FUN_0004e800(param_2,param_3)" (identifier "iVar2") (= "=") (call_expression "FUN_0004e800(param_2,param_3)" (identifier "FUN_0004e800") (argument_list "(param_2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "iVar3 = FUN_0004e4d0(param_2,param_3);" (assignment_expression "iVar3 = FUN_0004e4d0(param_2,param_3)" (identifier "iVar3") (= "=") (call_expression "FUN_0004e4d0(param_2,param_3)" (identifier "FUN_0004e4d0") (argument_list "(param_2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "puVar4 = param_4;" (assignment_expression "puVar4 = param_4" (identifier "puVar4") (= "=") (identifier "param_4")) (; ";")) (if_statement "if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;" (if "if") (parenthesized_expression "((iVar2 == 0) && (iVar3 != 0))" (( "(") (binary_expression "(iVar2 == 0) && (iVar3 != 0)" (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0006f8a0;" (goto "goto") (statement_identifier "LAB_0006f8a0") (; ";"))) (} "}")) (else_clause "else {\n    iVar2 = FUN_0004eb80(param_2,param_3);\n    FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }\n  }" (else "else") (compound_statement "{\n    iVar2 = FUN_0004eb80(param_2,param_3);\n    FUN_0004e4d0(param_2,param_3);\n    puVar4 = param_4;\n    if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }\n  }" ({ "{") (expression_statement "iVar2 = FUN_0004eb80(param_2,param_3);" (assignment_expression "iVar2 = FUN_0004eb80(param_2,param_3)" (identifier "iVar2") (= "=") (call_expression "FUN_0004eb80(param_2,param_3)" (identifier "FUN_0004eb80") (argument_list "(param_2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "FUN_0004e4d0(param_2,param_3);" (call_expression "FUN_0004e4d0(param_2,param_3)" (identifier "FUN_0004e4d0") (argument_list "(param_2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "puVar4 = param_4;" (assignment_expression "puVar4 = param_4" (identifier "puVar4") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (iVar2 == 0) {\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0006f8a0:\n      *param_4 = 7;\n      goto LAB_0006f7ea;\n    }" ({ "{") (labeled_statement "LAB_0006f8a0:\n      *param_4 = 7;" (statement_identifier "LAB_0006f8a0") (: ":") (expression_statement "*param_4 = 7;" (assignment_expression "*param_4 = 7" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (number_literal "7")) (; ";"))) (goto_statement "goto LAB_0006f7ea;" (goto "goto") (statement_identifier "LAB_0006f7ea") (; ";")) (} "}"))) (} "}")))) (expression_statement "param_4 = puVar4;" (assignment_expression "param_4 = puVar4" (identifier "param_4") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "FUN_0006f460();" (call_expression "FUN_0006f460()" (identifier "FUN_0006f460") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0006f4b0(puVar4);" (call_expression "FUN_0006f4b0(puVar4)" (identifier "FUN_0006f4b0") (argument_list "(puVar4)" (( "(") (identifier "puVar4") () ")"))) (; ";")) (labeled_statement "LAB_0006f7ea:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f6410(param_4,uVar5);\n  }" (statement_identifier "LAB_0006f7ea") (: ":") (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f6410(param_4,uVar5);\n  }" (if "if") (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "iVar1 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "iVar1") (!= "!=") (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                    \n    FUN_000f6410(param_4,uVar5);\n  }" ({ "{") (expression_statement "FUN_000f6410(param_4,uVar5);" (call_expression "FUN_000f6410(param_4,uVar5)" (identifier "FUN_000f6410") (argument_list "(param_4,uVar5)" (( "(") (identifier "param_4") (, ",") (identifier "uVar5") () ")"))) (; ";")) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void __regparm3 function_1(type_1 *p,type_2 *pStmt,int iCol,int *pRc)

{
  int var_15;
  int var_4;
  type_3 *var_12;
  type_4 var_8;
  int var_1;
  double dVar4;
  type_5 uStack_2d;
  type_5 aBuf [8];
  
  var_15 = *(int *)(var_1 + 0x14);
  var_4 = var_2(pStmt,iCol);
  var_3(p,(type_5)var_4,pRc);
  if (var_4 - 1U < 2) {
    if (var_4 == 1) {
      dVar4 = (double)var_5(pStmt,iCol);
      aBuf[0] = (type_5)((type_6)dVar4 >> 0x38);
    }
    else {
      dVar4 = var_6(pStmt,iCol);
      uStack_2d = (type_5)((type_6)dVar4 >> 0x38);
      aBuf[0] = uStack_2d;
    }
    var_8 = var_7(dVar4,0);
    aBuf[2] = (type_5)((type_6)dVar4 >> 0x28);
    aBuf._4_4_ = var_8 >> 0x18 | (var_8 & 0xff0000) >> 8 | (var_8 & 0xff00) << 8 | var_8 << 0x18;
    aBuf[3] = (type_5)((type_6)dVar4 >> 0x20);
    aBuf[1] = (type_5)((type_6)dVar4 >> 0x30);
    var_9(p,aBuf,8,pRc);
    goto LAB_0006f7ea;
  }
  if (1 < var_4 - 3U) goto LAB_0006f7ea;
  if (var_4 == 4) {
    var_12 = (type_3 *)var_10(pStmt,iCol);
    var_4 = var_11(pStmt,iCol);
    if ((var_12 == (type_5 *)0x0) && (var_4 != 0)) goto LAB_0006f8a0;
  }
  else {
    var_12 = var_13(pStmt,iCol);
    var_4 = var_11(pStmt,iCol);
    if (var_12 == (type_3 *)0x0) {
LAB_0006f8a0:
      *pRc = 7;
      goto LAB_0006f7ea;
    }
  }
  var_14(p,var_4,pRc);
  var_9(p,var_12,var_4,pRc);
LAB_0006f7ea:
  if (var_15 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_16();
  }
  return;
}


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

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

void __regparm3
MASKED(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 *param_4)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int in_GS_OFFSET;
  undefined4 *puVar4;
  undefined4 extraout_var;
  undefined4 uVar5;
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  iVar2 = FUN_00039e80(param_2,param_3);
  uVar5 = extraout_var;
  FUN_0006f6a0();
  if (iVar2 - 1U < 2) {
    if (iVar2 == 1) {
      FUN_00039cf0(param_2,param_3);
    }
    else {
      FUN_00039c70(param_2,param_3);
    }
    FUN_0006f4b0(param_4);
    goto LAB_0006f7ea;
  }
  if (1 < iVar2 - 3U) goto LAB_0006f7ea;
  if (iVar2 == 4) {
    iVar2 = FUN_0004e800(param_2,param_3);
    iVar3 = FUN_0004e4d0(param_2,param_3);
    puVar4 = param_4;
    if ((iVar2 == 0) && (iVar3 != 0)) goto LAB_0006f8a0;
  }
  else {
    iVar2 = FUN_0004eb80(param_2,param_3);
    FUN_0004e4d0(param_2,param_3);
    puVar4 = param_4;
    if (iVar2 == 0) {
LAB_0006f8a0:
      *param_4 = 7;
      goto LAB_0006f7ea;
    }
  }
  param_4 = puVar4;
  FUN_0006f460();
  FUN_0006f4b0(puVar4);
LAB_0006f7ea:
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_000f6410(param_4,uVar5);
  }
  return;
}

