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

void __regparm3 sqlite3Savepoint(Parse *pParse,int op,Token *pName)

{
  char *__src;
  char *__n;
  Parse *pParse_00;
  int iVar1;
  Vdbe *p;
  int p3;
  char *zArg1;
  char *zArg2;
  char *in_stack_ffffffd4;
  undefined4 in_stack_ffffffd8;
  
  if (pName != (Token *)0x0) {
    __src = pName->z;
    if ((__src == (char *)0x0) || (pParse->db->mallocFailed != '\0')) {
LAB_00088f40:
      sqlite3Dequote((char *)0x0);
      return;
    }
    __n = (char *)pName->n;
    zArg2 = (char *)0x88ebe;
    pParse_00 = (Parse *)dbMallocRawFinish(pParse->db,CONCAT44(in_stack_ffffffd8,in_stack_ffffffd4))
    ;
    if (pParse_00 == (Parse *)0x0) goto LAB_00088f40;
    zArg1 = __n;
    memcpy(pParse_00,__src,(size_t)__n);
    __n[(int)&pParse_00->db] = '\0';
    sqlite3Dequote((char *)pParse_00);
    p = pParse->pVdbe;
    if (p == (Vdbe *)0x0) {
      zArg2 = (char *)0x88f57;
      p = sqlite3GetVdbe(pParse);
      if (p == (Vdbe *)0x0) goto LAB_00088f5d;
    }
    p3 = 0;
    iVar1 = sqlite3AuthCheck(pParse_00,0,zArg1,zArg2,in_stack_ffffffd4);
    if (iVar1 != 0) {
LAB_00088f5d:
      sqlite3DbFreeNN(pParse->db,pParse_00);
      return;
    }
    iVar1 = sqlite3VdbeAddOp3(p,0,op,0,p3);
    sqlite3VdbeChangeP4(p,iVar1,(char *)pParse_00,-7);
  }
  return;
}



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

void __regparm3 FUN_00088e70(int *param_1,undefined4 param_2,undefined4 *param_3)

{
  void *__src;
  size_t __n;
  void *__dest;
  int iVar1;
  
  if (param_3 != (undefined4 *)0x0) {
    __src = (void *)*param_3;
    if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {
LAB_00088f40:
      FUN_0003a670();
      return;
    }
    __n = param_3[1];
    __dest = (void *)FUN_00055c10();
    if (__dest == (void *)0x0) goto LAB_00088f40;
    memcpy(__dest,__src,__n);
    *(undefined1 *)((int)__dest + __n) = 0;
    FUN_0003a670();
    if (param_1[2] == 0) {
      iVar1 = FUN_00073350();
      if (iVar1 == 0) goto LAB_00088f5d;
    }
    iVar1 = FUN_00088da0(__dest,0);
    if (iVar1 != 0) {
LAB_00088f5d:
      FUN_00044090();
      return;
    }
    FUN_00073150(0);
    FUN_00062750(0xfffffff9);
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000172e0
ADD EBX,0x131faf
SUB ESP,0x1c
TEST ECX,ECX
JZ 0x00088f32
MOV ESI,dword ptr [ECX]
MOV dword ptr [ESP + 0x8],ESI
TEST ESI,ESI
JZ 0x00088f40
MOV EDI,dword ptr [EAX]
CMP byte ptr [EDI + 0x4d],0x0
JNZ 0x00088f40
MOV EBP,dword ptr [ECX + 0x4]
MOV dword ptr [ESP + 0xc],EDX
XOR ECX,ECX
MOV ESI,EAX
MOV EAX,EDI
MOV EDX,EBP
ADD EDX,0x1
ADC ECX,0x0
CALL 0x00055c10
MOV EDI,EAX
TEST EAX,EAX
JZ 0x00088f40
SUB ESP,0x4
PUSH EBP
PUSH dword ptr [ESP + 0x10]
PUSH EAX
CALL 0x00015130
MOV byte ptr [EDI + EBP*0x1],0x0
MOV EAX,EDI
CALL 0x0003a670
MOV EBP,dword ptr [ESI + 0x8]
ADD ESP,0x10
TEST EBP,EBP
JZ 0x00088f50
MOV EAX,dword ptr [ESP + 0xc]
SUB ESP,0x8
MOV EDX,0x20
PUSH 0x0
PUSH EDI
MOV ECX,dword ptr [EBX + EAX*0x4 + 0xffffefd8]
MOV EAX,ESI
CALL 0x00088da0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00088f5d
SUB ESP,0xc
XOR EDX,EDX
MOV EAX,EBP
PUSH 0x0
MOV ECX,dword ptr [ESP + 0x1c]
CALL 0x00073150
MOV ECX,EDI
MOV dword ptr [ESP],0xfffffff9
MOV EDX,EAX
MOV EAX,EBP
CALL 0x00062750
ADD ESP,0x10
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
ADD ESP,0x1c
XOR EAX,EAX
POP EBX
POP ESI
POP EDI
POP EBP
JMP 0x0003a670
MOV EAX,ESI
CALL 0x00073350
MOV EBP,EAX
TEST EAX,EAX
JNZ 0x00088ee7
MOV EAX,dword ptr [ESI]
ADD ESP,0x1c
MOV EDX,EDI
POP EBX
POP ESI
POP EDI
POP EBP
JMP 0x00044090
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_00088e70(int *param_1,undefined4 param_2,undefined4 *param_3)\n\n{\n  void *__src;\n  size_t __n;\n  void *__dest;\n  int iVar1;\n  \n  if (param_3 != (undefined4 *)0x0) {\n    __src = (void *)*param_3;\n    if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }\n    __n = param_3[1];\n    __dest = (void *)FUN_00055c10();\n    if (__dest == (void *)0x0) goto LAB_00088f40;\n    memcpy(__dest,__src,__n);\n    *(undefined1 *)((int)__dest + __n) = 0;\n    FUN_0003a670();\n    if (param_1[2] == 0) {\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }\n    iVar1 = FUN_00088da0(__dest,0);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }\n    FUN_00073150(0);\n    FUN_00062750(0xfffffff9);\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_00088e70(int *param_1,undefined4 param_2,undefined4 *param_3)\n\n{\n  void *__src;\n  size_t __n;\n  void *__dest;\n  int iVar1;\n  \n  if (param_3 != (undefined4 *)0x0) {\n    __src = (void *)*param_3;\n    if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }\n    __n = param_3[1];\n    __dest = (void *)FUN_00055c10();\n    if (__dest == (void *)0x0) goto LAB_00088f40;\n    memcpy(__dest,__src,__n);\n    *(undefined1 *)((int)__dest + __n) = 0;\n    FUN_0003a670();\n    if (param_1[2] == 0) {\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }\n    iVar1 = FUN_00088da0(__dest,0);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }\n    FUN_00073150(0);\n    FUN_00062750(0xfffffff9);\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00088e70(int *param_1,undefined4 param_2,undefined4 *param_3)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  void *__src;\n  size_t __n;\n  void *__dest;\n  int iVar1;\n  \n  if (param_3 != (undefined4 *)0x0) {\n    __src = (void *)*param_3;\n    if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }\n    __n = param_3[1];\n    __dest = (void *)FUN_00055c10();\n    if (__dest == (void *)0x0) goto LAB_00088f40;\n    memcpy(__dest,__src,__n);\n    *(undefined1 *)((int)__dest + __n) = 0;\n    FUN_0003a670();\n    if (param_1[2] == 0) {\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }\n    iVar1 = FUN_00088da0(__dest,0);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }\n    FUN_00073150(0);\n    FUN_00062750(0xfffffff9);\n  }\n  return;\n}" { (declaration "void *__src;" primitive_type (pointer_declarator "*__src" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (param_3 != (undefined4 *)0x0) {\n    __src = (void *)*param_3;\n    if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }\n    __n = param_3[1];\n    __dest = (void *)FUN_00055c10();\n    if (__dest == (void *)0x0) goto LAB_00088f40;\n    memcpy(__dest,__src,__n);\n    *(undefined1 *)((int)__dest + __n) = 0;\n    FUN_0003a670();\n    if (param_1[2] == 0) {\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }\n    iVar1 = FUN_00088da0(__dest,0);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }\n    FUN_00073150(0);\n    FUN_00062750(0xfffffff9);\n  }" if (parenthesized_expression "(param_3 != (undefined4 *)0x0)" ( (binary_expression "param_3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    __src = (void *)*param_3;\n    if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }\n    __n = param_3[1];\n    __dest = (void *)FUN_00055c10();\n    if (__dest == (void *)0x0) goto LAB_00088f40;\n    memcpy(__dest,__src,__n);\n    *(undefined1 *)((int)__dest + __n) = 0;\n    FUN_0003a670();\n    if (param_1[2] == 0) {\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }\n    iVar1 = FUN_00088da0(__dest,0);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }\n    FUN_00073150(0);\n    FUN_00062750(0xfffffff9);\n  }" { (expression_statement "__src = (void *)*param_3;" (assignment_expression "__src = (void *)*param_3" identifier = (cast_expression "(void *)*param_3" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (if_statement "if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }" if (parenthesized_expression "((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0'))" ( (binary_expression "(__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')" (parenthesized_expression "(__src == (void *)0x0)" ( (binary_expression "__src == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*(char *)(*param_1 + 0x4d) != '\0')" ( (binary_expression "*(char *)(*param_1 + 0x4d) != '\0'" (pointer_expression "*(char *)(*param_1 + 0x4d)" * (cast_expression "(char *)(*param_1 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x4d)" ( (binary_expression "*param_1 + 0x4d" (pointer_expression "*param_1" * identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }" { (labeled_statement "LAB_00088f40:\n      FUN_0003a670();" statement_identifier : (expression_statement "FUN_0003a670();" (call_expression "FUN_0003a670()" identifier (argument_list "()" ( ))) ;)) (return_statement "return;" return ;) })) (expression_statement "__n = param_3[1];" (assignment_expression "__n = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "__dest = (void *)FUN_00055c10();" (assignment_expression "__dest = (void *)FUN_00055c10()" identifier = (cast_expression "(void *)FUN_00055c10()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00055c10()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (__dest == (void *)0x0) goto LAB_00088f40;" if (parenthesized_expression "(__dest == (void *)0x0)" ( (binary_expression "__dest == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00088f40;" goto statement_identifier ;)) (expression_statement "memcpy(__dest,__src,__n);" (call_expression "memcpy(__dest,__src,__n)" identifier (argument_list "(__dest,__src,__n)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(undefined1 *)((int)__dest + __n) = 0;" (assignment_expression "*(undefined1 *)((int)__dest + __n) = 0" (pointer_expression "*(undefined1 *)((int)__dest + __n)" * (cast_expression "(undefined1 *)((int)__dest + __n)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__dest + __n)" ( (binary_expression "(int)__dest + __n" (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "FUN_0003a670();" (call_expression "FUN_0003a670()" identifier (argument_list "()" ( ))) ;) (if_statement "if (param_1[2] == 0) {\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }" if (parenthesized_expression "(param_1[2] == 0)" ( (binary_expression "param_1[2] == 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }" { (expression_statement "iVar1 = FUN_00073350();" (assignment_expression "iVar1 = FUN_00073350()" identifier = (call_expression "FUN_00073350()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) goto LAB_00088f5d;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00088f5d;" goto statement_identifier ;)) })) (expression_statement "iVar1 = FUN_00088da0(__dest,0);" (assignment_expression "iVar1 = FUN_00088da0(__dest,0)" identifier = (call_expression "FUN_00088da0(__dest,0)" identifier (argument_list "(__dest,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }" { (labeled_statement "LAB_00088f5d:\n      FUN_00044090();" statement_identifier : (expression_statement "FUN_00044090();" (call_expression "FUN_00044090()" identifier (argument_list "()" ( ))) ;)) (return_statement "return;" return ;) })) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "FUN_00062750(0xfffffff9);" (call_expression "FUN_00062750(0xfffffff9)" identifier (argument_list "(0xfffffff9)" ( number_literal ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 sqlite3Savepoint(Parse *pParse,int op,Token *pName)\n\n{\n  char *__src;\n  char *__n;\n  Parse *pParse_00;\n  int iVar1;\n  Vdbe *p;\n  int p3;\n  char *zArg1;\n  char *zArg2;\n  char *in_stack_ffffffd4;\n  undefined4 in_stack_ffffffd8;\n  \n  if (pName != (Token *)0x0) {\n    __src = pName->z;\n    if ((__src == (char *)0x0) || (pParse->db->mallocFailed != '\0')) {\nLAB_00088f40:\n      sqlite3Dequote((char *)0x0);\n      return;\n    }\n    __n = (char *)pName->n;\n    zArg2 = (char *)0x88ebe;\n    pParse_00 = (Parse *)dbMallocRawFinish(pParse->db,CONCAT44(in_stack_ffffffd8,in_stack_ffffffd4))\n    ;\n    if (pParse_00 == (Parse *)0x0) goto LAB_00088f40;\n    zArg1 = __n;\n    memcpy(pParse_00,__src,(size_t)__n);\n    __n[(int)&pParse_00->db] = '\0';\n    sqlite3Dequote((char *)pParse_00);\n    p = pParse->pVdbe;\n    if (p == (Vdbe *)0x0) {\n      zArg2 = (char *)0x88f57;\n      p = sqlite3GetVdbe(pParse);\n      if (p == (Vdbe *)0x0) goto LAB_00088f5d;\n    }\n    p3 = 0;\n    iVar1 = sqlite3AuthCheck(pParse_00,0,zArg1,zArg2,in_stack_ffffffd4);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      sqlite3DbFreeNN(pParse->db,pParse_00);\n      return;\n    }\n    iVar1 = sqlite3VdbeAddOp3(p,0,op,0,p3);\n    sqlite3VdbeChangeP4(p,iVar1,(char *)pParse_00,-7);\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 sqlite3Savepoint(Parse *pParse,int op,Token *pName)\n\n{\n  char *__src;\n  char *__n;\n  Parse *pParse_00;\n  int iVar1;\n  Vdbe *p;\n  int p3;\n  char *zArg1;\n  char *zArg2;\n  char *in_stack_ffffffd4;\n  undefined4 in_stack_ffffffd8;\n  \n  if (pName != (Token *)0x0) {\n    __src = pName->z;\n    if ((__src == (char *)0x0) || (pParse->db->mallocFailed != '\0')) {\nLAB_00088f40:\n      sqlite3Dequote((char *)0x0);\n      return;\n    }\n    __n = (char *)pName->n;\n    zArg2 = (char *)0x88ebe;\n    pParse_00 = (Parse *)dbMallocRawFinish(pParse->db,CONCAT44(in_stack_ffffffd8,in_stack_ffffffd4))\n    ;\n    if (pParse_00 == (Parse *)0x0) goto LAB_00088f40;\n    zArg1 = __n;\n    memcpy(pParse_00,__src,(size_t)__n);\n    __n[(int)&pParse_00->db] = '\0';\n    sqlite3Dequote((char *)pParse_00);\n    p = pParse->pVdbe;\n    if (p == (Vdbe *)0x0) {\n      zArg2 = (char *)0x88f57;\n      p = sqlite3GetVdbe(pParse);\n      if (p == (Vdbe *)0x0) goto LAB_00088f5d;\n    }\n    p3 = 0;\n    iVar1 = sqlite3AuthCheck(pParse_00,0,zArg1,zArg2,in_stack_ffffffd4);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      sqlite3DbFreeNN(pParse->db,pParse_00);\n      return;\n    }\n    iVar1 = sqlite3VdbeAddOp3(p,0,op,0,p3);\n    sqlite3VdbeChangeP4(p,iVar1,(char *)pParse_00,-7);\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "sqlite3Savepoint(Parse *pParse,int op,Token *pName)" identifier (parameter_list "(Parse *pParse,int op,Token *pName)" ( (parameter_declaration "Parse *pParse" type_identifier (pointer_declarator "*pParse" * identifier)) , (parameter_declaration "int op" primitive_type identifier) , (parameter_declaration "Token *pName" type_identifier (pointer_declarator "*pName" * identifier)) ))) (compound_statement "{\n  char *__src;\n  char *__n;\n  Parse *pParse_00;\n  int iVar1;\n  Vdbe *p;\n  int p3;\n  char *zArg1;\n  char *zArg2;\n  char *in_stack_ffffffd4;\n  undefined4 in_stack_ffffffd8;\n  \n  if (pName != (Token *)0x0) {\n    __src = pName->z;\n    if ((__src == (char *)0x0) || (pParse->db->mallocFailed != '\0')) {\nLAB_00088f40:\n      sqlite3Dequote((char *)0x0);\n      return;\n    }\n    __n = (char *)pName->n;\n    zArg2 = (char *)0x88ebe;\n    pParse_00 = (Parse *)dbMallocRawFinish(pParse->db,CONCAT44(in_stack_ffffffd8,in_stack_ffffffd4))\n    ;\n    if (pParse_00 == (Parse *)0x0) goto LAB_00088f40;\n    zArg1 = __n;\n    memcpy(pParse_00,__src,(size_t)__n);\n    __n[(int)&pParse_00->db] = '\0';\n    sqlite3Dequote((char *)pParse_00);\n    p = pParse->pVdbe;\n    if (p == (Vdbe *)0x0) {\n      zArg2 = (char *)0x88f57;\n      p = sqlite3GetVdbe(pParse);\n      if (p == (Vdbe *)0x0) goto LAB_00088f5d;\n    }\n    p3 = 0;\n    iVar1 = sqlite3AuthCheck(pParse_00,0,zArg1,zArg2,in_stack_ffffffd4);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      sqlite3DbFreeNN(pParse->db,pParse_00);\n      return;\n    }\n    iVar1 = sqlite3VdbeAddOp3(p,0,op,0,p3);\n    sqlite3VdbeChangeP4(p,iVar1,(char *)pParse_00,-7);\n  }\n  return;\n}" { (declaration "char *__src;" primitive_type (pointer_declarator "*__src" * identifier) ;) (declaration "char *__n;" primitive_type (pointer_declarator "*__n" * identifier) ;) (declaration "Parse *pParse_00;" type_identifier (pointer_declarator "*pParse_00" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "Vdbe *p;" type_identifier (pointer_declarator "*p" * identifier) ;) (declaration "int p3;" primitive_type identifier ;) (declaration "char *zArg1;" primitive_type (pointer_declarator "*zArg1" * identifier) ;) (declaration "char *zArg2;" primitive_type (pointer_declarator "*zArg2" * identifier) ;) (declaration "char *in_stack_ffffffd4;" primitive_type (pointer_declarator "*in_stack_ffffffd4" * identifier) ;) (declaration "undefined4 in_stack_ffffffd8;" type_identifier identifier ;) (if_statement "if (pName != (Token *)0x0) {\n    __src = pName->z;\n    if ((__src == (char *)0x0) || (pParse->db->mallocFailed != '\0')) {\nLAB_00088f40:\n      sqlite3Dequote((char *)0x0);\n      return;\n    }\n    __n = (char *)pName->n;\n    zArg2 = (char *)0x88ebe;\n    pParse_00 = (Parse *)dbMallocRawFinish(pParse->db,CONCAT44(in_stack_ffffffd8,in_stack_ffffffd4))\n    ;\n    if (pParse_00 == (Parse *)0x0) goto LAB_00088f40;\n    zArg1 = __n;\n    memcpy(pParse_00,__src,(size_t)__n);\n    __n[(int)&pParse_00->db] = '\0';\n    sqlite3Dequote((char *)pParse_00);\n    p = pParse->pVdbe;\n    if (p == (Vdbe *)0x0) {\n      zArg2 = (char *)0x88f57;\n      p = sqlite3GetVdbe(pParse);\n      if (p == (Vdbe *)0x0) goto LAB_00088f5d;\n    }\n    p3 = 0;\n    iVar1 = sqlite3AuthCheck(pParse_00,0,zArg1,zArg2,in_stack_ffffffd4);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      sqlite3DbFreeNN(pParse->db,pParse_00);\n      return;\n    }\n    iVar1 = sqlite3VdbeAddOp3(p,0,op,0,p3);\n    sqlite3VdbeChangeP4(p,iVar1,(char *)pParse_00,-7);\n  }" if (parenthesized_expression "(pName != (Token *)0x0)" ( (binary_expression "pName != (Token *)0x0" identifier != (cast_expression "(Token *)0x0" ( (type_descriptor "Token *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    __src = pName->z;\n    if ((__src == (char *)0x0) || (pParse->db->mallocFailed != '\0')) {\nLAB_00088f40:\n      sqlite3Dequote((char *)0x0);\n      return;\n    }\n    __n = (char *)pName->n;\n    zArg2 = (char *)0x88ebe;\n    pParse_00 = (Parse *)dbMallocRawFinish(pParse->db,CONCAT44(in_stack_ffffffd8,in_stack_ffffffd4))\n    ;\n    if (pParse_00 == (Parse *)0x0) goto LAB_00088f40;\n    zArg1 = __n;\n    memcpy(pParse_00,__src,(size_t)__n);\n    __n[(int)&pParse_00->db] = '\0';\n    sqlite3Dequote((char *)pParse_00);\n    p = pParse->pVdbe;\n    if (p == (Vdbe *)0x0) {\n      zArg2 = (char *)0x88f57;\n      p = sqlite3GetVdbe(pParse);\n      if (p == (Vdbe *)0x0) goto LAB_00088f5d;\n    }\n    p3 = 0;\n    iVar1 = sqlite3AuthCheck(pParse_00,0,zArg1,zArg2,in_stack_ffffffd4);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      sqlite3DbFreeNN(pParse->db,pParse_00);\n      return;\n    }\n    iVar1 = sqlite3VdbeAddOp3(p,0,op,0,p3);\n    sqlite3VdbeChangeP4(p,iVar1,(char *)pParse_00,-7);\n  }" { (expression_statement "__src = pName->z;" (assignment_expression "__src = pName->z" identifier = (field_expression "pName->z" identifier -> field_identifier)) ;) (if_statement "if ((__src == (char *)0x0) || (pParse->db->mallocFailed != '\0')) {\nLAB_00088f40:\n      sqlite3Dequote((char *)0x0);\n      return;\n    }" if (parenthesized_expression "((__src == (char *)0x0) || (pParse->db->mallocFailed != '\0'))" ( (binary_expression "(__src == (char *)0x0) || (pParse->db->mallocFailed != '\0')" (parenthesized_expression "(__src == (char *)0x0)" ( (binary_expression "__src == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pParse->db->mallocFailed != '\0')" ( (binary_expression "pParse->db->mallocFailed != '\0'" (field_expression "pParse->db->mallocFailed" (field_expression "pParse->db" identifier -> field_identifier) -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_00088f40:\n      sqlite3Dequote((char *)0x0);\n      return;\n    }" { (labeled_statement "LAB_00088f40:\n      sqlite3Dequote((char *)0x0);" statement_identifier : (expression_statement "sqlite3Dequote((char *)0x0);" (call_expression "sqlite3Dequote((char *)0x0)" identifier (argument_list "((char *)0x0)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) (return_statement "return;" return ;) })) (expression_statement "__n = (char *)pName->n;" (assignment_expression "__n = (char *)pName->n" identifier = (cast_expression "(char *)pName->n" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pName->n" identifier -> field_identifier))) ;) (expression_statement "zArg2 = (char *)0x88ebe;" (assignment_expression "zArg2 = (char *)0x88ebe" identifier = (cast_expression "(char *)0x88ebe" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pParse_00 = (Parse *)dbMallocRawFinish(pParse->db,CONCAT44(in_stack_ffffffd8,in_stack_ffffffd4))\n    ;" (assignment_expression "pParse_00 = (Parse *)dbMallocRawFinish(pParse->db,CONCAT44(in_stack_ffffffd8,in_stack_ffffffd4))" identifier = (cast_expression "(Parse *)dbMallocRawFinish(pParse->db,CONCAT44(in_stack_ffffffd8,in_stack_ffffffd4))" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dbMallocRawFinish(pParse->db,CONCAT44(in_stack_ffffffd8,in_stack_ffffffd4))" identifier (argument_list "(pParse->db,CONCAT44(in_stack_ffffffd8,in_stack_ffffffd4))" ( (field_expression "pParse->db" identifier -> field_identifier) , (call_expression "CONCAT44(in_stack_ffffffd8,in_stack_ffffffd4)" identifier (argument_list "(in_stack_ffffffd8,in_stack_ffffffd4)" ( identifier , identifier ))) ))))) ;) (if_statement "if (pParse_00 == (Parse *)0x0) goto LAB_00088f40;" if (parenthesized_expression "(pParse_00 == (Parse *)0x0)" ( (binary_expression "pParse_00 == (Parse *)0x0" identifier == (cast_expression "(Parse *)0x0" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00088f40;" goto statement_identifier ;)) (expression_statement "zArg1 = __n;" (assignment_expression "zArg1 = __n" identifier = identifier) ;) (expression_statement "memcpy(pParse_00,__src,(size_t)__n);" (call_expression "memcpy(pParse_00,__src,(size_t)__n)" identifier (argument_list "(pParse_00,__src,(size_t)__n)" ( identifier , identifier , (cast_expression "(size_t)__n" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (expression_statement "__n[(int)&pParse_00->db] = '\0';" (assignment_expression "__n[(int)&pParse_00->db] = '\0'" (subscript_expression "__n[(int)&pParse_00->db]" identifier [ (cast_expression "(int)&pParse_00->db" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pParse_00->db" & (field_expression "pParse_00->db" identifier -> field_identifier))) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "sqlite3Dequote((char *)pParse_00);" (call_expression "sqlite3Dequote((char *)pParse_00)" identifier (argument_list "((char *)pParse_00)" ( (cast_expression "(char *)pParse_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "p = pParse->pVdbe;" (assignment_expression "p = pParse->pVdbe" identifier = (field_expression "pParse->pVdbe" identifier -> field_identifier)) ;) (if_statement "if (p == (Vdbe *)0x0) {\n      zArg2 = (char *)0x88f57;\n      p = sqlite3GetVdbe(pParse);\n      if (p == (Vdbe *)0x0) goto LAB_00088f5d;\n    }" if (parenthesized_expression "(p == (Vdbe *)0x0)" ( (binary_expression "p == (Vdbe *)0x0" identifier == (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      zArg2 = (char *)0x88f57;\n      p = sqlite3GetVdbe(pParse);\n      if (p == (Vdbe *)0x0) goto LAB_00088f5d;\n    }" { (expression_statement "zArg2 = (char *)0x88f57;" (assignment_expression "zArg2 = (char *)0x88f57" identifier = (cast_expression "(char *)0x88f57" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p = sqlite3GetVdbe(pParse);" (assignment_expression "p = sqlite3GetVdbe(pParse)" identifier = (call_expression "sqlite3GetVdbe(pParse)" identifier (argument_list "(pParse)" ( identifier )))) ;) (if_statement "if (p == (Vdbe *)0x0) goto LAB_00088f5d;" if (parenthesized_expression "(p == (Vdbe *)0x0)" ( (binary_expression "p == (Vdbe *)0x0" identifier == (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00088f5d;" goto statement_identifier ;)) })) (expression_statement "p3 = 0;" (assignment_expression "p3 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = sqlite3AuthCheck(pParse_00,0,zArg1,zArg2,in_stack_ffffffd4);" (assignment_expression "iVar1 = sqlite3AuthCheck(pParse_00,0,zArg1,zArg2,in_stack_ffffffd4)" identifier = (call_expression "sqlite3AuthCheck(pParse_00,0,zArg1,zArg2,in_stack_ffffffd4)" identifier (argument_list "(pParse_00,0,zArg1,zArg2,in_stack_ffffffd4)" ( identifier , number_literal , identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 != 0) {\nLAB_00088f5d:\n      sqlite3DbFreeNN(pParse->db,pParse_00);\n      return;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00088f5d:\n      sqlite3DbFreeNN(pParse->db,pParse_00);\n      return;\n    }" { (labeled_statement "LAB_00088f5d:\n      sqlite3DbFreeNN(pParse->db,pParse_00);" statement_identifier : (expression_statement "sqlite3DbFreeNN(pParse->db,pParse_00);" (call_expression "sqlite3DbFreeNN(pParse->db,pParse_00)" identifier (argument_list "(pParse->db,pParse_00)" ( (field_expression "pParse->db" identifier -> field_identifier) , identifier ))) ;)) (return_statement "return;" return ;) })) (expression_statement "iVar1 = sqlite3VdbeAddOp3(p,0,op,0,p3);" (assignment_expression "iVar1 = sqlite3VdbeAddOp3(p,0,op,0,p3)" identifier = (call_expression "sqlite3VdbeAddOp3(p,0,op,0,p3)" identifier (argument_list "(p,0,op,0,p3)" ( identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "sqlite3VdbeChangeP4(p,iVar1,(char *)pParse_00,-7);" (call_expression "sqlite3VdbeChangeP4(p,iVar1,(char *)pParse_00,-7)" identifier (argument_list "(p,iVar1,(char *)pParse_00,-7)" ( identifier , identifier , (cast_expression "(char *)pParse_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_00088e70(int *param_1,undefined4 param_2,undefined4 *param_3)\n\n{\n  void *__src;\n  size_t __n;\n  void *__dest;\n  int iVar1;\n  \n  if (param_3 != (undefined4 *)0x0) {\n    __src = (void *)*param_3;\n    if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }\n    __n = param_3[1];\n    __dest = (void *)FUN_00055c10();\n    if (__dest == (void *)0x0) goto LAB_00088f40;\n    memcpy(__dest,__src,__n);\n    *(undefined1 *)((int)__dest + __n) = 0;\n    FUN_0003a670();\n    if (param_1[2] == 0) {\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }\n    iVar1 = FUN_00088da0(__dest,0);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }\n    FUN_00073150(0);\n    FUN_00062750(0xfffffff9);\n  }\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_00088e70(int *param_1,undefined4 param_2,undefined4 *param_3)\n\n{\n  void *__src;\n  size_t __n;\n  void *__dest;\n  int iVar1;\n  \n  if (param_3 != (undefined4 *)0x0) {\n    __src = (void *)*param_3;\n    if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }\n    __n = param_3[1];\n    __dest = (void *)FUN_00055c10();\n    if (__dest == (void *)0x0) goto LAB_00088f40;\n    memcpy(__dest,__src,__n);\n    *(undefined1 *)((int)__dest + __n) = 0;\n    FUN_0003a670();\n    if (param_1[2] == 0) {\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }\n    iVar1 = FUN_00088da0(__dest,0);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }\n    FUN_00073150(0);\n    FUN_00062750(0xfffffff9);\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00088e70(int *param_1,undefined4 param_2,undefined4 *param_3)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  void *__src;\n  size_t __n;\n  void *__dest;\n  int iVar1;\n  \n  if (param_3 != (undefined4 *)0x0) {\n    __src = (void *)*param_3;\n    if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }\n    __n = param_3[1];\n    __dest = (void *)FUN_00055c10();\n    if (__dest == (void *)0x0) goto LAB_00088f40;\n    memcpy(__dest,__src,__n);\n    *(undefined1 *)((int)__dest + __n) = 0;\n    FUN_0003a670();\n    if (param_1[2] == 0) {\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }\n    iVar1 = FUN_00088da0(__dest,0);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }\n    FUN_00073150(0);\n    FUN_00062750(0xfffffff9);\n  }\n  return;\n}" { (declaration "void *__src;" primitive_type (pointer_declarator "*__src" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (param_3 != (undefined4 *)0x0) {\n    __src = (void *)*param_3;\n    if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }\n    __n = param_3[1];\n    __dest = (void *)FUN_00055c10();\n    if (__dest == (void *)0x0) goto LAB_00088f40;\n    memcpy(__dest,__src,__n);\n    *(undefined1 *)((int)__dest + __n) = 0;\n    FUN_0003a670();\n    if (param_1[2] == 0) {\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }\n    iVar1 = FUN_00088da0(__dest,0);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }\n    FUN_00073150(0);\n    FUN_00062750(0xfffffff9);\n  }" if (parenthesized_expression "(param_3 != (undefined4 *)0x0)" ( (binary_expression "param_3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    __src = (void *)*param_3;\n    if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }\n    __n = param_3[1];\n    __dest = (void *)FUN_00055c10();\n    if (__dest == (void *)0x0) goto LAB_00088f40;\n    memcpy(__dest,__src,__n);\n    *(undefined1 *)((int)__dest + __n) = 0;\n    FUN_0003a670();\n    if (param_1[2] == 0) {\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }\n    iVar1 = FUN_00088da0(__dest,0);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }\n    FUN_00073150(0);\n    FUN_00062750(0xfffffff9);\n  }" { (expression_statement "__src = (void *)*param_3;" (assignment_expression "__src = (void *)*param_3" identifier = (cast_expression "(void *)*param_3" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (if_statement "if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }" if (parenthesized_expression "((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0'))" ( (binary_expression "(__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')" (parenthesized_expression "(__src == (void *)0x0)" ( (binary_expression "__src == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*(char *)(*param_1 + 0x4d) != '\0')" ( (binary_expression "*(char *)(*param_1 + 0x4d) != '\0'" (pointer_expression "*(char *)(*param_1 + 0x4d)" * (cast_expression "(char *)(*param_1 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x4d)" ( (binary_expression "*param_1 + 0x4d" (pointer_expression "*param_1" * identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }" { (labeled_statement "LAB_00088f40:\n      FUN_0003a670();" statement_identifier : (expression_statement "FUN_0003a670();" (call_expression "FUN_0003a670()" identifier (argument_list "()" ( ))) ;)) (return_statement "return;" return ;) })) (expression_statement "__n = param_3[1];" (assignment_expression "__n = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "__dest = (void *)FUN_00055c10();" (assignment_expression "__dest = (void *)FUN_00055c10()" identifier = (cast_expression "(void *)FUN_00055c10()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00055c10()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (__dest == (void *)0x0) goto LAB_00088f40;" if (parenthesized_expression "(__dest == (void *)0x0)" ( (binary_expression "__dest == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00088f40;" goto statement_identifier ;)) (expression_statement "memcpy(__dest,__src,__n);" (call_expression "memcpy(__dest,__src,__n)" identifier (argument_list "(__dest,__src,__n)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(undefined1 *)((int)__dest + __n) = 0;" (assignment_expression "*(undefined1 *)((int)__dest + __n) = 0" (pointer_expression "*(undefined1 *)((int)__dest + __n)" * (cast_expression "(undefined1 *)((int)__dest + __n)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__dest + __n)" ( (binary_expression "(int)__dest + __n" (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "FUN_0003a670();" (call_expression "FUN_0003a670()" identifier (argument_list "()" ( ))) ;) (if_statement "if (param_1[2] == 0) {\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }" if (parenthesized_expression "(param_1[2] == 0)" ( (binary_expression "param_1[2] == 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }" { (expression_statement "iVar1 = FUN_00073350();" (assignment_expression "iVar1 = FUN_00073350()" identifier = (call_expression "FUN_00073350()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) goto LAB_00088f5d;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00088f5d;" goto statement_identifier ;)) })) (expression_statement "iVar1 = FUN_00088da0(__dest,0);" (assignment_expression "iVar1 = FUN_00088da0(__dest,0)" identifier = (call_expression "FUN_00088da0(__dest,0)" identifier (argument_list "(__dest,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }" { (labeled_statement "LAB_00088f5d:\n      FUN_00044090();" statement_identifier : (expression_statement "FUN_00044090();" (call_expression "FUN_00044090()" identifier (argument_list "()" ( ))) ;)) (return_statement "return;" return ;) })) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "FUN_00062750(0xfffffff9);" (call_expression "FUN_00062750(0xfffffff9)" identifier (argument_list "(0xfffffff9)" ( number_literal ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_00088e70(int *param_1,undefined4 param_2,undefined4 *param_3)\n\n{\n  void *__src;\n  size_t __n;\n  void *__dest;\n  int iVar1;\n  \n  if (param_3 != (undefined4 *)0x0) {\n    __src = (void *)*param_3;\n    if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }\n    __n = param_3[1];\n    __dest = (void *)FUN_00055c10();\n    if (__dest == (void *)0x0) goto LAB_00088f40;\n    memcpy(__dest,__src,__n);\n    *(undefined1 *)((int)__dest + __n) = 0;\n    FUN_0003a670();\n    if (param_1[2] == 0) {\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }\n    iVar1 = FUN_00088da0(__dest,0);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }\n    FUN_00073150(0);\n    FUN_00062750(0xfffffff9);\n  }\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00088e70(int *param_1,undefined4 param_2,undefined4 *param_3)" (identifier "FUN_00088e70") (parameter_list "(int *param_1,undefined4 param_2,undefined4 *param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  void *__src;\n  size_t __n;\n  void *__dest;\n  int iVar1;\n  \n  if (param_3 != (undefined4 *)0x0) {\n    __src = (void *)*param_3;\n    if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }\n    __n = param_3[1];\n    __dest = (void *)FUN_00055c10();\n    if (__dest == (void *)0x0) goto LAB_00088f40;\n    memcpy(__dest,__src,__n);\n    *(undefined1 *)((int)__dest + __n) = 0;\n    FUN_0003a670();\n    if (param_1[2] == 0) {\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }\n    iVar1 = FUN_00088da0(__dest,0);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }\n    FUN_00073150(0);\n    FUN_00062750(0xfffffff9);\n  }\n  return;\n}" ({ "{") (declaration "void *__src;" (primitive_type "void") (pointer_declarator "*__src" (* "*") (identifier "__src")) (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "void *__dest;" (primitive_type "void") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (if_statement "if (param_3 != (undefined4 *)0x0) {\n    __src = (void *)*param_3;\n    if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }\n    __n = param_3[1];\n    __dest = (void *)FUN_00055c10();\n    if (__dest == (void *)0x0) goto LAB_00088f40;\n    memcpy(__dest,__src,__n);\n    *(undefined1 *)((int)__dest + __n) = 0;\n    FUN_0003a670();\n    if (param_1[2] == 0) {\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }\n    iVar1 = FUN_00088da0(__dest,0);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }\n    FUN_00073150(0);\n    FUN_00062750(0xfffffff9);\n  }" (if "if") (parenthesized_expression "(param_3 != (undefined4 *)0x0)" (( "(") (binary_expression "param_3 != (undefined4 *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    __src = (void *)*param_3;\n    if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }\n    __n = param_3[1];\n    __dest = (void *)FUN_00055c10();\n    if (__dest == (void *)0x0) goto LAB_00088f40;\n    memcpy(__dest,__src,__n);\n    *(undefined1 *)((int)__dest + __n) = 0;\n    FUN_0003a670();\n    if (param_1[2] == 0) {\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }\n    iVar1 = FUN_00088da0(__dest,0);\n    if (iVar1 != 0) {\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }\n    FUN_00073150(0);\n    FUN_00062750(0xfffffff9);\n  }" ({ "{") (expression_statement "__src = (void *)*param_3;" (assignment_expression "__src = (void *)*param_3" (identifier "__src") (= "=") (cast_expression "(void *)*param_3" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (if_statement "if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }" (if "if") (parenthesized_expression "((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0'))" (( "(") (binary_expression "(__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')" (parenthesized_expression "(__src == (void *)0x0)" (( "(") (binary_expression "__src == (void *)0x0" (identifier "__src") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)(*param_1 + 0x4d) != '\0')" (( "(") (binary_expression "*(char *)(*param_1 + 0x4d) != '\0'" (pointer_expression "*(char *)(*param_1 + 0x4d)" (* "*") (cast_expression "(char *)(*param_1 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x4d)" (( "(") (binary_expression "*param_1 + 0x4d" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x4d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\nLAB_00088f40:\n      FUN_0003a670();\n      return;\n    }" ({ "{") (labeled_statement "LAB_00088f40:\n      FUN_0003a670();" (statement_identifier "LAB_00088f40") (: ":") (expression_statement "FUN_0003a670();" (call_expression "FUN_0003a670()" (identifier "FUN_0003a670") (argument_list "()" (( "(") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "__n = param_3[1];" (assignment_expression "__n = param_3[1]" (identifier "__n") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "__dest = (void *)FUN_00055c10();" (assignment_expression "__dest = (void *)FUN_00055c10()" (identifier "__dest") (= "=") (cast_expression "(void *)FUN_00055c10()" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00055c10()" (identifier "FUN_00055c10") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (__dest == (void *)0x0) goto LAB_00088f40;" (if "if") (parenthesized_expression "(__dest == (void *)0x0)" (( "(") (binary_expression "__dest == (void *)0x0" (identifier "__dest") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00088f40;" (goto "goto") (statement_identifier "LAB_00088f40") (; ";"))) (expression_statement "memcpy(__dest,__src,__n);" (call_expression "memcpy(__dest,__src,__n)" (identifier "memcpy") (argument_list "(__dest,__src,__n)" (( "(") (identifier "__dest") (, ",") (identifier "__src") (, ",") (identifier "__n") () ")"))) (; ";")) (expression_statement "*(undefined1 *)((int)__dest + __n) = 0;" (assignment_expression "*(undefined1 *)((int)__dest + __n) = 0" (pointer_expression "*(undefined1 *)((int)__dest + __n)" (* "*") (cast_expression "(undefined1 *)((int)__dest + __n)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__dest + __n)" (( "(") (binary_expression "(int)__dest + __n" (cast_expression "(int)__dest" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__dest")) (+ "+") (identifier "__n")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0003a670();" (call_expression "FUN_0003a670()" (identifier "FUN_0003a670") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (param_1[2] == 0) {\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }" (if "if") (parenthesized_expression "(param_1[2] == 0)" (( "(") (binary_expression "param_1[2] == 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = FUN_00073350();\n      if (iVar1 == 0) goto LAB_00088f5d;\n    }" ({ "{") (expression_statement "iVar1 = FUN_00073350();" (assignment_expression "iVar1 = FUN_00073350()" (identifier "iVar1") (= "=") (call_expression "FUN_00073350()" (identifier "FUN_00073350") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) goto LAB_00088f5d;" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00088f5d;" (goto "goto") (statement_identifier "LAB_00088f5d") (; ";"))) (} "}"))) (expression_statement "iVar1 = FUN_00088da0(__dest,0);" (assignment_expression "iVar1 = FUN_00088da0(__dest,0)" (identifier "iVar1") (= "=") (call_expression "FUN_00088da0(__dest,0)" (identifier "FUN_00088da0") (argument_list "(__dest,0)" (( "(") (identifier "__dest") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00088f5d:\n      FUN_00044090();\n      return;\n    }" ({ "{") (labeled_statement "LAB_00088f5d:\n      FUN_00044090();" (statement_identifier "LAB_00088f5d") (: ":") (expression_statement "FUN_00044090();" (call_expression "FUN_00044090()" (identifier "FUN_00044090") (argument_list "()" (( "(") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00073150(0);" (call_expression "FUN_00073150(0)" (identifier "FUN_00073150") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_00062750(0xfffffff9);" (call_expression "FUN_00062750(0xfffffff9)" (identifier "FUN_00062750") (argument_list "(0xfffffff9)" (( "(") (number_literal "0xfffffff9") () ")"))) (; ";")) (} "}"))) (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 *pParse,int op,type_2 *var_1)

{
  char *var_2;
  char *__n;
  type_1 *var_6;
  int var_11;
  type_3 *var_8;
  int p3;
  char *zArg1;
  char *zArg2;
  char *in_stack_ffffffd4;
  type_4 in_stack_ffffffd8;
  
  if (var_1 != (type_2 *)0x0) {
    var_2 = var_1->z;
    if ((var_2 == (char *)0x0) || (pParse->db->mallocFailed != '\0')) {
LAB_00088f40:
      var_3((char *)0x0);
      return;
    }
    __n = (char *)var_1->n;
    zArg2 = (char *)0x88ebe;
    var_6 = (type_1 *)var_4(pParse->db,var_5(in_stack_ffffffd8,in_stack_ffffffd4))
    ;
    if (var_6 == (type_1 *)0x0) goto LAB_00088f40;
    zArg1 = __n;
    var_7(var_6,var_2,(size_t)__n);
    __n[(int)&var_6->db] = '\0';
    var_3((char *)var_6);
    var_8 = pParse->pVdbe;
    if (var_8 == (type_3 *)0x0) {
      zArg2 = (char *)0x88f57;
      var_8 = var_9(pParse);
      if (var_8 == (type_3 *)0x0) goto LAB_00088f5d;
    }
    p3 = 0;
    var_11 = var_10(var_6,0,zArg1,zArg2,in_stack_ffffffd4);
    if (var_11 != 0) {
LAB_00088f5d:
      var_12(pParse->db,var_6);
      return;
    }
    var_11 = var_13(var_8,0,op,0,p3);
    var_14(var_8,var_11,(char *)var_6,-7);
  }
  return;
}


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

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

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

{
  void *__src;
  size_t __n;
  void *__dest;
  int iVar1;
  
  if (param_3 != (undefined4 *)0x0) {
    __src = (void *)*param_3;
    if ((__src == (void *)0x0) || (*(char *)(*param_1 + 0x4d) != '\0')) {
LAB_00088f40:
      FUN_0003a670();
      return;
    }
    __n = param_3[1];
    __dest = (void *)FUN_00055c10();
    if (__dest == (void *)0x0) goto LAB_00088f40;
    memcpy(__dest,__src,__n);
    *(undefined1 *)((int)__dest + __n) = 0;
    FUN_0003a670();
    if (param_1[2] == 0) {
      iVar1 = FUN_00073350();
      if (iVar1 == 0) goto LAB_00088f5d;
    }
    iVar1 = FUN_00088da0(__dest,0);
    if (iVar1 != 0) {
LAB_00088f5d:
      FUN_00044090();
      return;
    }
    FUN_00073150(0);
    FUN_00062750(0xfffffff9);
  }
  return;
}

