
quoting_options *
quoting_options_from_style(quoting_options *__return_storage_ptr__,quoting_style style)

{
  quoting_options *pqVar1;
  byte *pbVar2;
  quoting_options *o;
  undefined *puVar3;
  
  __return_storage_ptr__->style = literal_quoting_style;
  __return_storage_ptr__->flags = 0;
  __return_storage_ptr__->quote_these_too[0] = 0;
  __return_storage_ptr__->quote_these_too[1] = 0;
  __return_storage_ptr__->quote_these_too[2] = 0;
  __return_storage_ptr__->quote_these_too[3] = 0;
  __return_storage_ptr__->quote_these_too[4] = 0;
  __return_storage_ptr__->quote_these_too[5] = 0;
  __return_storage_ptr__->quote_these_too[6] = 0;
  __return_storage_ptr__->quote_these_too[7] = 0;
  __return_storage_ptr__->left_quote = (char *)0x0;
  __return_storage_ptr__->right_quote = (char *)0x0;
  if (style != custom_quoting_style) {
    __return_storage_ptr__->style = style;
    return __return_storage_ptr__;
  }
  puVar3 = PTR_abort_0002a1d4;
  (*(code *)PTR_abort_0002a1d4)();
  pqVar1 = (quoting_options *)(**(code **)(puVar3 + 0x16ae0))(0,__return_storage_ptr__,5);
  if (__return_storage_ptr__ == pqVar1) {
    pbVar2 = (byte *)locale_charset();
    if ((*pbVar2 & 0xdf) == 0x55) {
      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&
         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {
        if (*(undefined1 *)&pqVar1->style != 0x60) {
          return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a88);
        }
        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);
      }
    }
    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))
            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&
                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {
      if (*(undefined1 *)&pqVar1->style != 0x60) {
        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a84);
      }
      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a80);
    }
    if (style != clocale_quoting_style) {
      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a78);
    }
    pqVar1 = (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);
  }
  return pqVar1;
}



int * FUN_00013730(int *param_1,int param_2)

{
  int *piVar1;
  byte *pbVar2;
  undefined *puVar3;
  
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  param_1[3] = 0;
  param_1[4] = 0;
  param_1[5] = 0;
  param_1[6] = 0;
  param_1[7] = 0;
  param_1[8] = 0;
  param_1[9] = 0;
  param_1[10] = 0;
  param_1[0xb] = 0;
  if (param_2 != 10) {
    *param_1 = param_2;
    return param_1;
  }
  puVar3 = PTR_abort_0002a1d4;
  (*(code *)PTR_abort_0002a1d4)();
  piVar1 = (int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5);
  if (param_1 == piVar1) {
    pbVar2 = (byte *)locale_charset();
    if ((*pbVar2 & 0xdf) == 0x55) {
      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&
         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {
        if (*(char *)piVar1 != '`') {
          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);
        }
        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);
      }
    }
    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))
            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&
                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {
      if (*(char *)piVar1 != '`') {
        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);
      }
      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);
    }
    if (param_2 != 9) {
      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);
    }
    piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);
  }
  return piVar1;
}


lui gp,0x2
addiu gp,gp,-0x1670
addu gp,gp,t9
li v0,0xa
sw zero,0x0(a0)
sw zero,0x4(a0)
sw zero,0x8(a0)
sw zero,0xc(a0)
sw zero,0x10(a0)
sw zero,0x14(a0)
sw zero,0x18(a0)
sw zero,0x1c(a0)
sw zero,0x20(a0)
sw zero,0x24(a0)
sw zero,0x28(a0)
beq a1,v0,0x00013780
_sw zero,0x2c(a0)
sw a1,0x0(a0)
jr ra
_or v0,a0,zero
addiu sp,sp,-0x20
lw t9,-0x7eec(gp)
sw gp,0x10(sp)
sw ra,0x1c(sp)
jalr t9
_nop
(translation_unit "int * FUN_00013730(int *param_1,int param_2)\n\n{\n  int *piVar1;\n  byte *pbVar2;\n  undefined *puVar3;\n  \n  *param_1 = 0;\n  param_1[1] = 0;\n  param_1[2] = 0;\n  param_1[3] = 0;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0;\n  param_1[7] = 0;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  param_1[10] = 0;\n  param_1[0xb] = 0;\n  if (param_2 != 10) {\n    *param_1 = param_2;\n    return param_1;\n  }\n  puVar3 = PTR_abort_0002a1d4;\n  (*(code *)PTR_abort_0002a1d4)();\n  piVar1 = (int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5);\n  if (param_1 == piVar1) {\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (param_2 != 9) {\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }\n  return piVar1;\n}\n\n" (function_definition "int * FUN_00013730(int *param_1,int param_2)\n\n{\n  int *piVar1;\n  byte *pbVar2;\n  undefined *puVar3;\n  \n  *param_1 = 0;\n  param_1[1] = 0;\n  param_1[2] = 0;\n  param_1[3] = 0;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0;\n  param_1[7] = 0;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  param_1[10] = 0;\n  param_1[0xb] = 0;\n  if (param_2 != 10) {\n    *param_1 = param_2;\n    return param_1;\n  }\n  puVar3 = PTR_abort_0002a1d4;\n  (*(code *)PTR_abort_0002a1d4)();\n  piVar1 = (int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5);\n  if (param_1 == piVar1) {\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (param_2 != 9) {\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }\n  return piVar1;\n}" primitive_type (pointer_declarator "* FUN_00013730(int *param_1,int param_2)" * (function_declarator "FUN_00013730(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) )))) (compound_statement "{\n  int *piVar1;\n  byte *pbVar2;\n  undefined *puVar3;\n  \n  *param_1 = 0;\n  param_1[1] = 0;\n  param_1[2] = 0;\n  param_1[3] = 0;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0;\n  param_1[7] = 0;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  param_1[10] = 0;\n  param_1[0xb] = 0;\n  if (param_2 != 10) {\n    *param_1 = param_2;\n    return param_1;\n  }\n  puVar3 = PTR_abort_0002a1d4;\n  (*(code *)PTR_abort_0002a1d4)();\n  piVar1 = (int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5);\n  if (param_1 == piVar1) {\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (param_2 != 9) {\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }\n  return piVar1;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_2 != 10) {\n    *param_1 = param_2;\n    return param_1;\n  }" if (parenthesized_expression "(param_2 != 10)" ( (binary_expression "param_2 != 10" identifier != number_literal) )) (compound_statement "{\n    *param_1 = param_2;\n    return param_1;\n  }" { (expression_statement "*param_1 = param_2;" (assignment_expression "*param_1 = param_2" (pointer_expression "*param_1" * identifier) = identifier) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "puVar3 = PTR_abort_0002a1d4;" (assignment_expression "puVar3 = PTR_abort_0002a1d4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_abort_0002a1d4)();" (call_expression "(*(code *)PTR_abort_0002a1d4)()" (parenthesized_expression "(*(code *)PTR_abort_0002a1d4)" ( (pointer_expression "*(code *)PTR_abort_0002a1d4" * (cast_expression "(code *)PTR_abort_0002a1d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar1 = (int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5);" (assignment_expression "piVar1 = (int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5)" identifier = (cast_expression "(int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar3 + 0x16ae0))(0,param_1,5)" (parenthesized_expression "(**(code **)(puVar3 + 0x16ae0))" ( (pointer_expression "**(code **)(puVar3 + 0x16ae0)" * (pointer_expression "*(code **)(puVar3 + 0x16ae0)" * (cast_expression "(code **)(puVar3 + 0x16ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x16ae0)" ( (binary_expression "puVar3 + 0x16ae0" identifier + number_literal) ))))) )) (argument_list "(0,param_1,5)" ( number_literal , identifier , number_literal ))))) ;) (if_statement "if (param_1 == piVar1) {\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (param_2 != 9) {\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }" if (parenthesized_expression "(param_1 == piVar1)" ( (binary_expression "param_1 == piVar1" identifier == identifier) )) (compound_statement "{\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (param_2 != 9) {\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }" { (expression_statement "pbVar2 = (byte *)locale_charset();" (assignment_expression "pbVar2 = (byte *)locale_charset()" identifier = (cast_expression "(byte *)locale_charset()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "locale_charset()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }" if (parenthesized_expression "((*pbVar2 & 0xdf) == 0x55)" ( (binary_expression "(*pbVar2 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar2 & 0xdf)" ( (binary_expression "*pbVar2 & 0xdf" (pointer_expression "*pbVar2" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }" { (if_statement "if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }" if (parenthesized_expression "(((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0))))" ( (binary_expression "((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))" (parenthesized_expression "((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d))" ( (binary_expression "(((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)" (parenthesized_expression "(((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46))" ( (binary_expression "((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)" (parenthesized_expression "((pbVar2[1] & 0xdf) == 0x54)" ( (binary_expression "(pbVar2[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar2[1] & 0xdf)" ( (binary_expression "pbVar2[1] & 0xdf" (subscript_expression "pbVar2[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "((pbVar2[2] & 0xdf) == 0x46)" ( (binary_expression "(pbVar2[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar2[2] & 0xdf)" ( (binary_expression "pbVar2[2] & 0xdf" (subscript_expression "pbVar2[2]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(pbVar2[3] == 0x2d)" ( (binary_expression "pbVar2[3] == 0x2d" (subscript_expression "pbVar2[3]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))" ( (parenthesized_expression "(pbVar2[4] == 0x38 && (pbVar2[5] == 0))" ( (binary_expression "pbVar2[4] == 0x38 && (pbVar2[5] == 0)" (binary_expression "pbVar2[4] == 0x38" (subscript_expression "pbVar2[4]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar2[5] == 0)" ( (binary_expression "pbVar2[5] == 0" (subscript_expression "pbVar2[5]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }" { (if_statement "if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }" if (parenthesized_expression "(*(char *)piVar1 != '`')" ( (binary_expression "*(char *)piVar1 != '`'" (pointer_expression "*(char *)piVar1" * (cast_expression "(char *)piVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'`'" ' character ')) )) (compound_statement "{\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }" { (return_statement "return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);" return (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a88)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a88" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) ))) ;) })) (return_statement "return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);" return (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a7c)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a7c" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) ))) ;) })) }) (else_clause "else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }" else (if_statement "if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }" if (parenthesized_expression "(((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0))))))))" ( (binary_expression "((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))" (parenthesized_expression "((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))" ( (binary_expression "(((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31)" (parenthesized_expression "(((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42))" ( (binary_expression "((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)" (parenthesized_expression "((*pbVar2 & 0xdf) == 0x47)" ( (binary_expression "(*pbVar2 & 0xdf) == 0x47" (parenthesized_expression "(*pbVar2 & 0xdf)" ( (binary_expression "*pbVar2 & 0xdf" (pointer_expression "*pbVar2" * identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((pbVar2[1] & 0xdf) == 0x42)" ( (binary_expression "(pbVar2[1] & 0xdf) == 0x42" (parenthesized_expression "(pbVar2[1] & 0xdf)" ( (binary_expression "pbVar2[1] & 0xdf" (subscript_expression "pbVar2[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(pbVar2[2] == 0x31)" ( (binary_expression "pbVar2[2] == 0x31" (subscript_expression "pbVar2[2]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "(((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))" ( (parenthesized_expression "((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0))))))" ( (binary_expression "(pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))" (parenthesized_expression "(pbVar2[3] == 0x38 && (pbVar2[4] == 0x30))" ( (binary_expression "pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)" (binary_expression "pbVar2[3] == 0x38" (subscript_expression "pbVar2[3]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar2[4] == 0x30)" ( (binary_expression "pbVar2[4] == 0x30" (subscript_expression "pbVar2[4]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))" ( (parenthesized_expression "(pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0))))" ( (binary_expression "pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))" (binary_expression "pbVar2[5] == 0x33" (subscript_expression "pbVar2[5]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))" ( (parenthesized_expression "(pbVar2[6] == 0x30 && (pbVar2[7] == 0))" ( (binary_expression "pbVar2[6] == 0x30 && (pbVar2[7] == 0)" (binary_expression "pbVar2[6] == 0x30" (subscript_expression "pbVar2[6]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar2[7] == 0)" ( (binary_expression "pbVar2[7] == 0" (subscript_expression "pbVar2[7]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) ))) )) ))) )) (compound_statement "{\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }" { (if_statement "if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }" if (parenthesized_expression "(*(char *)piVar1 != '`')" ( (binary_expression "*(char *)piVar1 != '`'" (pointer_expression "*(char *)piVar1" * (cast_expression "(char *)piVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'`'" ' character ')) )) (compound_statement "{\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }" { (return_statement "return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);" return (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a84)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a84" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) ))) ;) })) (return_statement "return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);" return (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a80)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a80" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) ))) ;) })))) (if_statement "if (param_2 != 9) {\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }" if (parenthesized_expression "(param_2 != 9)" ( (binary_expression "param_2 != 9" identifier != number_literal) )) (compound_statement "{\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }" { (return_statement "return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);" return (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a78)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a78" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);" (assignment_expression "piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c)" identifier = (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a8c)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a8c" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) )))) ;) })) (return_statement "return piVar1;" return identifier ;) })))
(translation_unit "quoting_options *\nquoting_options_from_style(quoting_options *__return_storage_ptr__,quoting_style style)\n\n{\n  quoting_options *pqVar1;\n  byte *pbVar2;\n  quoting_options *o;\n  undefined *puVar3;\n  \n  __return_storage_ptr__->style = literal_quoting_style;\n  __return_storage_ptr__->flags = 0;\n  __return_storage_ptr__->quote_these_too[0] = 0;\n  __return_storage_ptr__->quote_these_too[1] = 0;\n  __return_storage_ptr__->quote_these_too[2] = 0;\n  __return_storage_ptr__->quote_these_too[3] = 0;\n  __return_storage_ptr__->quote_these_too[4] = 0;\n  __return_storage_ptr__->quote_these_too[5] = 0;\n  __return_storage_ptr__->quote_these_too[6] = 0;\n  __return_storage_ptr__->quote_these_too[7] = 0;\n  __return_storage_ptr__->left_quote = (char *)0x0;\n  __return_storage_ptr__->right_quote = (char *)0x0;\n  if (style != custom_quoting_style) {\n    __return_storage_ptr__->style = style;\n    return __return_storage_ptr__;\n  }\n  puVar3 = PTR_abort_0002a1d4;\n  (*(code *)PTR_abort_0002a1d4)();\n  pqVar1 = (quoting_options *)(**(code **)(puVar3 + 0x16ae0))(0,__return_storage_ptr__,5);\n  if (__return_storage_ptr__ == pqVar1) {\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(undefined1 *)&pqVar1->style != 0x60) {\n          return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(undefined1 *)&pqVar1->style != 0x60) {\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (style != clocale_quoting_style) {\n      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    pqVar1 = (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }\n  return pqVar1;\n}\n\n" (function_definition "quoting_options *\nquoting_options_from_style(quoting_options *__return_storage_ptr__,quoting_style style)\n\n{\n  quoting_options *pqVar1;\n  byte *pbVar2;\n  quoting_options *o;\n  undefined *puVar3;\n  \n  __return_storage_ptr__->style = literal_quoting_style;\n  __return_storage_ptr__->flags = 0;\n  __return_storage_ptr__->quote_these_too[0] = 0;\n  __return_storage_ptr__->quote_these_too[1] = 0;\n  __return_storage_ptr__->quote_these_too[2] = 0;\n  __return_storage_ptr__->quote_these_too[3] = 0;\n  __return_storage_ptr__->quote_these_too[4] = 0;\n  __return_storage_ptr__->quote_these_too[5] = 0;\n  __return_storage_ptr__->quote_these_too[6] = 0;\n  __return_storage_ptr__->quote_these_too[7] = 0;\n  __return_storage_ptr__->left_quote = (char *)0x0;\n  __return_storage_ptr__->right_quote = (char *)0x0;\n  if (style != custom_quoting_style) {\n    __return_storage_ptr__->style = style;\n    return __return_storage_ptr__;\n  }\n  puVar3 = PTR_abort_0002a1d4;\n  (*(code *)PTR_abort_0002a1d4)();\n  pqVar1 = (quoting_options *)(**(code **)(puVar3 + 0x16ae0))(0,__return_storage_ptr__,5);\n  if (__return_storage_ptr__ == pqVar1) {\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(undefined1 *)&pqVar1->style != 0x60) {\n          return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(undefined1 *)&pqVar1->style != 0x60) {\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (style != clocale_quoting_style) {\n      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    pqVar1 = (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }\n  return pqVar1;\n}" type_identifier (pointer_declarator "*\nquoting_options_from_style(quoting_options *__return_storage_ptr__,quoting_style style)" * (function_declarator "quoting_options_from_style(quoting_options *__return_storage_ptr__,quoting_style style)" identifier (parameter_list "(quoting_options *__return_storage_ptr__,quoting_style style)" ( (parameter_declaration "quoting_options *__return_storage_ptr__" type_identifier (pointer_declarator "*__return_storage_ptr__" * identifier)) , (parameter_declaration "quoting_style style" type_identifier identifier) )))) (compound_statement "{\n  quoting_options *pqVar1;\n  byte *pbVar2;\n  quoting_options *o;\n  undefined *puVar3;\n  \n  __return_storage_ptr__->style = literal_quoting_style;\n  __return_storage_ptr__->flags = 0;\n  __return_storage_ptr__->quote_these_too[0] = 0;\n  __return_storage_ptr__->quote_these_too[1] = 0;\n  __return_storage_ptr__->quote_these_too[2] = 0;\n  __return_storage_ptr__->quote_these_too[3] = 0;\n  __return_storage_ptr__->quote_these_too[4] = 0;\n  __return_storage_ptr__->quote_these_too[5] = 0;\n  __return_storage_ptr__->quote_these_too[6] = 0;\n  __return_storage_ptr__->quote_these_too[7] = 0;\n  __return_storage_ptr__->left_quote = (char *)0x0;\n  __return_storage_ptr__->right_quote = (char *)0x0;\n  if (style != custom_quoting_style) {\n    __return_storage_ptr__->style = style;\n    return __return_storage_ptr__;\n  }\n  puVar3 = PTR_abort_0002a1d4;\n  (*(code *)PTR_abort_0002a1d4)();\n  pqVar1 = (quoting_options *)(**(code **)(puVar3 + 0x16ae0))(0,__return_storage_ptr__,5);\n  if (__return_storage_ptr__ == pqVar1) {\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(undefined1 *)&pqVar1->style != 0x60) {\n          return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(undefined1 *)&pqVar1->style != 0x60) {\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (style != clocale_quoting_style) {\n      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    pqVar1 = (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }\n  return pqVar1;\n}" { (declaration "quoting_options *pqVar1;" type_identifier (pointer_declarator "*pqVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "quoting_options *o;" type_identifier (pointer_declarator "*o" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (expression_statement "__return_storage_ptr__->style = literal_quoting_style;" (assignment_expression "__return_storage_ptr__->style = literal_quoting_style" (field_expression "__return_storage_ptr__->style" identifier -> field_identifier) = identifier) ;) (expression_statement "__return_storage_ptr__->flags = 0;" (assignment_expression "__return_storage_ptr__->flags = 0" (field_expression "__return_storage_ptr__->flags" identifier -> field_identifier) = number_literal) ;) (expression_statement "__return_storage_ptr__->quote_these_too[0] = 0;" (assignment_expression "__return_storage_ptr__->quote_these_too[0] = 0" (subscript_expression "__return_storage_ptr__->quote_these_too[0]" (field_expression "__return_storage_ptr__->quote_these_too" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "__return_storage_ptr__->quote_these_too[1] = 0;" (assignment_expression "__return_storage_ptr__->quote_these_too[1] = 0" (subscript_expression "__return_storage_ptr__->quote_these_too[1]" (field_expression "__return_storage_ptr__->quote_these_too" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "__return_storage_ptr__->quote_these_too[2] = 0;" (assignment_expression "__return_storage_ptr__->quote_these_too[2] = 0" (subscript_expression "__return_storage_ptr__->quote_these_too[2]" (field_expression "__return_storage_ptr__->quote_these_too" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "__return_storage_ptr__->quote_these_too[3] = 0;" (assignment_expression "__return_storage_ptr__->quote_these_too[3] = 0" (subscript_expression "__return_storage_ptr__->quote_these_too[3]" (field_expression "__return_storage_ptr__->quote_these_too" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "__return_storage_ptr__->quote_these_too[4] = 0;" (assignment_expression "__return_storage_ptr__->quote_these_too[4] = 0" (subscript_expression "__return_storage_ptr__->quote_these_too[4]" (field_expression "__return_storage_ptr__->quote_these_too" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "__return_storage_ptr__->quote_these_too[5] = 0;" (assignment_expression "__return_storage_ptr__->quote_these_too[5] = 0" (subscript_expression "__return_storage_ptr__->quote_these_too[5]" (field_expression "__return_storage_ptr__->quote_these_too" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "__return_storage_ptr__->quote_these_too[6] = 0;" (assignment_expression "__return_storage_ptr__->quote_these_too[6] = 0" (subscript_expression "__return_storage_ptr__->quote_these_too[6]" (field_expression "__return_storage_ptr__->quote_these_too" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "__return_storage_ptr__->quote_these_too[7] = 0;" (assignment_expression "__return_storage_ptr__->quote_these_too[7] = 0" (subscript_expression "__return_storage_ptr__->quote_these_too[7]" (field_expression "__return_storage_ptr__->quote_these_too" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "__return_storage_ptr__->left_quote = (char *)0x0;" (assignment_expression "__return_storage_ptr__->left_quote = (char *)0x0" (field_expression "__return_storage_ptr__->left_quote" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "__return_storage_ptr__->right_quote = (char *)0x0;" (assignment_expression "__return_storage_ptr__->right_quote = (char *)0x0" (field_expression "__return_storage_ptr__->right_quote" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (style != custom_quoting_style) {\n    __return_storage_ptr__->style = style;\n    return __return_storage_ptr__;\n  }" if (parenthesized_expression "(style != custom_quoting_style)" ( (binary_expression "style != custom_quoting_style" identifier != identifier) )) (compound_statement "{\n    __return_storage_ptr__->style = style;\n    return __return_storage_ptr__;\n  }" { (expression_statement "__return_storage_ptr__->style = style;" (assignment_expression "__return_storage_ptr__->style = style" (field_expression "__return_storage_ptr__->style" identifier -> field_identifier) = identifier) ;) (return_statement "return __return_storage_ptr__;" return identifier ;) })) (expression_statement "puVar3 = PTR_abort_0002a1d4;" (assignment_expression "puVar3 = PTR_abort_0002a1d4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_abort_0002a1d4)();" (call_expression "(*(code *)PTR_abort_0002a1d4)()" (parenthesized_expression "(*(code *)PTR_abort_0002a1d4)" ( (pointer_expression "*(code *)PTR_abort_0002a1d4" * (cast_expression "(code *)PTR_abort_0002a1d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pqVar1 = (quoting_options *)(**(code **)(puVar3 + 0x16ae0))(0,__return_storage_ptr__,5);" (assignment_expression "pqVar1 = (quoting_options *)(**(code **)(puVar3 + 0x16ae0))(0,__return_storage_ptr__,5)" identifier = (cast_expression "(quoting_options *)(**(code **)(puVar3 + 0x16ae0))(0,__return_storage_ptr__,5)" ( (type_descriptor "quoting_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar3 + 0x16ae0))(0,__return_storage_ptr__,5)" (parenthesized_expression "(**(code **)(puVar3 + 0x16ae0))" ( (pointer_expression "**(code **)(puVar3 + 0x16ae0)" * (pointer_expression "*(code **)(puVar3 + 0x16ae0)" * (cast_expression "(code **)(puVar3 + 0x16ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x16ae0)" ( (binary_expression "puVar3 + 0x16ae0" identifier + number_literal) ))))) )) (argument_list "(0,__return_storage_ptr__,5)" ( number_literal , identifier , number_literal ))))) ;) (if_statement "if (__return_storage_ptr__ == pqVar1) {\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(undefined1 *)&pqVar1->style != 0x60) {\n          return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(undefined1 *)&pqVar1->style != 0x60) {\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (style != clocale_quoting_style) {\n      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    pqVar1 = (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }" if (parenthesized_expression "(__return_storage_ptr__ == pqVar1)" ( (binary_expression "__return_storage_ptr__ == pqVar1" identifier == identifier) )) (compound_statement "{\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(undefined1 *)&pqVar1->style != 0x60) {\n          return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(undefined1 *)&pqVar1->style != 0x60) {\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (style != clocale_quoting_style) {\n      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    pqVar1 = (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }" { (expression_statement "pbVar2 = (byte *)locale_charset();" (assignment_expression "pbVar2 = (byte *)locale_charset()" identifier = (cast_expression "(byte *)locale_charset()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "locale_charset()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(undefined1 *)&pqVar1->style != 0x60) {\n          return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(undefined1 *)&pqVar1->style != 0x60) {\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }" if (parenthesized_expression "((*pbVar2 & 0xdf) == 0x55)" ( (binary_expression "(*pbVar2 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar2 & 0xdf)" ( (binary_expression "*pbVar2 & 0xdf" (pointer_expression "*pbVar2" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(undefined1 *)&pqVar1->style != 0x60) {\n          return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }" { (if_statement "if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(undefined1 *)&pqVar1->style != 0x60) {\n          return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }" if (parenthesized_expression "(((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0))))" ( (binary_expression "((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))" (parenthesized_expression "((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d))" ( (binary_expression "(((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)" (parenthesized_expression "(((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46))" ( (binary_expression "((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)" (parenthesized_expression "((pbVar2[1] & 0xdf) == 0x54)" ( (binary_expression "(pbVar2[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar2[1] & 0xdf)" ( (binary_expression "pbVar2[1] & 0xdf" (subscript_expression "pbVar2[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "((pbVar2[2] & 0xdf) == 0x46)" ( (binary_expression "(pbVar2[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar2[2] & 0xdf)" ( (binary_expression "pbVar2[2] & 0xdf" (subscript_expression "pbVar2[2]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(pbVar2[3] == 0x2d)" ( (binary_expression "pbVar2[3] == 0x2d" (subscript_expression "pbVar2[3]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))" ( (parenthesized_expression "(pbVar2[4] == 0x38 && (pbVar2[5] == 0))" ( (binary_expression "pbVar2[4] == 0x38 && (pbVar2[5] == 0)" (binary_expression "pbVar2[4] == 0x38" (subscript_expression "pbVar2[4]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar2[5] == 0)" ( (binary_expression "pbVar2[5] == 0" (subscript_expression "pbVar2[5]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n        if (*(undefined1 *)&pqVar1->style != 0x60) {\n          return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }" { (if_statement "if (*(undefined1 *)&pqVar1->style != 0x60) {\n          return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }" if (parenthesized_expression "(*(undefined1 *)&pqVar1->style != 0x60)" ( (binary_expression "*(undefined1 *)&pqVar1->style != 0x60" (pointer_expression "*(undefined1 *)&pqVar1->style" * (cast_expression "(undefined1 *)&pqVar1->style" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pqVar1->style" & (field_expression "pqVar1->style" identifier -> field_identifier)))) != number_literal) )) (compound_statement "{\n          return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }" { (return_statement "return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a88);" return (cast_expression "(quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a88)" ( (type_descriptor "quoting_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a88)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a88" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) ))) ;) })) (return_statement "return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);" return (cast_expression "(quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a7c)" ( (type_descriptor "quoting_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a7c)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a7c" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) ))) ;) })) }) (else_clause "else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(undefined1 *)&pqVar1->style != 0x60) {\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }" else (if_statement "if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(undefined1 *)&pqVar1->style != 0x60) {\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }" if (parenthesized_expression "(((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0))))))))" ( (binary_expression "((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))" (parenthesized_expression "((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))" ( (binary_expression "(((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31)" (parenthesized_expression "(((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42))" ( (binary_expression "((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)" (parenthesized_expression "((*pbVar2 & 0xdf) == 0x47)" ( (binary_expression "(*pbVar2 & 0xdf) == 0x47" (parenthesized_expression "(*pbVar2 & 0xdf)" ( (binary_expression "*pbVar2 & 0xdf" (pointer_expression "*pbVar2" * identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((pbVar2[1] & 0xdf) == 0x42)" ( (binary_expression "(pbVar2[1] & 0xdf) == 0x42" (parenthesized_expression "(pbVar2[1] & 0xdf)" ( (binary_expression "pbVar2[1] & 0xdf" (subscript_expression "pbVar2[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(pbVar2[2] == 0x31)" ( (binary_expression "pbVar2[2] == 0x31" (subscript_expression "pbVar2[2]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "(((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))" ( (parenthesized_expression "((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0))))))" ( (binary_expression "(pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))" (parenthesized_expression "(pbVar2[3] == 0x38 && (pbVar2[4] == 0x30))" ( (binary_expression "pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)" (binary_expression "pbVar2[3] == 0x38" (subscript_expression "pbVar2[3]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar2[4] == 0x30)" ( (binary_expression "pbVar2[4] == 0x30" (subscript_expression "pbVar2[4]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))" ( (parenthesized_expression "(pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0))))" ( (binary_expression "pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))" (binary_expression "pbVar2[5] == 0x33" (subscript_expression "pbVar2[5]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))" ( (parenthesized_expression "(pbVar2[6] == 0x30 && (pbVar2[7] == 0))" ( (binary_expression "pbVar2[6] == 0x30 && (pbVar2[7] == 0)" (binary_expression "pbVar2[6] == 0x30" (subscript_expression "pbVar2[6]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar2[7] == 0)" ( (binary_expression "pbVar2[7] == 0" (subscript_expression "pbVar2[7]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) ))) )) ))) )) (compound_statement "{\n      if (*(undefined1 *)&pqVar1->style != 0x60) {\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }" { (if_statement "if (*(undefined1 *)&pqVar1->style != 0x60) {\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }" if (parenthesized_expression "(*(undefined1 *)&pqVar1->style != 0x60)" ( (binary_expression "*(undefined1 *)&pqVar1->style != 0x60" (pointer_expression "*(undefined1 *)&pqVar1->style" * (cast_expression "(undefined1 *)&pqVar1->style" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pqVar1->style" & (field_expression "pqVar1->style" identifier -> field_identifier)))) != number_literal) )) (compound_statement "{\n        return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }" { (return_statement "return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a84);" return (cast_expression "(quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a84)" ( (type_descriptor "quoting_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a84)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a84" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) ))) ;) })) (return_statement "return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a80);" return (cast_expression "(quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a80)" ( (type_descriptor "quoting_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a80)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a80" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) ))) ;) })))) (if_statement "if (style != clocale_quoting_style) {\n      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }" if (parenthesized_expression "(style != clocale_quoting_style)" ( (binary_expression "style != clocale_quoting_style" identifier != identifier) )) (compound_statement "{\n      return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }" { (return_statement "return (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a78);" return (cast_expression "(quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a78)" ( (type_descriptor "quoting_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a78)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a78" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "pqVar1 = (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);" (assignment_expression "pqVar1 = (quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a8c)" identifier = (cast_expression "(quoting_options *)(*(int *)(puVar3 + 0x16960) + -0x7a8c)" ( (type_descriptor "quoting_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a8c)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a8c" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) )))) ;) })) (return_statement "return pqVar1;" return identifier ;) })))
(translation_unit "int * FUN_00013730(int *param_1,int param_2)\n\n{\n  int *piVar1;\n  byte *pbVar2;\n  undefined *puVar3;\n  \n  *param_1 = 0;\n  param_1[1] = 0;\n  param_1[2] = 0;\n  param_1[3] = 0;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0;\n  param_1[7] = 0;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  param_1[10] = 0;\n  param_1[0xb] = 0;\n  if (param_2 != 10) {\n    *param_1 = param_2;\n    return param_1;\n  }\n  puVar3 = PTR_abort_0002a1d4;\n  (*(code *)PTR_abort_0002a1d4)();\n  piVar1 = (int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5);\n  if (param_1 == piVar1) {\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (param_2 != 9) {\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }\n  return piVar1;\n}\n\n" (function_definition "int * FUN_00013730(int *param_1,int param_2)\n\n{\n  int *piVar1;\n  byte *pbVar2;\n  undefined *puVar3;\n  \n  *param_1 = 0;\n  param_1[1] = 0;\n  param_1[2] = 0;\n  param_1[3] = 0;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0;\n  param_1[7] = 0;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  param_1[10] = 0;\n  param_1[0xb] = 0;\n  if (param_2 != 10) {\n    *param_1 = param_2;\n    return param_1;\n  }\n  puVar3 = PTR_abort_0002a1d4;\n  (*(code *)PTR_abort_0002a1d4)();\n  piVar1 = (int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5);\n  if (param_1 == piVar1) {\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (param_2 != 9) {\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }\n  return piVar1;\n}" primitive_type (pointer_declarator "* FUN_00013730(int *param_1,int param_2)" * (function_declarator "FUN_00013730(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) )))) (compound_statement "{\n  int *piVar1;\n  byte *pbVar2;\n  undefined *puVar3;\n  \n  *param_1 = 0;\n  param_1[1] = 0;\n  param_1[2] = 0;\n  param_1[3] = 0;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0;\n  param_1[7] = 0;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  param_1[10] = 0;\n  param_1[0xb] = 0;\n  if (param_2 != 10) {\n    *param_1 = param_2;\n    return param_1;\n  }\n  puVar3 = PTR_abort_0002a1d4;\n  (*(code *)PTR_abort_0002a1d4)();\n  piVar1 = (int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5);\n  if (param_1 == piVar1) {\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (param_2 != 9) {\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }\n  return piVar1;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_2 != 10) {\n    *param_1 = param_2;\n    return param_1;\n  }" if (parenthesized_expression "(param_2 != 10)" ( (binary_expression "param_2 != 10" identifier != number_literal) )) (compound_statement "{\n    *param_1 = param_2;\n    return param_1;\n  }" { (expression_statement "*param_1 = param_2;" (assignment_expression "*param_1 = param_2" (pointer_expression "*param_1" * identifier) = identifier) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "puVar3 = PTR_abort_0002a1d4;" (assignment_expression "puVar3 = PTR_abort_0002a1d4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_abort_0002a1d4)();" (call_expression "(*(code *)PTR_abort_0002a1d4)()" (parenthesized_expression "(*(code *)PTR_abort_0002a1d4)" ( (pointer_expression "*(code *)PTR_abort_0002a1d4" * (cast_expression "(code *)PTR_abort_0002a1d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar1 = (int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5);" (assignment_expression "piVar1 = (int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5)" identifier = (cast_expression "(int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar3 + 0x16ae0))(0,param_1,5)" (parenthesized_expression "(**(code **)(puVar3 + 0x16ae0))" ( (pointer_expression "**(code **)(puVar3 + 0x16ae0)" * (pointer_expression "*(code **)(puVar3 + 0x16ae0)" * (cast_expression "(code **)(puVar3 + 0x16ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x16ae0)" ( (binary_expression "puVar3 + 0x16ae0" identifier + number_literal) ))))) )) (argument_list "(0,param_1,5)" ( number_literal , identifier , number_literal ))))) ;) (if_statement "if (param_1 == piVar1) {\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (param_2 != 9) {\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }" if (parenthesized_expression "(param_1 == piVar1)" ( (binary_expression "param_1 == piVar1" identifier == identifier) )) (compound_statement "{\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (param_2 != 9) {\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }" { (expression_statement "pbVar2 = (byte *)locale_charset();" (assignment_expression "pbVar2 = (byte *)locale_charset()" identifier = (cast_expression "(byte *)locale_charset()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "locale_charset()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }" if (parenthesized_expression "((*pbVar2 & 0xdf) == 0x55)" ( (binary_expression "(*pbVar2 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar2 & 0xdf)" ( (binary_expression "*pbVar2 & 0xdf" (pointer_expression "*pbVar2" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }" { (if_statement "if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }" if (parenthesized_expression "(((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0))))" ( (binary_expression "((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))" (parenthesized_expression "((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d))" ( (binary_expression "(((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)" (parenthesized_expression "(((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46))" ( (binary_expression "((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)" (parenthesized_expression "((pbVar2[1] & 0xdf) == 0x54)" ( (binary_expression "(pbVar2[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar2[1] & 0xdf)" ( (binary_expression "pbVar2[1] & 0xdf" (subscript_expression "pbVar2[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "((pbVar2[2] & 0xdf) == 0x46)" ( (binary_expression "(pbVar2[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar2[2] & 0xdf)" ( (binary_expression "pbVar2[2] & 0xdf" (subscript_expression "pbVar2[2]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(pbVar2[3] == 0x2d)" ( (binary_expression "pbVar2[3] == 0x2d" (subscript_expression "pbVar2[3]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))" ( (parenthesized_expression "(pbVar2[4] == 0x38 && (pbVar2[5] == 0))" ( (binary_expression "pbVar2[4] == 0x38 && (pbVar2[5] == 0)" (binary_expression "pbVar2[4] == 0x38" (subscript_expression "pbVar2[4]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar2[5] == 0)" ( (binary_expression "pbVar2[5] == 0" (subscript_expression "pbVar2[5]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }" { (if_statement "if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }" if (parenthesized_expression "(*(char *)piVar1 != '`')" ( (binary_expression "*(char *)piVar1 != '`'" (pointer_expression "*(char *)piVar1" * (cast_expression "(char *)piVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'`'" ' character ')) )) (compound_statement "{\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }" { (return_statement "return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);" return (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a88)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a88" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) ))) ;) })) (return_statement "return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);" return (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a7c)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a7c" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) ))) ;) })) }) (else_clause "else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }" else (if_statement "if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }" if (parenthesized_expression "(((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0))))))))" ( (binary_expression "((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))" (parenthesized_expression "((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))" ( (binary_expression "(((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31)" (parenthesized_expression "(((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42))" ( (binary_expression "((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)" (parenthesized_expression "((*pbVar2 & 0xdf) == 0x47)" ( (binary_expression "(*pbVar2 & 0xdf) == 0x47" (parenthesized_expression "(*pbVar2 & 0xdf)" ( (binary_expression "*pbVar2 & 0xdf" (pointer_expression "*pbVar2" * identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((pbVar2[1] & 0xdf) == 0x42)" ( (binary_expression "(pbVar2[1] & 0xdf) == 0x42" (parenthesized_expression "(pbVar2[1] & 0xdf)" ( (binary_expression "pbVar2[1] & 0xdf" (subscript_expression "pbVar2[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(pbVar2[2] == 0x31)" ( (binary_expression "pbVar2[2] == 0x31" (subscript_expression "pbVar2[2]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "(((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))" ( (parenthesized_expression "((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0))))))" ( (binary_expression "(pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))" (parenthesized_expression "(pbVar2[3] == 0x38 && (pbVar2[4] == 0x30))" ( (binary_expression "pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)" (binary_expression "pbVar2[3] == 0x38" (subscript_expression "pbVar2[3]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar2[4] == 0x30)" ( (binary_expression "pbVar2[4] == 0x30" (subscript_expression "pbVar2[4]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))" ( (parenthesized_expression "(pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0))))" ( (binary_expression "pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))" (binary_expression "pbVar2[5] == 0x33" (subscript_expression "pbVar2[5]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))" ( (parenthesized_expression "(pbVar2[6] == 0x30 && (pbVar2[7] == 0))" ( (binary_expression "pbVar2[6] == 0x30 && (pbVar2[7] == 0)" (binary_expression "pbVar2[6] == 0x30" (subscript_expression "pbVar2[6]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar2[7] == 0)" ( (binary_expression "pbVar2[7] == 0" (subscript_expression "pbVar2[7]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) ))) )) ))) )) (compound_statement "{\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }" { (if_statement "if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }" if (parenthesized_expression "(*(char *)piVar1 != '`')" ( (binary_expression "*(char *)piVar1 != '`'" (pointer_expression "*(char *)piVar1" * (cast_expression "(char *)piVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'`'" ' character ')) )) (compound_statement "{\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }" { (return_statement "return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);" return (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a84)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a84" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) ))) ;) })) (return_statement "return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);" return (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a80)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a80" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) ))) ;) })))) (if_statement "if (param_2 != 9) {\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }" if (parenthesized_expression "(param_2 != 9)" ( (binary_expression "param_2 != 9" identifier != number_literal) )) (compound_statement "{\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }" { (return_statement "return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);" return (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a78)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a78" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);" (assignment_expression "piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c)" identifier = (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a8c)" ( (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a8c" (pointer_expression "*(int *)(puVar3 + 0x16960)" * (cast_expression "(int *)(puVar3 + 0x16960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x16960)" ( (binary_expression "puVar3 + 0x16960" identifier + number_literal) )))) + number_literal) )))) ;) })) (return_statement "return piVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (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 (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != (char_literal ' character ')) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) })) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != (char_literal ' character ')) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) })) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) })) (return_statement return IDENT ;) })))
(function_definition "int * FUN_00013730(int *param_1,int param_2)\n\n{\n  int *piVar1;\n  byte *pbVar2;\n  undefined *puVar3;\n  \n  *param_1 = 0;\n  param_1[1] = 0;\n  param_1[2] = 0;\n  param_1[3] = 0;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0;\n  param_1[7] = 0;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  param_1[10] = 0;\n  param_1[0xb] = 0;\n  if (param_2 != 10) {\n    *param_1 = param_2;\n    return param_1;\n  }\n  puVar3 = PTR_abort_0002a1d4;\n  (*(code *)PTR_abort_0002a1d4)();\n  piVar1 = (int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5);\n  if (param_1 == piVar1) {\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (param_2 != 9) {\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }\n  return piVar1;\n}" (primitive_type "int") (pointer_declarator "* FUN_00013730(int *param_1,int param_2)" (* "*") (function_declarator "FUN_00013730(int *param_1,int param_2)" (identifier "FUN_00013730") (parameter_list "(int *param_1,int param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")")))) (compound_statement "{\n  int *piVar1;\n  byte *pbVar2;\n  undefined *puVar3;\n  \n  *param_1 = 0;\n  param_1[1] = 0;\n  param_1[2] = 0;\n  param_1[3] = 0;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0;\n  param_1[7] = 0;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  param_1[10] = 0;\n  param_1[0xb] = 0;\n  if (param_2 != 10) {\n    *param_1 = param_2;\n    return param_1;\n  }\n  puVar3 = PTR_abort_0002a1d4;\n  (*(code *)PTR_abort_0002a1d4)();\n  piVar1 = (int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5);\n  if (param_1 == piVar1) {\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (param_2 != 9) {\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }\n  return piVar1;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "byte *pbVar2;" (type_identifier "byte") (pointer_declarator "*pbVar2" (* "*") (identifier "pbVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2 != 10) {\n    *param_1 = param_2;\n    return param_1;\n  }" (if "if") (parenthesized_expression "(param_2 != 10)" (( "(") (binary_expression "param_2 != 10" (identifier "param_2") (!= "!=") (number_literal "10")) () ")")) (compound_statement "{\n    *param_1 = param_2;\n    return param_1;\n  }" ({ "{") (expression_statement "*param_1 = param_2;" (assignment_expression "*param_1 = param_2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "param_2")) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (expression_statement "puVar3 = PTR_abort_0002a1d4;" (assignment_expression "puVar3 = PTR_abort_0002a1d4" (identifier "puVar3") (= "=") (identifier "PTR_abort_0002a1d4")) (; ";")) (expression_statement "(*(code *)PTR_abort_0002a1d4)();" (call_expression "(*(code *)PTR_abort_0002a1d4)()" (parenthesized_expression "(*(code *)PTR_abort_0002a1d4)" (( "(") (pointer_expression "*(code *)PTR_abort_0002a1d4" (* "*") (cast_expression "(code *)PTR_abort_0002a1d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_abort_0002a1d4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar1 = (int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5);" (assignment_expression "piVar1 = (int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5)" (identifier "piVar1") (= "=") (cast_expression "(int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar3 + 0x16ae0))(0,param_1,5)" (parenthesized_expression "(**(code **)(puVar3 + 0x16ae0))" (( "(") (pointer_expression "**(code **)(puVar3 + 0x16ae0)" (* "*") (pointer_expression "*(code **)(puVar3 + 0x16ae0)" (* "*") (cast_expression "(code **)(puVar3 + 0x16ae0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + 0x16ae0)" (( "(") (binary_expression "puVar3 + 0x16ae0" (identifier "puVar3") (+ "+") (number_literal "0x16ae0")) () ")"))))) () ")")) (argument_list "(0,param_1,5)" (( "(") (number_literal "0") (, ",") (identifier "param_1") (, ",") (number_literal "5") () ")"))))) (; ";")) (if_statement "if (param_1 == piVar1) {\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (param_2 != 9) {\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }" (if "if") (parenthesized_expression "(param_1 == piVar1)" (( "(") (binary_expression "param_1 == piVar1" (identifier "param_1") (== "==") (identifier "piVar1")) () ")")) (compound_statement "{\n    pbVar2 = (byte *)locale_charset();\n    if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }\n    if (param_2 != 9) {\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }\n    piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);\n  }" ({ "{") (expression_statement "pbVar2 = (byte *)locale_charset();" (assignment_expression "pbVar2 = (byte *)locale_charset()" (identifier "pbVar2") (= "=") (cast_expression "(byte *)locale_charset()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "locale_charset()" (identifier "locale_charset") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((*pbVar2 & 0xdf) == 0x55) {\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }\n    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }" (if "if") (parenthesized_expression "((*pbVar2 & 0xdf) == 0x55)" (( "(") (binary_expression "(*pbVar2 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar2 & 0xdf)" (( "(") (binary_expression "*pbVar2 & 0xdf" (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x55")) () ")")) (compound_statement "{\n      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }\n    }" ({ "{") (if_statement "if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }" (if "if") (parenthesized_expression "(((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0))))" (( "(") (binary_expression "((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&\n         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))" (parenthesized_expression "((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d))" (( "(") (binary_expression "(((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)" (parenthesized_expression "(((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46))" (( "(") (binary_expression "((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)" (parenthesized_expression "((pbVar2[1] & 0xdf) == 0x54)" (( "(") (binary_expression "(pbVar2[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar2[1] & 0xdf)" (( "(") (binary_expression "pbVar2[1] & 0xdf" (subscript_expression "pbVar2[1]" (identifier "pbVar2") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x54")) () ")")) (&& "&&") (parenthesized_expression "((pbVar2[2] & 0xdf) == 0x46)" (( "(") (binary_expression "(pbVar2[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar2[2] & 0xdf)" (( "(") (binary_expression "pbVar2[2] & 0xdf" (subscript_expression "pbVar2[2]" (identifier "pbVar2") ([ "[") (number_literal "2") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x46")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar2[3] == 0x2d)" (( "(") (binary_expression "pbVar2[3] == 0x2d" (subscript_expression "pbVar2[3]" (identifier "pbVar2") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0x2d")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))" (( "(") (parenthesized_expression "(pbVar2[4] == 0x38 && (pbVar2[5] == 0))" (( "(") (binary_expression "pbVar2[4] == 0x38 && (pbVar2[5] == 0)" (binary_expression "pbVar2[4] == 0x38" (subscript_expression "pbVar2[4]" (identifier "pbVar2") ([ "[") (number_literal "4") (] "]")) (== "==") (number_literal "0x38")) (&& "&&") (parenthesized_expression "(pbVar2[5] == 0)" (( "(") (binary_expression "pbVar2[5] == 0" (subscript_expression "pbVar2[5]" (identifier "pbVar2") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);\n      }" ({ "{") (if_statement "if (*(char *)piVar1 != '`') {\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }" (if "if") (parenthesized_expression "(*(char *)piVar1 != '`')" (( "(") (binary_expression "*(char *)piVar1 != '`'" (pointer_expression "*(char *)piVar1" (* "*") (cast_expression "(char *)piVar1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar1"))) (!= "!=") (char_literal "'`'" (' "'") (character "`") (' "'"))) () ")")) (compound_statement "{\n          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);\n        }" ({ "{") (return_statement "return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);" (return "return") (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a88)" (( "(") (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a88" (pointer_expression "*(int *)(puVar3 + 0x16960)" (* "*") (cast_expression "(int *)(puVar3 + 0x16960)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0x16960)" (( "(") (binary_expression "puVar3 + 0x16960" (identifier "puVar3") (+ "+") (number_literal "0x16960")) () ")")))) (+ "+") (number_literal "-0x7a88")) () ")"))) (; ";")) (} "}"))) (return_statement "return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);" (return "return") (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a7c)" (( "(") (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a7c" (pointer_expression "*(int *)(puVar3 + 0x16960)" (* "*") (cast_expression "(int *)(puVar3 + 0x16960)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0x16960)" (( "(") (binary_expression "puVar3 + 0x16960" (identifier "puVar3") (+ "+") (number_literal "0x16960")) () ")")))) (+ "+") (number_literal "-0x7a7c")) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }" (else "else") (if_statement "if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }" (if "if") (parenthesized_expression "(((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0))))))))" (( "(") (binary_expression "((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))\n            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))" (parenthesized_expression "((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))" (( "(") (binary_expression "(((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31)" (parenthesized_expression "(((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42))" (( "(") (binary_expression "((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)" (parenthesized_expression "((*pbVar2 & 0xdf) == 0x47)" (( "(") (binary_expression "(*pbVar2 & 0xdf) == 0x47" (parenthesized_expression "(*pbVar2 & 0xdf)" (( "(") (binary_expression "*pbVar2 & 0xdf" (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x47")) () ")")) (&& "&&") (parenthesized_expression "((pbVar2[1] & 0xdf) == 0x42)" (( "(") (binary_expression "(pbVar2[1] & 0xdf) == 0x42" (parenthesized_expression "(pbVar2[1] & 0xdf)" (( "(") (binary_expression "pbVar2[1] & 0xdf" (subscript_expression "pbVar2[1]" (identifier "pbVar2") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x42")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar2[2] == 0x31)" (( "(") (binary_expression "pbVar2[2] == 0x31" (subscript_expression "pbVar2[2]" (identifier "pbVar2") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x31")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))" (( "(") (parenthesized_expression "((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0))))))" (( "(") (binary_expression "(pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&\n                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))" (parenthesized_expression "(pbVar2[3] == 0x38 && (pbVar2[4] == 0x30))" (( "(") (binary_expression "pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)" (binary_expression "pbVar2[3] == 0x38" (subscript_expression "pbVar2[3]" (identifier "pbVar2") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0x38")) (&& "&&") (parenthesized_expression "(pbVar2[4] == 0x30)" (( "(") (binary_expression "pbVar2[4] == 0x30" (subscript_expression "pbVar2[4]" (identifier "pbVar2") ([ "[") (number_literal "4") (] "]")) (== "==") (number_literal "0x30")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))" (( "(") (parenthesized_expression "(pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0))))" (( "(") (binary_expression "pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))" (binary_expression "pbVar2[5] == 0x33" (subscript_expression "pbVar2[5]" (identifier "pbVar2") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0x33")) (&& "&&") (parenthesized_expression "((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))" (( "(") (parenthesized_expression "(pbVar2[6] == 0x30 && (pbVar2[7] == 0))" (( "(") (binary_expression "pbVar2[6] == 0x30 && (pbVar2[7] == 0)" (binary_expression "pbVar2[6] == 0x30" (subscript_expression "pbVar2[6]" (identifier "pbVar2") ([ "[") (number_literal "6") (] "]")) (== "==") (number_literal "0x30")) (&& "&&") (parenthesized_expression "(pbVar2[7] == 0)" (( "(") (binary_expression "pbVar2[7] == 0" (subscript_expression "pbVar2[7]" (identifier "pbVar2") ([ "[") (number_literal "7") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);\n    }" ({ "{") (if_statement "if (*(char *)piVar1 != '`') {\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }" (if "if") (parenthesized_expression "(*(char *)piVar1 != '`')" (( "(") (binary_expression "*(char *)piVar1 != '`'" (pointer_expression "*(char *)piVar1" (* "*") (cast_expression "(char *)piVar1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar1"))) (!= "!=") (char_literal "'`'" (' "'") (character "`") (' "'"))) () ")")) (compound_statement "{\n        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);\n      }" ({ "{") (return_statement "return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);" (return "return") (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a84)" (( "(") (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a84" (pointer_expression "*(int *)(puVar3 + 0x16960)" (* "*") (cast_expression "(int *)(puVar3 + 0x16960)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0x16960)" (( "(") (binary_expression "puVar3 + 0x16960" (identifier "puVar3") (+ "+") (number_literal "0x16960")) () ")")))) (+ "+") (number_literal "-0x7a84")) () ")"))) (; ";")) (} "}"))) (return_statement "return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);" (return "return") (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a80)" (( "(") (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a80" (pointer_expression "*(int *)(puVar3 + 0x16960)" (* "*") (cast_expression "(int *)(puVar3 + 0x16960)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0x16960)" (( "(") (binary_expression "puVar3 + 0x16960" (identifier "puVar3") (+ "+") (number_literal "0x16960")) () ")")))) (+ "+") (number_literal "-0x7a80")) () ")"))) (; ";")) (} "}"))))) (if_statement "if (param_2 != 9) {\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }" (if "if") (parenthesized_expression "(param_2 != 9)" (( "(") (binary_expression "param_2 != 9" (identifier "param_2") (!= "!=") (number_literal "9")) () ")")) (compound_statement "{\n      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);\n    }" ({ "{") (return_statement "return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);" (return "return") (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a78)" (( "(") (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a78" (pointer_expression "*(int *)(puVar3 + 0x16960)" (* "*") (cast_expression "(int *)(puVar3 + 0x16960)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0x16960)" (( "(") (binary_expression "puVar3 + 0x16960" (identifier "puVar3") (+ "+") (number_literal "0x16960")) () ")")))) (+ "+") (number_literal "-0x7a78")) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);" (assignment_expression "piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c)" (identifier "piVar1") (= "=") (cast_expression "(int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar3 + 0x16960) + -0x7a8c)" (( "(") (binary_expression "*(int *)(puVar3 + 0x16960) + -0x7a8c" (pointer_expression "*(int *)(puVar3 + 0x16960)" (* "*") (cast_expression "(int *)(puVar3 + 0x16960)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0x16960)" (( "(") (binary_expression "puVar3 + 0x16960" (identifier "puVar3") (+ "+") (number_literal "0x16960")) () ")")))) (+ "+") (number_literal "-0x7a8c")) () ")")))) (; ";")) (} "}"))) (return_statement "return piVar1;" (return "return") (identifier "piVar1") (; ";")) (} "}")))

type_1 *
function_1(type_1 *var_4,type_2 var_1)

{
  type_1 *var_5;
  type_3 *pbVar2;
  type_1 *o;
  type_4 *var_3;
  
  var_4->var_1 = literal_quoting_style;
  var_4->flags = 0;
  var_4->quote_these_too[0] = 0;
  var_4->quote_these_too[1] = 0;
  var_4->quote_these_too[2] = 0;
  var_4->quote_these_too[3] = 0;
  var_4->quote_these_too[4] = 0;
  var_4->quote_these_too[5] = 0;
  var_4->quote_these_too[6] = 0;
  var_4->quote_these_too[7] = 0;
  var_4->left_quote = (char *)0x0;
  var_4->right_quote = (char *)0x0;
  if (var_1 != var_2) {
    var_4->var_1 = var_1;
    return var_4;
  }
  var_3 = PTR_abort_0002a1d4;
  (*(type_5 *)PTR_abort_0002a1d4)();
  var_5 = (type_1 *)(**(type_5 **)(var_3 + 0x16ae0))(0,var_4,5);
  if (var_4 == var_5) {
    pbVar2 = (type_3 *)var_6();
    if ((*pbVar2 & 0xdf) == 0x55) {
      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&
         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {
        if (*(type_6 *)&var_5->var_1 != 0x60) {
          return (type_1 *)(*(int *)(var_3 + 0x16960) + -0x7a88);
        }
        return (type_1 *)(*(int *)(var_3 + 0x16960) + -0x7a7c);
      }
    }
    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))
            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&
                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {
      if (*(type_6 *)&var_5->var_1 != 0x60) {
        return (type_1 *)(*(int *)(var_3 + 0x16960) + -0x7a84);
      }
      return (type_1 *)(*(int *)(var_3 + 0x16960) + -0x7a80);
    }
    if (var_1 != var_7) {
      return (type_1 *)(*(int *)(var_3 + 0x16960) + -0x7a78);
    }
    var_5 = (type_1 *)(*(int *)(var_3 + 0x16960) + -0x7a8c);
  }
  return var_5;
}


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

int * MASKED(int *param_1,int param_2)

{
  int *piVar1;
  byte *pbVar2;
  undefined *puVar3;
  
  *param_1 = 0;
  param_1[1] = 0;
  param_1[2] = 0;
  param_1[3] = 0;
  param_1[4] = 0;
  param_1[5] = 0;
  param_1[6] = 0;
  param_1[7] = 0;
  param_1[8] = 0;
  param_1[9] = 0;
  param_1[10] = 0;
  param_1[0xb] = 0;
  if (param_2 != 10) {
    *param_1 = param_2;
    return param_1;
  }
  puVar3 = PTR_abort_0002a1d4;
  (*(code *)PTR_abort_0002a1d4)();
  piVar1 = (int *)(**(code **)(puVar3 + 0x16ae0))(0,param_1,5);
  if (param_1 == piVar1) {
    pbVar2 = (byte *)locale_charset();
    if ((*pbVar2 & 0xdf) == 0x55) {
      if (((((pbVar2[1] & 0xdf) == 0x54) && ((pbVar2[2] & 0xdf) == 0x46)) && (pbVar2[3] == 0x2d)) &&
         ((pbVar2[4] == 0x38 && (pbVar2[5] == 0)))) {
        if (*(char *)piVar1 != '`') {
          return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a88);
        }
        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a7c);
      }
    }
    else if (((((*pbVar2 & 0xdf) == 0x47) && ((pbVar2[1] & 0xdf) == 0x42)) && (pbVar2[2] == 0x31))
            && (((pbVar2[3] == 0x38 && (pbVar2[4] == 0x30)) &&
                ((pbVar2[5] == 0x33 && ((pbVar2[6] == 0x30 && (pbVar2[7] == 0)))))))) {
      if (*(char *)piVar1 != '`') {
        return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a84);
      }
      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a80);
    }
    if (param_2 != 9) {
      return (int *)(*(int *)(puVar3 + 0x16960) + -0x7a78);
    }
    piVar1 = (int *)(*(int *)(puVar3 + 0x16960) + -0x7a8c);
  }
  return piVar1;
}

