
/* WARNING: Unknown calling convention */

void jsonPatchFunc(sqlite3_context *ctx,int argc,sqlite3_value **argv)

{
  int iVar1;
  int iVar2;
  JsonNode *pNode;
  int in_GS_OFFSET;
  JsonParse *in_stack_ffffffa4;
  sqlite3_context *in_stack_ffffffa8;
  char *in_stack_ffffffac;
  JsonParse x;
  JsonParse y;
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  sqlite3ValueText(*argv,'\x01');
  iVar2 = jsonParse(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac);
  if (iVar2 == 0) {
    sqlite3ValueText(argv[1],'\x01');
    iVar2 = jsonParse(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac);
    if (iVar2 == 0) {
      pNode = jsonMergePatch(&x,0,y.aNode);
      if (pNode == (JsonNode *)0x0) {
        sqlite3_result_error_nomem(ctx);
      }
      else {
        jsonReturnJson(pNode,ctx,(sqlite3_value **)0x0);
      }
      jsonParseReset(&x);
      jsonParseReset(&y);
    }
    else {
      jsonParseReset(&x);
    }
  }
  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



void FUN_0008bbd0(undefined4 param_1)

{
  int iVar1;
  int iVar2;
  int in_GS_OFFSET;
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  FUN_0006a450();
  iVar2 = FUN_0008a620();
  if (iVar2 == 0) {
    FUN_0006a450();
    iVar2 = FUN_0008a620();
    if (iVar2 == 0) {
      iVar2 = FUN_0008ac70();
      if (iVar2 == 0) {
        FUN_00045190(param_1);
      }
      else {
        FUN_0008bb30();
      }
      FUN_00043e00();
      FUN_00043e00();
    }
    else {
      FUN_00043e00();
    }
  }
  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00116110();
}


PUSH EDI
MOV EDX,0x1
PUSH ESI
PUSH EBX
SUB ESP,0x50
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x4c],EAX
XOR EAX,EAX
MOV EDI,dword ptr [ESP + 0x68]
MOV ESI,dword ptr [ESP + 0x60]
LEA EBX,[ESP + 0xc]
MOV EAX,dword ptr [EDI]
CALL 0x0006a450
MOV EDX,ESI
MOV ECX,EAX
MOV EAX,EBX
CALL 0x0008a620
TEST EAX,EAX
JZ 0x0008bc20
MOV EAX,dword ptr [ESP + 0x4c]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x0008bc8e
ADD ESP,0x50
POP EBX
POP ESI
POP EDI
RET
MOV EAX,dword ptr [EDI + 0x4]
MOV EDX,0x1
LEA EDI,[ESP + 0x2c]
CALL 0x0006a450
MOV EDX,ESI
MOV ECX,EAX
MOV EAX,EDI
CALL 0x0008a620
TEST EAX,EAX
JNZ 0x0008bc70
MOV ECX,dword ptr [ESP + 0x34]
XOR EDX,EDX
MOV EAX,EBX
CALL 0x0008ac70
TEST EAX,EAX
JZ 0x0008bc80
XOR ECX,ECX
MOV EDX,ESI
CALL 0x0008bb30
MOV EAX,EBX
CALL 0x00043e00
MOV EAX,EDI
CALL 0x00043e00
JMP 0x0008bc09
MOV EAX,EBX
CALL 0x00043e00
JMP 0x0008bc09
SUB ESP,0xc
PUSH ESI
CALL 0x00045190
ADD ESP,0x10
JMP 0x0008bc5a
CALL 0x00116110
(translation_unit "void FUN_0008bbd0(undefined4 param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  FUN_0006a450();\n  iVar2 = FUN_0008a620();\n  if (iVar2 == 0) {\n    FUN_0006a450();\n    iVar2 = FUN_0008a620();\n    if (iVar2 == 0) {\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }\n    else {\n      FUN_00043e00();\n    }\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00116110();\n}\n\n" (function_definition "void FUN_0008bbd0(undefined4 param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  FUN_0006a450();\n  iVar2 = FUN_0008a620();\n  if (iVar2 == 0) {\n    FUN_0006a450();\n    iVar2 = FUN_0008a620();\n    if (iVar2 == 0) {\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }\n    else {\n      FUN_00043e00();\n    }\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00116110();\n}" primitive_type (function_declarator "FUN_0008bbd0(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  FUN_0006a450();\n  iVar2 = FUN_0008a620();\n  if (iVar2 == 0) {\n    FUN_0006a450();\n    iVar2 = FUN_0008a620();\n    if (iVar2 == 0) {\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }\n    else {\n      FUN_00043e00();\n    }\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00116110();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "FUN_0006a450();" (call_expression "FUN_0006a450()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar2 = FUN_0008a620();" (assignment_expression "iVar2 = FUN_0008a620()" identifier = (call_expression "FUN_0008a620()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0) {\n    FUN_0006a450();\n    iVar2 = FUN_0008a620();\n    if (iVar2 == 0) {\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }\n    else {\n      FUN_00043e00();\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0006a450();\n    iVar2 = FUN_0008a620();\n    if (iVar2 == 0) {\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }\n    else {\n      FUN_00043e00();\n    }\n  }" { (expression_statement "FUN_0006a450();" (call_expression "FUN_0006a450()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar2 = FUN_0008a620();" (assignment_expression "iVar2 = FUN_0008a620()" identifier = (call_expression "FUN_0008a620()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }\n    else {\n      FUN_00043e00();\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }" { (expression_statement "iVar2 = FUN_0008ac70();" (assignment_expression "iVar2 = FUN_0008ac70()" identifier = (call_expression "FUN_0008ac70()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_00045190(param_1);\n      }" { (expression_statement "FUN_00045190(param_1);" (call_expression "FUN_00045190(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) }) (else_clause "else {\n        FUN_0008bb30();\n      }" else (compound_statement "{\n        FUN_0008bb30();\n      }" { (expression_statement "FUN_0008bb30();" (call_expression "FUN_0008bb30()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "FUN_00043e00();" (call_expression "FUN_00043e00()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00043e00();" (call_expression "FUN_00043e00()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      FUN_00043e00();\n    }" else (compound_statement "{\n      FUN_00043e00();\n    }" { (expression_statement "FUN_00043e00();" (call_expression "FUN_00043e00()" identifier (argument_list "()" ( ))) ;) }))) })) (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\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    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "FUN_00116110();" (call_expression "FUN_00116110()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nvoid jsonPatchFunc(sqlite3_context *ctx,int argc,sqlite3_value **argv)\n\n{\n  int iVar1;\n  int iVar2;\n  JsonNode *pNode;\n  int in_GS_OFFSET;\n  JsonParse *in_stack_ffffffa4;\n  sqlite3_context *in_stack_ffffffa8;\n  char *in_stack_ffffffac;\n  JsonParse x;\n  JsonParse y;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  sqlite3ValueText(*argv,'\x01');\n  iVar2 = jsonParse(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac);\n  if (iVar2 == 0) {\n    sqlite3ValueText(argv[1],'\x01');\n    iVar2 = jsonParse(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac);\n    if (iVar2 == 0) {\n      pNode = jsonMergePatch(&x,0,y.aNode);\n      if (pNode == (JsonNode *)0x0) {\n        sqlite3_result_error_nomem(ctx);\n      }\n      else {\n        jsonReturnJson(pNode,ctx,(sqlite3_value **)0x0);\n      }\n      jsonParseReset(&x);\n      jsonParseReset(&y);\n    }\n    else {\n      jsonParseReset(&x);\n    }\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment (function_definition "void jsonPatchFunc(sqlite3_context *ctx,int argc,sqlite3_value **argv)\n\n{\n  int iVar1;\n  int iVar2;\n  JsonNode *pNode;\n  int in_GS_OFFSET;\n  JsonParse *in_stack_ffffffa4;\n  sqlite3_context *in_stack_ffffffa8;\n  char *in_stack_ffffffac;\n  JsonParse x;\n  JsonParse y;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  sqlite3ValueText(*argv,'\x01');\n  iVar2 = jsonParse(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac);\n  if (iVar2 == 0) {\n    sqlite3ValueText(argv[1],'\x01');\n    iVar2 = jsonParse(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac);\n    if (iVar2 == 0) {\n      pNode = jsonMergePatch(&x,0,y.aNode);\n      if (pNode == (JsonNode *)0x0) {\n        sqlite3_result_error_nomem(ctx);\n      }\n      else {\n        jsonReturnJson(pNode,ctx,(sqlite3_value **)0x0);\n      }\n      jsonParseReset(&x);\n      jsonParseReset(&y);\n    }\n    else {\n      jsonParseReset(&x);\n    }\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (function_declarator "jsonPatchFunc(sqlite3_context *ctx,int argc,sqlite3_value **argv)" identifier (parameter_list "(sqlite3_context *ctx,int argc,sqlite3_value **argv)" ( (parameter_declaration "sqlite3_context *ctx" type_identifier (pointer_declarator "*ctx" * identifier)) , (parameter_declaration "int argc" primitive_type identifier) , (parameter_declaration "sqlite3_value **argv" type_identifier (pointer_declarator "**argv" * (pointer_declarator "*argv" * identifier))) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  JsonNode *pNode;\n  int in_GS_OFFSET;\n  JsonParse *in_stack_ffffffa4;\n  sqlite3_context *in_stack_ffffffa8;\n  char *in_stack_ffffffac;\n  JsonParse x;\n  JsonParse y;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  sqlite3ValueText(*argv,'\x01');\n  iVar2 = jsonParse(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac);\n  if (iVar2 == 0) {\n    sqlite3ValueText(argv[1],'\x01');\n    iVar2 = jsonParse(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac);\n    if (iVar2 == 0) {\n      pNode = jsonMergePatch(&x,0,y.aNode);\n      if (pNode == (JsonNode *)0x0) {\n        sqlite3_result_error_nomem(ctx);\n      }\n      else {\n        jsonReturnJson(pNode,ctx,(sqlite3_value **)0x0);\n      }\n      jsonParseReset(&x);\n      jsonParseReset(&y);\n    }\n    else {\n      jsonParseReset(&x);\n    }\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "JsonNode *pNode;" type_identifier (pointer_declarator "*pNode" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "JsonParse *in_stack_ffffffa4;" type_identifier (pointer_declarator "*in_stack_ffffffa4" * identifier) ;) (declaration "sqlite3_context *in_stack_ffffffa8;" type_identifier (pointer_declarator "*in_stack_ffffffa8" * identifier) ;) (declaration "char *in_stack_ffffffac;" primitive_type (pointer_declarator "*in_stack_ffffffac" * identifier) ;) (declaration "JsonParse x;" type_identifier identifier ;) (declaration "JsonParse y;" type_identifier identifier ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "sqlite3ValueText(*argv,'\x01');" (call_expression "sqlite3ValueText(*argv,'\x01')" identifier (argument_list "(*argv,'\x01')" ( (pointer_expression "*argv" * identifier) , (char_literal "'\x01'" ' escape_sequence ') ))) ;) (expression_statement "iVar2 = jsonParse(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac);" (assignment_expression "iVar2 = jsonParse(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac)" identifier = (call_expression "jsonParse(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac)" identifier (argument_list "(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n    sqlite3ValueText(argv[1],'\x01');\n    iVar2 = jsonParse(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac);\n    if (iVar2 == 0) {\n      pNode = jsonMergePatch(&x,0,y.aNode);\n      if (pNode == (JsonNode *)0x0) {\n        sqlite3_result_error_nomem(ctx);\n      }\n      else {\n        jsonReturnJson(pNode,ctx,(sqlite3_value **)0x0);\n      }\n      jsonParseReset(&x);\n      jsonParseReset(&y);\n    }\n    else {\n      jsonParseReset(&x);\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    sqlite3ValueText(argv[1],'\x01');\n    iVar2 = jsonParse(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac);\n    if (iVar2 == 0) {\n      pNode = jsonMergePatch(&x,0,y.aNode);\n      if (pNode == (JsonNode *)0x0) {\n        sqlite3_result_error_nomem(ctx);\n      }\n      else {\n        jsonReturnJson(pNode,ctx,(sqlite3_value **)0x0);\n      }\n      jsonParseReset(&x);\n      jsonParseReset(&y);\n    }\n    else {\n      jsonParseReset(&x);\n    }\n  }" { (expression_statement "sqlite3ValueText(argv[1],'\x01');" (call_expression "sqlite3ValueText(argv[1],'\x01')" identifier (argument_list "(argv[1],'\x01')" ( (subscript_expression "argv[1]" identifier [ number_literal ]) , (char_literal "'\x01'" ' escape_sequence ') ))) ;) (expression_statement "iVar2 = jsonParse(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac);" (assignment_expression "iVar2 = jsonParse(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac)" identifier = (call_expression "jsonParse(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac)" identifier (argument_list "(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      pNode = jsonMergePatch(&x,0,y.aNode);\n      if (pNode == (JsonNode *)0x0) {\n        sqlite3_result_error_nomem(ctx);\n      }\n      else {\n        jsonReturnJson(pNode,ctx,(sqlite3_value **)0x0);\n      }\n      jsonParseReset(&x);\n      jsonParseReset(&y);\n    }\n    else {\n      jsonParseReset(&x);\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      pNode = jsonMergePatch(&x,0,y.aNode);\n      if (pNode == (JsonNode *)0x0) {\n        sqlite3_result_error_nomem(ctx);\n      }\n      else {\n        jsonReturnJson(pNode,ctx,(sqlite3_value **)0x0);\n      }\n      jsonParseReset(&x);\n      jsonParseReset(&y);\n    }" { (expression_statement "pNode = jsonMergePatch(&x,0,y.aNode);" (assignment_expression "pNode = jsonMergePatch(&x,0,y.aNode)" identifier = (call_expression "jsonMergePatch(&x,0,y.aNode)" identifier (argument_list "(&x,0,y.aNode)" ( (pointer_expression "&x" & identifier) , number_literal , (field_expression "y.aNode" identifier . field_identifier) )))) ;) (if_statement "if (pNode == (JsonNode *)0x0) {\n        sqlite3_result_error_nomem(ctx);\n      }\n      else {\n        jsonReturnJson(pNode,ctx,(sqlite3_value **)0x0);\n      }" if (parenthesized_expression "(pNode == (JsonNode *)0x0)" ( (binary_expression "pNode == (JsonNode *)0x0" identifier == (cast_expression "(JsonNode *)0x0" ( (type_descriptor "JsonNode *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        sqlite3_result_error_nomem(ctx);\n      }" { (expression_statement "sqlite3_result_error_nomem(ctx);" (call_expression "sqlite3_result_error_nomem(ctx)" identifier (argument_list "(ctx)" ( identifier ))) ;) }) (else_clause "else {\n        jsonReturnJson(pNode,ctx,(sqlite3_value **)0x0);\n      }" else (compound_statement "{\n        jsonReturnJson(pNode,ctx,(sqlite3_value **)0x0);\n      }" { (expression_statement "jsonReturnJson(pNode,ctx,(sqlite3_value **)0x0);" (call_expression "jsonReturnJson(pNode,ctx,(sqlite3_value **)0x0)" identifier (argument_list "(pNode,ctx,(sqlite3_value **)0x0)" ( identifier , identifier , (cast_expression "(sqlite3_value **)0x0" ( (type_descriptor "sqlite3_value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) ))) ;) }))) (expression_statement "jsonParseReset(&x);" (call_expression "jsonParseReset(&x)" identifier (argument_list "(&x)" ( (pointer_expression "&x" & identifier) ))) ;) (expression_statement "jsonParseReset(&y);" (call_expression "jsonParseReset(&y)" identifier (argument_list "(&y)" ( (pointer_expression "&y" & identifier) ))) ;) }) (else_clause "else {\n      jsonParseReset(&x);\n    }" else (compound_statement "{\n      jsonParseReset(&x);\n    }" { (expression_statement "jsonParseReset(&x);" (call_expression "jsonParseReset(&x)" identifier (argument_list "(&x)" ( (pointer_expression "&x" & identifier) ))) ;) }))) })) (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\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    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_0008bbd0(undefined4 param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  FUN_0006a450();\n  iVar2 = FUN_0008a620();\n  if (iVar2 == 0) {\n    FUN_0006a450();\n    iVar2 = FUN_0008a620();\n    if (iVar2 == 0) {\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }\n    else {\n      FUN_00043e00();\n    }\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00116110();\n}\n\n" (function_definition "void FUN_0008bbd0(undefined4 param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  FUN_0006a450();\n  iVar2 = FUN_0008a620();\n  if (iVar2 == 0) {\n    FUN_0006a450();\n    iVar2 = FUN_0008a620();\n    if (iVar2 == 0) {\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }\n    else {\n      FUN_00043e00();\n    }\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00116110();\n}" primitive_type (function_declarator "FUN_0008bbd0(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  FUN_0006a450();\n  iVar2 = FUN_0008a620();\n  if (iVar2 == 0) {\n    FUN_0006a450();\n    iVar2 = FUN_0008a620();\n    if (iVar2 == 0) {\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }\n    else {\n      FUN_00043e00();\n    }\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00116110();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "FUN_0006a450();" (call_expression "FUN_0006a450()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar2 = FUN_0008a620();" (assignment_expression "iVar2 = FUN_0008a620()" identifier = (call_expression "FUN_0008a620()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0) {\n    FUN_0006a450();\n    iVar2 = FUN_0008a620();\n    if (iVar2 == 0) {\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }\n    else {\n      FUN_00043e00();\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0006a450();\n    iVar2 = FUN_0008a620();\n    if (iVar2 == 0) {\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }\n    else {\n      FUN_00043e00();\n    }\n  }" { (expression_statement "FUN_0006a450();" (call_expression "FUN_0006a450()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar2 = FUN_0008a620();" (assignment_expression "iVar2 = FUN_0008a620()" identifier = (call_expression "FUN_0008a620()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0) {\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }\n    else {\n      FUN_00043e00();\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }" { (expression_statement "iVar2 = FUN_0008ac70();" (assignment_expression "iVar2 = FUN_0008ac70()" identifier = (call_expression "FUN_0008ac70()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_00045190(param_1);\n      }" { (expression_statement "FUN_00045190(param_1);" (call_expression "FUN_00045190(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) }) (else_clause "else {\n        FUN_0008bb30();\n      }" else (compound_statement "{\n        FUN_0008bb30();\n      }" { (expression_statement "FUN_0008bb30();" (call_expression "FUN_0008bb30()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "FUN_00043e00();" (call_expression "FUN_00043e00()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00043e00();" (call_expression "FUN_00043e00()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      FUN_00043e00();\n    }" else (compound_statement "{\n      FUN_00043e00();\n    }" { (expression_statement "FUN_00043e00();" (call_expression "FUN_00043e00()" identifier (argument_list "()" ( ))) ;) }))) })) (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\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    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_00116110();" (call_expression "FUN_00116110()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (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 { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_0008bbd0(undefined4 param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  FUN_0006a450();\n  iVar2 = FUN_0008a620();\n  if (iVar2 == 0) {\n    FUN_0006a450();\n    iVar2 = FUN_0008a620();\n    if (iVar2 == 0) {\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }\n    else {\n      FUN_00043e00();\n    }\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00116110();\n}" (primitive_type "void") (function_declarator "FUN_0008bbd0(undefined4 param_1)" (identifier "FUN_0008bbd0") (parameter_list "(undefined4 param_1)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  FUN_0006a450();\n  iVar2 = FUN_0008a620();\n  if (iVar2 == 0) {\n    FUN_0006a450();\n    iVar2 = FUN_0008a620();\n    if (iVar2 == 0) {\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }\n    else {\n      FUN_00043e00();\n    }\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00116110();\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "FUN_0006a450();" (call_expression "FUN_0006a450()" (identifier "FUN_0006a450") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar2 = FUN_0008a620();" (assignment_expression "iVar2 = FUN_0008a620()" (identifier "iVar2") (= "=") (call_expression "FUN_0008a620()" (identifier "FUN_0008a620") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n    FUN_0006a450();\n    iVar2 = FUN_0008a620();\n    if (iVar2 == 0) {\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }\n    else {\n      FUN_00043e00();\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0006a450();\n    iVar2 = FUN_0008a620();\n    if (iVar2 == 0) {\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }\n    else {\n      FUN_00043e00();\n    }\n  }" ({ "{") (expression_statement "FUN_0006a450();" (call_expression "FUN_0006a450()" (identifier "FUN_0006a450") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar2 = FUN_0008a620();" (assignment_expression "iVar2 = FUN_0008a620()" (identifier "iVar2") (= "=") (call_expression "FUN_0008a620()" (identifier "FUN_0008a620") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }\n    else {\n      FUN_00043e00();\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = FUN_0008ac70();\n      if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }\n      FUN_00043e00();\n      FUN_00043e00();\n    }" ({ "{") (expression_statement "iVar2 = FUN_0008ac70();" (assignment_expression "iVar2 = FUN_0008ac70()" (identifier "iVar2") (= "=") (call_expression "FUN_0008ac70()" (identifier "FUN_0008ac70") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n        FUN_00045190(param_1);\n      }\n      else {\n        FUN_0008bb30();\n      }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00045190(param_1);\n      }" ({ "{") (expression_statement "FUN_00045190(param_1);" (call_expression "FUN_00045190(param_1)" (identifier "FUN_00045190") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        FUN_0008bb30();\n      }" (else "else") (compound_statement "{\n        FUN_0008bb30();\n      }" ({ "{") (expression_statement "FUN_0008bb30();" (call_expression "FUN_0008bb30()" (identifier "FUN_0008bb30") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_00043e00();" (call_expression "FUN_00043e00()" (identifier "FUN_00043e00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00043e00();" (call_expression "FUN_00043e00()" (identifier "FUN_00043e00") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      FUN_00043e00();\n    }" (else "else") (compound_statement "{\n      FUN_00043e00();\n    }" ({ "{") (expression_statement "FUN_00043e00();" (call_expression "FUN_00043e00()" (identifier "FUN_00043e00") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (if "if") (parenthesized_expression "(iVar1 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "iVar1 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "iVar1") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00116110();" (call_expression "FUN_00116110()" (identifier "FUN_00116110") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

void function_1(type_1 *ctx,int argc,type_2 **argv)

{
  int var_10;
  int var_4;
  type_3 *var_6;
  int var_1;
  type_4 *in_stack_ffffffa4;
  type_1 *in_stack_ffffffa8;
  char *in_stack_ffffffac;
  type_4 x;
  type_4 y;
  
  var_10 = *(int *)(var_1 + 0x14);
  var_2(*argv,'\x01');
  var_4 = var_3(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac);
  if (var_4 == 0) {
    var_2(argv[1],'\x01');
    var_4 = var_3(in_stack_ffffffa4,in_stack_ffffffa8,in_stack_ffffffac);
    if (var_4 == 0) {
      var_6 = var_5(&x,0,y.aNode);
      if (var_6 == (type_3 *)0x0) {
        var_7(ctx);
      }
      else {
        var_8(var_6,ctx,(type_2 **)0x0);
      }
      var_9(&x);
      var_9(&y);
    }
    else {
      var_9(&x);
    }
  }
  if (var_10 == *(int *)(var_1 + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_11();
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (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 (call_expression function: (identifier) arguments: (argument_list))) (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: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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: (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: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) alternative: (else_clause (compound_statement (expression_statement (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 (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

void MASKED(undefined4 param_1)

{
  int iVar1;
  int iVar2;
  int in_GS_OFFSET;
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  FUN_0006a450();
  iVar2 = FUN_0008a620();
  if (iVar2 == 0) {
    FUN_0006a450();
    iVar2 = FUN_0008a620();
    if (iVar2 == 0) {
      iVar2 = FUN_0008ac70();
      if (iVar2 == 0) {
        FUN_00045190(param_1);
      }
      else {
        FUN_0008bb30();
      }
      FUN_00043e00();
      FUN_00043e00();
    }
    else {
      FUN_00043e00();
    }
  }
  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00116110();
}

