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

bfd_boolean
tg_struct_field(void *p,char *name,bfd_vma bitpos,bfd_vma bitsize,debug_visibility visibility)

{
  char *pcVar1;
  bfd_boolean bVar2;
  char *pcVar3;
  
  pcVar1 = pop_type((pr_handle *)((int)p + 8));
  if ((pcVar1 != (char *)0x0) &&
     (bVar2 = tg_fix_visibility(*(pr_handle **)((int)p + 8),visibility), bVar2 != 0)) {
    if (*name == '\0') {
      return 1;
    }
    pcVar3 = visibility_name(visibility);
                    /* WARNING: Load size is inaccurate */
    fprintf(*p,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",name,
            *(undefined4 *)((int)p + 0x10),pcVar1,*(undefined4 *)(*(int *)((int)p + 8) + 0x10),
            *(undefined4 *)(*(int *)((int)p + 8) + 4),pcVar3);
    return 1;
  }
  return 0;
}



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

undefined4 FUN_00037290(undefined4 *param_1,char *param_2)

{
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  
  iVar1 = FUN_00036d90();
  if ((iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0)) {
    if (*param_2 == '\0') {
      return 1;
    }
    uVar3 = FUN_00036c20();
    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],
            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);
    return 1;
  }
  return 0;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000153d0
ADD EBX,0x3bd67
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0x20]
LEA EAX,[ESI + 0x8]
CALL 0x00036d90
TEST EAX,EAX
JZ 0x00037310
MOV EDI,EAX
MOV EDX,dword ptr [ESP + 0x38]
MOV EAX,dword ptr [ESI + 0x8]
CALL 0x00037220
TEST EAX,EAX
JZ 0x00037310
MOV EAX,dword ptr [ESP + 0x24]
MOV EBP,0x1
CMP byte ptr [EAX],0x0
JZ 0x00037312
MOV EAX,dword ptr [ESP + 0x38]
CALL 0x00036c20
MOV EDX,dword ptr [ESI + 0x8]
PUSH EAX
LEA EAX,[EBX + 0xfffe4528]
PUSH dword ptr [EDX + 0x4]
PUSH dword ptr [EDX + 0x10]
PUSH EDI
PUSH dword ptr [ESI + 0x10]
PUSH dword ptr [ESP + 0x38]
PUSH EAX
PUSH dword ptr [ESI]
CALL 0x00014878
ADD ESP,0x20
MOV EAX,EBP
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
XOR EBP,EBP
ADD ESP,0xc
MOV EAX,EBP
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_00037290(undefined4 *param_1,char *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  iVar1 = FUN_00036d90();\n  if ((iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0)) {\n    if (*param_2 == '\0') {\n      return 1;\n    }\n    uVar3 = FUN_00036c20();\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);\n    return 1;\n  }\n  return 0;\n}\n\n" comment (function_definition "undefined4 FUN_00037290(undefined4 *param_1,char *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  iVar1 = FUN_00036d90();\n  if ((iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0)) {\n    if (*param_2 == '\0') {\n      return 1;\n    }\n    uVar3 = FUN_00036c20();\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);\n    return 1;\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_00037290(undefined4 *param_1,char *param_2)" identifier (parameter_list "(undefined4 *param_1,char *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  iVar1 = FUN_00036d90();\n  if ((iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0)) {\n    if (*param_2 == '\0') {\n      return 1;\n    }\n    uVar3 = FUN_00036c20();\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);\n    return 1;\n  }\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (expression_statement "iVar1 = FUN_00036d90();" (assignment_expression "iVar1 = FUN_00036d90()" identifier = (call_expression "FUN_00036d90()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0)) {\n    if (*param_2 == '\0') {\n      return 1;\n    }\n    uVar3 = FUN_00036c20();\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);\n    return 1;\n  }" if (parenthesized_expression "((iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0))" ( (binary_expression "(iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar2 = FUN_00037220(), iVar2 != 0)" ( (comma_expression "iVar2 = FUN_00037220(), iVar2 != 0" (assignment_expression "iVar2 = FUN_00037220()" identifier = (call_expression "FUN_00037220()" identifier (argument_list "()" ( )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    if (*param_2 == '\0') {\n      return 1;\n    }\n    uVar3 = FUN_00036c20();\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);\n    return 1;\n  }" { (if_statement "if (*param_2 == '\0') {\n      return 1;\n    }" if (parenthesized_expression "(*param_2 == '\0')" ( (binary_expression "*param_2 == '\0'" (pointer_expression "*param_2" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar3 = FUN_00036c20();" (assignment_expression "uVar3 = FUN_00036c20()" identifier = (call_expression "FUN_00036c20()" identifier (argument_list "()" ( )))) ;) (expression_statement "fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);" (call_expression "fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3)" identifier (argument_list "((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3)" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier , (subscript_expression "param_1[4]" identifier [ number_literal ]) , identifier , (pointer_expression "*(undefined4 *)(param_1[2] + 0x10)" * (cast_expression "(undefined4 *)(param_1[2] + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x10)" ( (binary_expression "param_1[2] + 0x10" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1[2] + 4)" * (cast_expression "(undefined4 *)(param_1[2] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 4)" ( (binary_expression "param_1[2] + 4" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nbfd_boolean\ntg_struct_field(void *p,char *name,bfd_vma bitpos,bfd_vma bitsize,debug_visibility visibility)\n\n{\n  char *pcVar1;\n  bfd_boolean bVar2;\n  char *pcVar3;\n  \n  pcVar1 = pop_type((pr_handle *)((int)p + 8));\n  if ((pcVar1 != (char *)0x0) &&\n     (bVar2 = tg_fix_visibility(*(pr_handle **)((int)p + 8),visibility), bVar2 != 0)) {\n    if (*name == '\0') {\n      return 1;\n    }\n    pcVar3 = visibility_name(visibility);\n                    /* WARNING: Load size is inaccurate */\n    fprintf(*p,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",name,\n            *(undefined4 *)((int)p + 0x10),pcVar1,*(undefined4 *)(*(int *)((int)p + 8) + 0x10),\n            *(undefined4 *)(*(int *)((int)p + 8) + 4),pcVar3);\n    return 1;\n  }\n  return 0;\n}\n\n" comment comment (function_definition "bfd_boolean\ntg_struct_field(void *p,char *name,bfd_vma bitpos,bfd_vma bitsize,debug_visibility visibility)\n\n{\n  char *pcVar1;\n  bfd_boolean bVar2;\n  char *pcVar3;\n  \n  pcVar1 = pop_type((pr_handle *)((int)p + 8));\n  if ((pcVar1 != (char *)0x0) &&\n     (bVar2 = tg_fix_visibility(*(pr_handle **)((int)p + 8),visibility), bVar2 != 0)) {\n    if (*name == '\0') {\n      return 1;\n    }\n    pcVar3 = visibility_name(visibility);\n                    /* WARNING: Load size is inaccurate */\n    fprintf(*p,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",name,\n            *(undefined4 *)((int)p + 0x10),pcVar1,*(undefined4 *)(*(int *)((int)p + 8) + 0x10),\n            *(undefined4 *)(*(int *)((int)p + 8) + 4),pcVar3);\n    return 1;\n  }\n  return 0;\n}" type_identifier (function_declarator "tg_struct_field(void *p,char *name,bfd_vma bitpos,bfd_vma bitsize,debug_visibility visibility)" identifier (parameter_list "(void *p,char *name,bfd_vma bitpos,bfd_vma bitsize,debug_visibility visibility)" ( (parameter_declaration "void *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "bfd_vma bitpos" type_identifier identifier) , (parameter_declaration "bfd_vma bitsize" type_identifier identifier) , (parameter_declaration "debug_visibility visibility" type_identifier identifier) ))) (compound_statement "{\n  char *pcVar1;\n  bfd_boolean bVar2;\n  char *pcVar3;\n  \n  pcVar1 = pop_type((pr_handle *)((int)p + 8));\n  if ((pcVar1 != (char *)0x0) &&\n     (bVar2 = tg_fix_visibility(*(pr_handle **)((int)p + 8),visibility), bVar2 != 0)) {\n    if (*name == '\0') {\n      return 1;\n    }\n    pcVar3 = visibility_name(visibility);\n                    /* WARNING: Load size is inaccurate */\n    fprintf(*p,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",name,\n            *(undefined4 *)((int)p + 0x10),pcVar1,*(undefined4 *)(*(int *)((int)p + 8) + 0x10),\n            *(undefined4 *)(*(int *)((int)p + 8) + 4),pcVar3);\n    return 1;\n  }\n  return 0;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "bfd_boolean bVar2;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (expression_statement "pcVar1 = pop_type((pr_handle *)((int)p + 8));" (assignment_expression "pcVar1 = pop_type((pr_handle *)((int)p + 8))" identifier = (call_expression "pop_type((pr_handle *)((int)p + 8))" identifier (argument_list "((pr_handle *)((int)p + 8))" ( (cast_expression "(pr_handle *)((int)p + 8)" ( (type_descriptor "pr_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 8)" ( (binary_expression "(int)p + 8" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )))) ;) (if_statement "if ((pcVar1 != (char *)0x0) &&\n     (bVar2 = tg_fix_visibility(*(pr_handle **)((int)p + 8),visibility), bVar2 != 0)) {\n    if (*name == '\0') {\n      return 1;\n    }\n    pcVar3 = visibility_name(visibility);\n                    /* WARNING: Load size is inaccurate */\n    fprintf(*p,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",name,\n            *(undefined4 *)((int)p + 0x10),pcVar1,*(undefined4 *)(*(int *)((int)p + 8) + 0x10),\n            *(undefined4 *)(*(int *)((int)p + 8) + 4),pcVar3);\n    return 1;\n  }" if (parenthesized_expression "((pcVar1 != (char *)0x0) &&\n     (bVar2 = tg_fix_visibility(*(pr_handle **)((int)p + 8),visibility), bVar2 != 0))" ( (binary_expression "(pcVar1 != (char *)0x0) &&\n     (bVar2 = tg_fix_visibility(*(pr_handle **)((int)p + 8),visibility), bVar2 != 0)" (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar2 = tg_fix_visibility(*(pr_handle **)((int)p + 8),visibility), bVar2 != 0)" ( (comma_expression "bVar2 = tg_fix_visibility(*(pr_handle **)((int)p + 8),visibility), bVar2 != 0" (assignment_expression "bVar2 = tg_fix_visibility(*(pr_handle **)((int)p + 8),visibility)" identifier = (call_expression "tg_fix_visibility(*(pr_handle **)((int)p + 8),visibility)" identifier (argument_list "(*(pr_handle **)((int)p + 8),visibility)" ( (pointer_expression "*(pr_handle **)((int)p + 8)" * (cast_expression "(pr_handle **)((int)p + 8)" ( (type_descriptor "pr_handle **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)p + 8)" ( (binary_expression "(int)p + 8" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , identifier )))) , (binary_expression "bVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    if (*name == '\0') {\n      return 1;\n    }\n    pcVar3 = visibility_name(visibility);\n                    /* WARNING: Load size is inaccurate */\n    fprintf(*p,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",name,\n            *(undefined4 *)((int)p + 0x10),pcVar1,*(undefined4 *)(*(int *)((int)p + 8) + 0x10),\n            *(undefined4 *)(*(int *)((int)p + 8) + 4),pcVar3);\n    return 1;\n  }" { (if_statement "if (*name == '\0') {\n      return 1;\n    }" if (parenthesized_expression "(*name == '\0')" ( (binary_expression "*name == '\0'" (pointer_expression "*name" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar3 = visibility_name(visibility);" (assignment_expression "pcVar3 = visibility_name(visibility)" identifier = (call_expression "visibility_name(visibility)" identifier (argument_list "(visibility)" ( identifier )))) ;) comment (expression_statement "fprintf(*p,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",name,\n            *(undefined4 *)((int)p + 0x10),pcVar1,*(undefined4 *)(*(int *)((int)p + 8) + 0x10),\n            *(undefined4 *)(*(int *)((int)p + 8) + 4),pcVar3);" (call_expression "fprintf(*p,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",name,\n            *(undefined4 *)((int)p + 0x10),pcVar1,*(undefined4 *)(*(int *)((int)p + 8) + 0x10),\n            *(undefined4 *)(*(int *)((int)p + 8) + 4),pcVar3)" identifier (argument_list "(*p,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",name,\n            *(undefined4 *)((int)p + 0x10),pcVar1,*(undefined4 *)(*(int *)((int)p + 8) + 0x10),\n            *(undefined4 *)(*(int *)((int)p + 8) + 4),pcVar3)" ( (pointer_expression "*p" * identifier) , (string_literal ""%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier , (pointer_expression "*(undefined4 *)((int)p + 0x10)" * (cast_expression "(undefined4 *)((int)p + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 0x10)" ( (binary_expression "(int)p + 0x10" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(*(int *)((int)p + 8) + 0x10)" * (cast_expression "(undefined4 *)(*(int *)((int)p + 8) + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)p + 8) + 0x10)" ( (binary_expression "*(int *)((int)p + 8) + 0x10" (pointer_expression "*(int *)((int)p + 8)" * (cast_expression "(int *)((int)p + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 8)" ( (binary_expression "(int)p + 8" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(*(int *)((int)p + 8) + 4)" * (cast_expression "(undefined4 *)(*(int *)((int)p + 8) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)p + 8) + 4)" ( (binary_expression "*(int *)((int)p + 8) + 4" (pointer_expression "*(int *)((int)p + 8)" * (cast_expression "(int *)((int)p + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 8)" ( (binary_expression "(int)p + 8" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined4 FUN_00037290(undefined4 *param_1,char *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  iVar1 = FUN_00036d90();\n  if ((iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0)) {\n    if (*param_2 == '\0') {\n      return 1;\n    }\n    uVar3 = FUN_00036c20();\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);\n    return 1;\n  }\n  return 0;\n}\n\n" (function_definition "undefined4 FUN_00037290(undefined4 *param_1,char *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  iVar1 = FUN_00036d90();\n  if ((iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0)) {\n    if (*param_2 == '\0') {\n      return 1;\n    }\n    uVar3 = FUN_00036c20();\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);\n    return 1;\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_00037290(undefined4 *param_1,char *param_2)" identifier (parameter_list "(undefined4 *param_1,char *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  iVar1 = FUN_00036d90();\n  if ((iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0)) {\n    if (*param_2 == '\0') {\n      return 1;\n    }\n    uVar3 = FUN_00036c20();\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);\n    return 1;\n  }\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (expression_statement "iVar1 = FUN_00036d90();" (assignment_expression "iVar1 = FUN_00036d90()" identifier = (call_expression "FUN_00036d90()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0)) {\n    if (*param_2 == '\0') {\n      return 1;\n    }\n    uVar3 = FUN_00036c20();\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);\n    return 1;\n  }" if (parenthesized_expression "((iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0))" ( (binary_expression "(iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar2 = FUN_00037220(), iVar2 != 0)" ( (comma_expression "iVar2 = FUN_00037220(), iVar2 != 0" (assignment_expression "iVar2 = FUN_00037220()" identifier = (call_expression "FUN_00037220()" identifier (argument_list "()" ( )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    if (*param_2 == '\0') {\n      return 1;\n    }\n    uVar3 = FUN_00036c20();\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);\n    return 1;\n  }" { (if_statement "if (*param_2 == '\0') {\n      return 1;\n    }" if (parenthesized_expression "(*param_2 == '\0')" ( (binary_expression "*param_2 == '\0'" (pointer_expression "*param_2" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar3 = FUN_00036c20();" (assignment_expression "uVar3 = FUN_00036c20()" identifier = (call_expression "FUN_00036c20()" identifier (argument_list "()" ( )))) ;) (expression_statement "fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);" (call_expression "fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3)" identifier (argument_list "((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3)" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier , (subscript_expression "param_1[4]" identifier [ number_literal ]) , identifier , (pointer_expression "*(undefined4 *)(param_1[2] + 0x10)" * (cast_expression "(undefined4 *)(param_1[2] + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x10)" ( (binary_expression "param_1[2] + 0x10" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1[2] + 4)" * (cast_expression "(undefined4 *)(param_1[2] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 4)" ( (binary_expression "param_1[2] + 4" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , IDENT , (subscript_expression IDENT [ LIT ]) , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) , IDENT ))) ;) (return_statement return LIT ;) })) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_00037290(undefined4 *param_1,char *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  iVar1 = FUN_00036d90();\n  if ((iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0)) {\n    if (*param_2 == '\0') {\n      return 1;\n    }\n    uVar3 = FUN_00036c20();\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);\n    return 1;\n  }\n  return 0;\n}" (type_identifier "undefined4") (function_declarator "FUN_00037290(undefined4 *param_1,char *param_2)" (identifier "FUN_00037290") (parameter_list "(undefined4 *param_1,char *param_2)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  \n  iVar1 = FUN_00036d90();\n  if ((iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0)) {\n    if (*param_2 == '\0') {\n      return 1;\n    }\n    uVar3 = FUN_00036c20();\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);\n    return 1;\n  }\n  return 0;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (expression_statement "iVar1 = FUN_00036d90();" (assignment_expression "iVar1 = FUN_00036d90()" (identifier "iVar1") (= "=") (call_expression "FUN_00036d90()" (identifier "FUN_00036d90") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0)) {\n    if (*param_2 == '\0') {\n      return 1;\n    }\n    uVar3 = FUN_00036c20();\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);\n    return 1;\n  }" (if "if") (parenthesized_expression "((iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0))" (( "(") (binary_expression "(iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0)" (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = FUN_00037220(), iVar2 != 0)" (( "(") (comma_expression "iVar2 = FUN_00037220(), iVar2 != 0" (assignment_expression "iVar2 = FUN_00037220()" (identifier "iVar2") (= "=") (call_expression "FUN_00037220()" (identifier "FUN_00037220") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    if (*param_2 == '\0') {\n      return 1;\n    }\n    uVar3 = FUN_00036c20();\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);\n    return 1;\n  }" ({ "{") (if_statement "if (*param_2 == '\0') {\n      return 1;\n    }" (if "if") (parenthesized_expression "(*param_2 == '\0')" (( "(") (binary_expression "*param_2 == '\0'" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar3 = FUN_00036c20();" (assignment_expression "uVar3 = FUN_00036c20()" (identifier "uVar3") (= "=") (call_expression "FUN_00036c20()" (identifier "FUN_00036c20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);" (call_expression "fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3)" (identifier "fprintf") (argument_list "((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],\n            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3)" (( "(") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (, ",") (string_literal ""%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n"" (" """) (string_content "%s") (escape_sequence "\t") (string_content "%s") (escape_sequence "\t") (string_content "0;") (escape_sequence "\"") (escape_sequence "\t") (string_content "kind:m") (escape_sequence "\t") (string_content "type:%s") (escape_sequence "\t") (string_content "%s:%s") (escape_sequence "\t") (string_content "access:%s") (escape_sequence "\n") (" """)) (, ",") (identifier "param_2") (, ",") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (, ",") (identifier "iVar1") (, ",") (pointer_expression "*(undefined4 *)(param_1[2] + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_1[2] + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + 0x10)" (( "(") (binary_expression "param_1[2] + 0x10" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1[2] + 4)" (* "*") (cast_expression "(undefined4 *)(param_1[2] + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + 4)" (( "(") (binary_expression "param_1[2] + 4" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "uVar3") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

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

type_1
function_1(void *p,char *name,type_2 bitpos,type_2 bitsize,type_3 visibility)

{
  char *var_2;
  type_1 var_4;
  char *pcVar3;
  
  var_2 = var_1((type_4 *)((int)p + 8));
  if ((var_2 != (char *)0x0) &&
     (var_4 = var_3(*(type_4 **)((int)p + 8),visibility), var_4 != 0)) {
    if (*name == '\0') {
      return 1;
    }
    pcVar3 = var_5(visibility);
                    /* WARNING: Load size is inaccurate */
    var_6(*p,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",name,
            *(type_5 *)((int)p + 0x10),var_2,*(type_5 *)(*(int *)((int)p + 8) + 0x10),
            *(type_5 *)(*(int *)((int)p + 8) + 4),pcVar3);
    return 1;
  }
  return 0;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence)) (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (identifier)))) (return_statement (number_literal)))) (return_statement (number_literal)))))

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

undefined4 MASKED(undefined4 *param_1,char *param_2)

{
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  
  iVar1 = FUN_00036d90();
  if ((iVar1 != 0) && (iVar2 = FUN_00037220(), iVar2 != 0)) {
    if (*param_2 == '\0') {
      return 1;
    }
    uVar3 = FUN_00036c20();
    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",param_2,param_1[4],
            iVar1,*(undefined4 *)(param_1[2] + 0x10),*(undefined4 *)(param_1[2] + 4),uVar3);
    return 1;
  }
  return 0;
}

