
/* WARNING: Unknown calling convention */

char * sqlite3_vmprintf(char *zFormat,va_list ap)

{
  int iVar1;
  int iVar2;
  char *pcVar3;
  int in_GS_OFFSET;
  StrAccum acc;
  char zBase [70];
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  iVar2 = sqlite3_initialize();
  pcVar3 = (char *)0x0;
  if (iVar2 == 0) {
    acc.zText = zBase;
    acc.db = (sqlite3 *)0x0;
    acc.nAlloc = 0x46;
    acc.mxAlloc = 1000000000;
    acc.nChar = 0;
    acc.accError = '\0';
    acc.printfFlags = '\0';
    sqlite3_str_vappendf(&acc,zFormat,ap);
    pcVar3 = acc.zText;
    if (((acc.zText != (char *)0x0) && (acc.zText[acc.nChar] = '\0', acc.mxAlloc != 0)) &&
       ((acc._20_2_ & 0x400) == 0)) {
      pcVar3 = strAccumFinishRealloc(&acc);
    }
  }
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return pcVar3;
}



undefined1 * FUN_000a2060(undefined4 param_1,undefined4 param_2)

{
  int iVar1;
  undefined1 *puVar2;
  int in_GS_OFFSET;
  undefined4 local_70;
  undefined1 *local_6c;
  undefined4 local_68;
  int local_64;
  int local_60;
  ushort local_5c;
  undefined1 local_56 [70];
  int local_10;
  
  local_10 = *(int *)(in_GS_OFFSET + 0x14);
  iVar1 = FUN_00067fc0();
  puVar2 = (undefined1 *)0x0;
  if (iVar1 == 0) {
    local_6c = local_56;
    local_70 = 0;
    local_68 = 0x46;
    local_64 = 1000000000;
    local_60 = 0;
    local_5c = 0;
    FUN_00075470(&local_70,param_1,param_2);
    puVar2 = local_6c;
    if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&
       ((local_5c & 0x400) == 0)) {
      puVar2 = (undefined1 *)FUN_00057ab0();
    }
  }
  if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00153870();
  }
  return puVar2;
}


PUSH ESI
PUSH EBX
SUB ESP,0x74
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x6c],EAX
XOR EAX,EAX
MOV EBX,dword ptr [ESP + 0x80]
MOV ESI,dword ptr [ESP + 0x84]
CALL 0x00067fc0
XOR EDX,EDX
TEST EAX,EAX
JNZ 0x000a20ee
LEA EAX,[ESP + 0x26]
XOR EDX,EDX
MOV dword ptr [ESP + 0xc],0x0
SUB ESP,0x4
MOV dword ptr [ESP + 0x14],EAX
MOV dword ptr [ESP + 0x18],0x46
MOV dword ptr [ESP + 0x1c],0x3b9aca00
MOV dword ptr [ESP + 0x20],0x0
MOV word ptr [ESP + 0x24],DX
PUSH ESI
PUSH EBX
LEA EBX,[ESP + 0x18]
PUSH EBX
CALL 0x00075470
MOV EDX,dword ptr [ESP + 0x20]
ADD ESP,0x10
TEST EDX,EDX
JZ 0x000a20ee
MOV EAX,dword ptr [ESP + 0x1c]
MOV byte ptr [EDX + EAX*0x1],0x0
MOV EAX,dword ptr [ESP + 0x18]
TEST EAX,EAX
JZ 0x000a20ea
TEST byte ptr [ESP + 0x21],0x4
JZ 0x000a2108
MOV EDX,dword ptr [ESP + 0x10]
MOV ECX,dword ptr [ESP + 0x6c]
XOR ECX,dword ptr GS:[0x14]
MOV EAX,EDX
JNZ 0x000a2113
ADD ESP,0x74
POP EBX
POP ESI
RET
MOV EAX,EBX
CALL 0x00057ab0
MOV EDX,EAX
JMP 0x000a20ee
CALL 0x00153870
(translation_unit "undefined1 * FUN_000a2060(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  int in_GS_OFFSET;\n  undefined4 local_70;\n  undefined1 *local_6c;\n  undefined4 local_68;\n  int local_64;\n  int local_60;\n  ushort local_5c;\n  undefined1 local_56 [70];\n  int local_10;\n  \n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar1 = FUN_00067fc0();\n  puVar2 = (undefined1 *)0x0;\n  if (iVar1 == 0) {\n    local_6c = local_56;\n    local_70 = 0;\n    local_68 = 0x46;\n    local_64 = 1000000000;\n    local_60 = 0;\n    local_5c = 0;\n    FUN_00075470(&local_70,param_1,param_2);\n    puVar2 = local_6c;\n    if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)) {\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }\n  }\n  if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00153870();\n  }\n  return puVar2;\n}\n\n" (function_definition "undefined1 * FUN_000a2060(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  int in_GS_OFFSET;\n  undefined4 local_70;\n  undefined1 *local_6c;\n  undefined4 local_68;\n  int local_64;\n  int local_60;\n  ushort local_5c;\n  undefined1 local_56 [70];\n  int local_10;\n  \n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar1 = FUN_00067fc0();\n  puVar2 = (undefined1 *)0x0;\n  if (iVar1 == 0) {\n    local_6c = local_56;\n    local_70 = 0;\n    local_68 = 0x46;\n    local_64 = 1000000000;\n    local_60 = 0;\n    local_5c = 0;\n    FUN_00075470(&local_70,param_1,param_2);\n    puVar2 = local_6c;\n    if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)) {\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }\n  }\n  if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00153870();\n  }\n  return puVar2;\n}" type_identifier (pointer_declarator "* FUN_000a2060(undefined4 param_1,undefined4 param_2)" * (function_declarator "FUN_000a2060(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) )))) (compound_statement "{\n  int iVar1;\n  undefined1 *puVar2;\n  int in_GS_OFFSET;\n  undefined4 local_70;\n  undefined1 *local_6c;\n  undefined4 local_68;\n  int local_64;\n  int local_60;\n  ushort local_5c;\n  undefined1 local_56 [70];\n  int local_10;\n  \n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar1 = FUN_00067fc0();\n  puVar2 = (undefined1 *)0x0;\n  if (iVar1 == 0) {\n    local_6c = local_56;\n    local_70 = 0;\n    local_68 = 0x46;\n    local_64 = 1000000000;\n    local_60 = 0;\n    local_5c = 0;\n    FUN_00075470(&local_70,param_1,param_2);\n    puVar2 = local_6c;\n    if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)) {\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }\n  }\n  if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00153870();\n  }\n  return puVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined1 *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "undefined4 local_68;" type_identifier identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "ushort local_5c;" type_identifier identifier ;) (declaration "undefined1 local_56 [70];" type_identifier (array_declarator "local_56 [70]" identifier [ number_literal ]) ;) (declaration "int local_10;" primitive_type identifier ;) (expression_statement "local_10 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_10 = *(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 "iVar1 = FUN_00067fc0();" (assignment_expression "iVar1 = FUN_00067fc0()" identifier = (call_expression "FUN_00067fc0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar2 = (undefined1 *)0x0;" (assignment_expression "puVar2 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar1 == 0) {\n    local_6c = local_56;\n    local_70 = 0;\n    local_68 = 0x46;\n    local_64 = 1000000000;\n    local_60 = 0;\n    local_5c = 0;\n    FUN_00075470(&local_70,param_1,param_2);\n    puVar2 = local_6c;\n    if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)) {\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    local_6c = local_56;\n    local_70 = 0;\n    local_68 = 0x46;\n    local_64 = 1000000000;\n    local_60 = 0;\n    local_5c = 0;\n    FUN_00075470(&local_70,param_1,param_2);\n    puVar2 = local_6c;\n    if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)) {\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }\n  }" { (expression_statement "local_6c = local_56;" (assignment_expression "local_6c = local_56" identifier = identifier) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "local_68 = 0x46;" (assignment_expression "local_68 = 0x46" identifier = number_literal) ;) (expression_statement "local_64 = 1000000000;" (assignment_expression "local_64 = 1000000000" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "FUN_00075470(&local_70,param_1,param_2);" (call_expression "FUN_00075470(&local_70,param_1,param_2)" identifier (argument_list "(&local_70,param_1,param_2)" ( (pointer_expression "&local_70" & identifier) , identifier , identifier ))) ;) (expression_statement "puVar2 = local_6c;" (assignment_expression "puVar2 = local_6c" identifier = identifier) ;) (if_statement "if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)) {\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }" if (parenthesized_expression "(((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0))" ( (binary_expression "((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)" (parenthesized_expression "((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0))" ( (binary_expression "(local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)" (parenthesized_expression "(local_6c != (undefined1 *)0x0)" ( (binary_expression "local_6c != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_6c[local_60] = 0, local_64 != 0)" ( (comma_expression "local_6c[local_60] = 0, local_64 != 0" (assignment_expression "local_6c[local_60] = 0" (subscript_expression "local_6c[local_60]" identifier [ identifier ]) = number_literal) , (binary_expression "local_64 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "((local_5c & 0x400) == 0)" ( (binary_expression "(local_5c & 0x400) == 0" (parenthesized_expression "(local_5c & 0x400)" ( (binary_expression "local_5c & 0x400" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }" { (expression_statement "puVar2 = (undefined1 *)FUN_00057ab0();" (assignment_expression "puVar2 = (undefined1 *)FUN_00057ab0()" identifier = (cast_expression "(undefined1 *)FUN_00057ab0()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00057ab0()" identifier (argument_list "()" ( ))))) ;) })) })) (if_statement "if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00153870();\n  }" if (parenthesized_expression "(local_10 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_10 != *(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_00153870();\n  }" { comment (expression_statement "FUN_00153870();" (call_expression "FUN_00153870()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return puVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nchar * sqlite3_vmprintf(char *zFormat,va_list ap)\n\n{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  int in_GS_OFFSET;\n  StrAccum acc;\n  char zBase [70];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = sqlite3_initialize();\n  pcVar3 = (char *)0x0;\n  if (iVar2 == 0) {\n    acc.zText = zBase;\n    acc.db = (sqlite3 *)0x0;\n    acc.nAlloc = 0x46;\n    acc.mxAlloc = 1000000000;\n    acc.nChar = 0;\n    acc.accError = '\0';\n    acc.printfFlags = '\0';\n    sqlite3_str_vappendf(&acc,zFormat,ap);\n    pcVar3 = acc.zText;\n    if (((acc.zText != (char *)0x0) && (acc.zText[acc.nChar] = '\0', acc.mxAlloc != 0)) &&\n       ((acc._20_2_ & 0x400) == 0)) {\n      pcVar3 = strAccumFinishRealloc(&acc);\n    }\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return pcVar3;\n}\n\n" comment (function_definition "char * sqlite3_vmprintf(char *zFormat,va_list ap)\n\n{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  int in_GS_OFFSET;\n  StrAccum acc;\n  char zBase [70];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = sqlite3_initialize();\n  pcVar3 = (char *)0x0;\n  if (iVar2 == 0) {\n    acc.zText = zBase;\n    acc.db = (sqlite3 *)0x0;\n    acc.nAlloc = 0x46;\n    acc.mxAlloc = 1000000000;\n    acc.nChar = 0;\n    acc.accError = '\0';\n    acc.printfFlags = '\0';\n    sqlite3_str_vappendf(&acc,zFormat,ap);\n    pcVar3 = acc.zText;\n    if (((acc.zText != (char *)0x0) && (acc.zText[acc.nChar] = '\0', acc.mxAlloc != 0)) &&\n       ((acc._20_2_ & 0x400) == 0)) {\n      pcVar3 = strAccumFinishRealloc(&acc);\n    }\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return pcVar3;\n}" primitive_type (pointer_declarator "* sqlite3_vmprintf(char *zFormat,va_list ap)" * (function_declarator "sqlite3_vmprintf(char *zFormat,va_list ap)" identifier (parameter_list "(char *zFormat,va_list ap)" ( (parameter_declaration "char *zFormat" primitive_type (pointer_declarator "*zFormat" * identifier)) , (parameter_declaration "va_list ap" type_identifier identifier) )))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  int in_GS_OFFSET;\n  StrAccum acc;\n  char zBase [70];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = sqlite3_initialize();\n  pcVar3 = (char *)0x0;\n  if (iVar2 == 0) {\n    acc.zText = zBase;\n    acc.db = (sqlite3 *)0x0;\n    acc.nAlloc = 0x46;\n    acc.mxAlloc = 1000000000;\n    acc.nChar = 0;\n    acc.accError = '\0';\n    acc.printfFlags = '\0';\n    sqlite3_str_vappendf(&acc,zFormat,ap);\n    pcVar3 = acc.zText;\n    if (((acc.zText != (char *)0x0) && (acc.zText[acc.nChar] = '\0', acc.mxAlloc != 0)) &&\n       ((acc._20_2_ & 0x400) == 0)) {\n      pcVar3 = strAccumFinishRealloc(&acc);\n    }\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return pcVar3;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "StrAccum acc;" type_identifier identifier ;) (declaration "char zBase [70];" primitive_type (array_declarator "zBase [70]" 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_initialize();" (assignment_expression "iVar2 = sqlite3_initialize()" identifier = (call_expression "sqlite3_initialize()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar2 == 0) {\n    acc.zText = zBase;\n    acc.db = (sqlite3 *)0x0;\n    acc.nAlloc = 0x46;\n    acc.mxAlloc = 1000000000;\n    acc.nChar = 0;\n    acc.accError = '\0';\n    acc.printfFlags = '\0';\n    sqlite3_str_vappendf(&acc,zFormat,ap);\n    pcVar3 = acc.zText;\n    if (((acc.zText != (char *)0x0) && (acc.zText[acc.nChar] = '\0', acc.mxAlloc != 0)) &&\n       ((acc._20_2_ & 0x400) == 0)) {\n      pcVar3 = strAccumFinishRealloc(&acc);\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    acc.zText = zBase;\n    acc.db = (sqlite3 *)0x0;\n    acc.nAlloc = 0x46;\n    acc.mxAlloc = 1000000000;\n    acc.nChar = 0;\n    acc.accError = '\0';\n    acc.printfFlags = '\0';\n    sqlite3_str_vappendf(&acc,zFormat,ap);\n    pcVar3 = acc.zText;\n    if (((acc.zText != (char *)0x0) && (acc.zText[acc.nChar] = '\0', acc.mxAlloc != 0)) &&\n       ((acc._20_2_ & 0x400) == 0)) {\n      pcVar3 = strAccumFinishRealloc(&acc);\n    }\n  }" { (expression_statement "acc.zText = zBase;" (assignment_expression "acc.zText = zBase" (field_expression "acc.zText" identifier . field_identifier) = identifier) ;) (expression_statement "acc.db = (sqlite3 *)0x0;" (assignment_expression "acc.db = (sqlite3 *)0x0" (field_expression "acc.db" identifier . field_identifier) = (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "acc.nAlloc = 0x46;" (assignment_expression "acc.nAlloc = 0x46" (field_expression "acc.nAlloc" identifier . field_identifier) = number_literal) ;) (expression_statement "acc.mxAlloc = 1000000000;" (assignment_expression "acc.mxAlloc = 1000000000" (field_expression "acc.mxAlloc" identifier . field_identifier) = number_literal) ;) (expression_statement "acc.nChar = 0;" (assignment_expression "acc.nChar = 0" (field_expression "acc.nChar" identifier . field_identifier) = number_literal) ;) (expression_statement "acc.accError = '\0';" (assignment_expression "acc.accError = '\0'" (field_expression "acc.accError" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "acc.printfFlags = '\0';" (assignment_expression "acc.printfFlags = '\0'" (field_expression "acc.printfFlags" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "sqlite3_str_vappendf(&acc,zFormat,ap);" (call_expression "sqlite3_str_vappendf(&acc,zFormat,ap)" identifier (argument_list "(&acc,zFormat,ap)" ( (pointer_expression "&acc" & identifier) , identifier , identifier ))) ;) (expression_statement "pcVar3 = acc.zText;" (assignment_expression "pcVar3 = acc.zText" identifier = (field_expression "acc.zText" identifier . field_identifier)) ;) (if_statement "if (((acc.zText != (char *)0x0) && (acc.zText[acc.nChar] = '\0', acc.mxAlloc != 0)) &&\n       ((acc._20_2_ & 0x400) == 0)) {\n      pcVar3 = strAccumFinishRealloc(&acc);\n    }" if (parenthesized_expression "(((acc.zText != (char *)0x0) && (acc.zText[acc.nChar] = '\0', acc.mxAlloc != 0)) &&\n       ((acc._20_2_ & 0x400) == 0))" ( (binary_expression "((acc.zText != (char *)0x0) && (acc.zText[acc.nChar] = '\0', acc.mxAlloc != 0)) &&\n       ((acc._20_2_ & 0x400) == 0)" (parenthesized_expression "((acc.zText != (char *)0x0) && (acc.zText[acc.nChar] = '\0', acc.mxAlloc != 0))" ( (binary_expression "(acc.zText != (char *)0x0) && (acc.zText[acc.nChar] = '\0', acc.mxAlloc != 0)" (parenthesized_expression "(acc.zText != (char *)0x0)" ( (binary_expression "acc.zText != (char *)0x0" (field_expression "acc.zText" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(acc.zText[acc.nChar] = '\0', acc.mxAlloc != 0)" ( (comma_expression "acc.zText[acc.nChar] = '\0', acc.mxAlloc != 0" (assignment_expression "acc.zText[acc.nChar] = '\0'" (subscript_expression "acc.zText[acc.nChar]" (field_expression "acc.zText" identifier . field_identifier) [ (field_expression "acc.nChar" identifier . field_identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) , (binary_expression "acc.mxAlloc != 0" (field_expression "acc.mxAlloc" identifier . field_identifier) != number_literal)) ))) )) && (parenthesized_expression "((acc._20_2_ & 0x400) == 0)" ( (binary_expression "(acc._20_2_ & 0x400) == 0" (parenthesized_expression "(acc._20_2_ & 0x400)" ( (binary_expression "acc._20_2_ & 0x400" (field_expression "acc._20_2_" identifier . field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      pcVar3 = strAccumFinishRealloc(&acc);\n    }" { (expression_statement "pcVar3 = strAccumFinishRealloc(&acc);" (assignment_expression "pcVar3 = strAccumFinishRealloc(&acc)" identifier = (call_expression "strAccumFinishRealloc(&acc)" identifier (argument_list "(&acc)" ( (pointer_expression "&acc" & 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 pcVar3;" return identifier ;) })))
(translation_unit "undefined1 * FUN_000a2060(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  int in_GS_OFFSET;\n  undefined4 local_70;\n  undefined1 *local_6c;\n  undefined4 local_68;\n  int local_64;\n  int local_60;\n  ushort local_5c;\n  undefined1 local_56 [70];\n  int local_10;\n  \n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar1 = FUN_00067fc0();\n  puVar2 = (undefined1 *)0x0;\n  if (iVar1 == 0) {\n    local_6c = local_56;\n    local_70 = 0;\n    local_68 = 0x46;\n    local_64 = 1000000000;\n    local_60 = 0;\n    local_5c = 0;\n    FUN_00075470(&local_70,param_1,param_2);\n    puVar2 = local_6c;\n    if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)) {\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }\n  }\n  if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }\n  return puVar2;\n}\n\n" (function_definition "undefined1 * FUN_000a2060(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  int in_GS_OFFSET;\n  undefined4 local_70;\n  undefined1 *local_6c;\n  undefined4 local_68;\n  int local_64;\n  int local_60;\n  ushort local_5c;\n  undefined1 local_56 [70];\n  int local_10;\n  \n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar1 = FUN_00067fc0();\n  puVar2 = (undefined1 *)0x0;\n  if (iVar1 == 0) {\n    local_6c = local_56;\n    local_70 = 0;\n    local_68 = 0x46;\n    local_64 = 1000000000;\n    local_60 = 0;\n    local_5c = 0;\n    FUN_00075470(&local_70,param_1,param_2);\n    puVar2 = local_6c;\n    if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)) {\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }\n  }\n  if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }\n  return puVar2;\n}" type_identifier (pointer_declarator "* FUN_000a2060(undefined4 param_1,undefined4 param_2)" * (function_declarator "FUN_000a2060(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) )))) (compound_statement "{\n  int iVar1;\n  undefined1 *puVar2;\n  int in_GS_OFFSET;\n  undefined4 local_70;\n  undefined1 *local_6c;\n  undefined4 local_68;\n  int local_64;\n  int local_60;\n  ushort local_5c;\n  undefined1 local_56 [70];\n  int local_10;\n  \n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar1 = FUN_00067fc0();\n  puVar2 = (undefined1 *)0x0;\n  if (iVar1 == 0) {\n    local_6c = local_56;\n    local_70 = 0;\n    local_68 = 0x46;\n    local_64 = 1000000000;\n    local_60 = 0;\n    local_5c = 0;\n    FUN_00075470(&local_70,param_1,param_2);\n    puVar2 = local_6c;\n    if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)) {\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }\n  }\n  if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }\n  return puVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined1 *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "undefined4 local_68;" type_identifier identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "ushort local_5c;" type_identifier identifier ;) (declaration "undefined1 local_56 [70];" type_identifier (array_declarator "local_56 [70]" identifier [ number_literal ]) ;) (declaration "int local_10;" primitive_type identifier ;) (expression_statement "local_10 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_10 = *(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 "iVar1 = FUN_00067fc0();" (assignment_expression "iVar1 = FUN_00067fc0()" identifier = (call_expression "FUN_00067fc0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar2 = (undefined1 *)0x0;" (assignment_expression "puVar2 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar1 == 0) {\n    local_6c = local_56;\n    local_70 = 0;\n    local_68 = 0x46;\n    local_64 = 1000000000;\n    local_60 = 0;\n    local_5c = 0;\n    FUN_00075470(&local_70,param_1,param_2);\n    puVar2 = local_6c;\n    if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)) {\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    local_6c = local_56;\n    local_70 = 0;\n    local_68 = 0x46;\n    local_64 = 1000000000;\n    local_60 = 0;\n    local_5c = 0;\n    FUN_00075470(&local_70,param_1,param_2);\n    puVar2 = local_6c;\n    if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)) {\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }\n  }" { (expression_statement "local_6c = local_56;" (assignment_expression "local_6c = local_56" identifier = identifier) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "local_68 = 0x46;" (assignment_expression "local_68 = 0x46" identifier = number_literal) ;) (expression_statement "local_64 = 1000000000;" (assignment_expression "local_64 = 1000000000" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "FUN_00075470(&local_70,param_1,param_2);" (call_expression "FUN_00075470(&local_70,param_1,param_2)" identifier (argument_list "(&local_70,param_1,param_2)" ( (pointer_expression "&local_70" & identifier) , identifier , identifier ))) ;) (expression_statement "puVar2 = local_6c;" (assignment_expression "puVar2 = local_6c" identifier = identifier) ;) (if_statement "if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)) {\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }" if (parenthesized_expression "(((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0))" ( (binary_expression "((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)" (parenthesized_expression "((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0))" ( (binary_expression "(local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)" (parenthesized_expression "(local_6c != (undefined1 *)0x0)" ( (binary_expression "local_6c != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_6c[local_60] = 0, local_64 != 0)" ( (comma_expression "local_6c[local_60] = 0, local_64 != 0" (assignment_expression "local_6c[local_60] = 0" (subscript_expression "local_6c[local_60]" identifier [ identifier ]) = number_literal) , (binary_expression "local_64 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "((local_5c & 0x400) == 0)" ( (binary_expression "(local_5c & 0x400) == 0" (parenthesized_expression "(local_5c & 0x400)" ( (binary_expression "local_5c & 0x400" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }" { (expression_statement "puVar2 = (undefined1 *)FUN_00057ab0();" (assignment_expression "puVar2 = (undefined1 *)FUN_00057ab0()" identifier = (cast_expression "(undefined1 *)FUN_00057ab0()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00057ab0()" identifier (argument_list "()" ( ))))) ;) })) })) (if_statement "if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }" if (parenthesized_expression "(local_10 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_10 != *(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_00153870();\n  }" { (expression_statement "FUN_00153870();" (call_expression "FUN_00153870()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return puVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) (compound_statement { (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 != (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 ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "undefined1 * FUN_000a2060(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  int in_GS_OFFSET;\n  undefined4 local_70;\n  undefined1 *local_6c;\n  undefined4 local_68;\n  int local_64;\n  int local_60;\n  ushort local_5c;\n  undefined1 local_56 [70];\n  int local_10;\n  \n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar1 = FUN_00067fc0();\n  puVar2 = (undefined1 *)0x0;\n  if (iVar1 == 0) {\n    local_6c = local_56;\n    local_70 = 0;\n    local_68 = 0x46;\n    local_64 = 1000000000;\n    local_60 = 0;\n    local_5c = 0;\n    FUN_00075470(&local_70,param_1,param_2);\n    puVar2 = local_6c;\n    if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)) {\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }\n  }\n  if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }\n  return puVar2;\n}" (type_identifier "undefined1") (pointer_declarator "* FUN_000a2060(undefined4 param_1,undefined4 param_2)" (* "*") (function_declarator "FUN_000a2060(undefined4 param_1,undefined4 param_2)" (identifier "FUN_000a2060") (parameter_list "(undefined4 param_1,undefined4 param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")")))) (compound_statement "{\n  int iVar1;\n  undefined1 *puVar2;\n  int in_GS_OFFSET;\n  undefined4 local_70;\n  undefined1 *local_6c;\n  undefined4 local_68;\n  int local_64;\n  int local_60;\n  ushort local_5c;\n  undefined1 local_56 [70];\n  int local_10;\n  \n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar1 = FUN_00067fc0();\n  puVar2 = (undefined1 *)0x0;\n  if (iVar1 == 0) {\n    local_6c = local_56;\n    local_70 = 0;\n    local_68 = 0x46;\n    local_64 = 1000000000;\n    local_60 = 0;\n    local_5c = 0;\n    FUN_00075470(&local_70,param_1,param_2);\n    puVar2 = local_6c;\n    if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)) {\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }\n  }\n  if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }\n  return puVar2;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined1 *puVar2;" (type_identifier "undefined1") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined4 local_70;" (type_identifier "undefined4") (identifier "local_70") (; ";")) (declaration "undefined1 *local_6c;" (type_identifier "undefined1") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "undefined4 local_68;" (type_identifier "undefined4") (identifier "local_68") (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "ushort local_5c;" (type_identifier "ushort") (identifier "local_5c") (; ";")) (declaration "undefined1 local_56 [70];" (type_identifier "undefined1") (array_declarator "local_56 [70]" (identifier "local_56") ([ "[") (number_literal "70") (] "]")) (; ";")) (declaration "int local_10;" (primitive_type "int") (identifier "local_10") (; ";")) (expression_statement "local_10 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_10 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_10") (= "=") (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 "iVar1 = FUN_00067fc0();" (assignment_expression "iVar1 = FUN_00067fc0()" (identifier "iVar1") (= "=") (call_expression "FUN_00067fc0()" (identifier "FUN_00067fc0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar2 = (undefined1 *)0x0;" (assignment_expression "puVar2 = (undefined1 *)0x0" (identifier "puVar2") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar1 == 0) {\n    local_6c = local_56;\n    local_70 = 0;\n    local_68 = 0x46;\n    local_64 = 1000000000;\n    local_60 = 0;\n    local_5c = 0;\n    FUN_00075470(&local_70,param_1,param_2);\n    puVar2 = local_6c;\n    if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)) {\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_6c = local_56;\n    local_70 = 0;\n    local_68 = 0x46;\n    local_64 = 1000000000;\n    local_60 = 0;\n    local_5c = 0;\n    FUN_00075470(&local_70,param_1,param_2);\n    puVar2 = local_6c;\n    if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)) {\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }\n  }" ({ "{") (expression_statement "local_6c = local_56;" (assignment_expression "local_6c = local_56" (identifier "local_6c") (= "=") (identifier "local_56")) (; ";")) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" (identifier "local_70") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_68 = 0x46;" (assignment_expression "local_68 = 0x46" (identifier "local_68") (= "=") (number_literal "0x46")) (; ";")) (expression_statement "local_64 = 1000000000;" (assignment_expression "local_64 = 1000000000" (identifier "local_64") (= "=") (number_literal "1000000000")) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00075470(&local_70,param_1,param_2);" (call_expression "FUN_00075470(&local_70,param_1,param_2)" (identifier "FUN_00075470") (argument_list "(&local_70,param_1,param_2)" (( "(") (pointer_expression "&local_70" (& "&") (identifier "local_70")) (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "puVar2 = local_6c;" (assignment_expression "puVar2 = local_6c" (identifier "puVar2") (= "=") (identifier "local_6c")) (; ";")) (if_statement "if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)) {\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }" (if "if") (parenthesized_expression "(((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0))" (( "(") (binary_expression "((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&\n       ((local_5c & 0x400) == 0)" (parenthesized_expression "((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0))" (( "(") (binary_expression "(local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)" (parenthesized_expression "(local_6c != (undefined1 *)0x0)" (( "(") (binary_expression "local_6c != (undefined1 *)0x0" (identifier "local_6c") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_6c[local_60] = 0, local_64 != 0)" (( "(") (comma_expression "local_6c[local_60] = 0, local_64 != 0" (assignment_expression "local_6c[local_60] = 0" (subscript_expression "local_6c[local_60]" (identifier "local_6c") ([ "[") (identifier "local_60") (] "]")) (= "=") (number_literal "0")) (, ",") (binary_expression "local_64 != 0" (identifier "local_64") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((local_5c & 0x400) == 0)" (( "(") (binary_expression "(local_5c & 0x400) == 0" (parenthesized_expression "(local_5c & 0x400)" (( "(") (binary_expression "local_5c & 0x400" (identifier "local_5c") (& "&") (number_literal "0x400")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      puVar2 = (undefined1 *)FUN_00057ab0();\n    }" ({ "{") (expression_statement "puVar2 = (undefined1 *)FUN_00057ab0();" (assignment_expression "puVar2 = (undefined1 *)FUN_00057ab0()" (identifier "puVar2") (= "=") (cast_expression "(undefined1 *)FUN_00057ab0()" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00057ab0()" (identifier "FUN_00057ab0") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00153870();\n  }" (if "if") (parenthesized_expression "(local_10 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_10 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_10") (!= "!=") (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_00153870();\n  }" ({ "{") (expression_statement "FUN_00153870();" (call_expression "FUN_00153870()" (identifier "FUN_00153870") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return puVar2;" (return "return") (identifier "puVar2") (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

char * function_1(char *zFormat,type_1 ap)

{
  int var_6;
  int var_3;
  char *pcVar3;
  int var_1;
  type_2 acc;
  char zBase [70];
  
  var_6 = *(int *)(var_1 + 0x14);
  var_3 = var_2();
  pcVar3 = (char *)0x0;
  if (var_3 == 0) {
    acc.zText = zBase;
    acc.db = (type_3 *)0x0;
    acc.nAlloc = 0x46;
    acc.mxAlloc = 1000000000;
    acc.nChar = 0;
    acc.accError = '\0';
    acc.printfFlags = '\0';
    var_4(&acc,zFormat,ap);
    pcVar3 = acc.zText;
    if (((acc.zText != (char *)0x0) && (acc.zText[acc.nChar] = '\0', acc.mxAlloc != 0)) &&
       ((acc._20_2_ & 0x400) == 0)) {
      pcVar3 = var_5(&acc);
    }
  }
  if (var_6 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_7();
  }
  return pcVar3;
}


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

undefined1 * MASKED(undefined4 param_1,undefined4 param_2)

{
  int iVar1;
  undefined1 *puVar2;
  int in_GS_OFFSET;
  undefined4 local_70;
  undefined1 *local_6c;
  undefined4 local_68;
  int local_64;
  int local_60;
  ushort local_5c;
  undefined1 local_56 [70];
  int local_10;
  
  local_10 = *(int *)(in_GS_OFFSET + 0x14);
  iVar1 = FUN_00067fc0();
  puVar2 = (undefined1 *)0x0;
  if (iVar1 == 0) {
    local_6c = local_56;
    local_70 = 0;
    local_68 = 0x46;
    local_64 = 1000000000;
    local_60 = 0;
    local_5c = 0;
    FUN_00075470(&local_70,param_1,param_2);
    puVar2 = local_6c;
    if (((local_6c != (undefined1 *)0x0) && (local_6c[local_60] = 0, local_64 != 0)) &&
       ((local_5c & 0x400) == 0)) {
      puVar2 = (undefined1 *)FUN_00057ab0();
    }
  }
  if (local_10 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00153870();
  }
  return puVar2;
}

