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

bfd_boolean pr_start_struct_type(void *p,char *tag,uint id,bfd_boolean structp,uint size)

{
  pr_handle *info;
  int iVar1;
  bfd_boolean bVar2;
  char *pcVar3;
  uint uVar4;
  char idbuf [20];
  
  *(int *)((int)p + 4) = *(int *)((int)p + 4) + 2;
  info = (pr_handle *)((int)p + 8);
  pcVar3 = "struct ";
  if (structp == 0) {
    pcVar3 = "union ";
  }
  bVar2 = push_type(info,pcVar3);
  if (bVar2 == 0) {
    return 0;
  }
  if (tag == (char *)0x0) {
    sprintf(idbuf,"%%anon%u",id);
    bVar2 = append_type(info,idbuf);
    if (bVar2 == 0) {
      return 0;
    }
    bVar2 = append_type(info," {");
    if (bVar2 == 0) {
      return 0;
    }
    if (size == 0) goto LAB_00037555;
    bVar2 = append_type(info," /*");
    if (bVar2 == 0) {
      return 0;
    }
    pcVar3 = " size %u";
    id = size;
  }
  else {
    bVar2 = append_type(info,tag);
    if (bVar2 == 0) {
      return 0;
    }
    bVar2 = append_type(info," {");
    if (bVar2 == 0) {
      return 0;
    }
    bVar2 = append_type(info," /*");
    if (bVar2 == 0) {
      return 0;
    }
    if (size != 0) {
      sprintf(idbuf," size %u",size);
      bVar2 = append_type(info,idbuf);
      if (bVar2 == 0) {
        return 0;
      }
    }
    pcVar3 = " id %u";
  }
  sprintf(idbuf,pcVar3,id);
  bVar2 = append_type(info,idbuf);
  if (bVar2 == 0) {
    return 0;
  }
  bVar2 = append_type(info," */");
  if (bVar2 == 0) {
    return 0;
  }
LAB_00037555:
  bVar2 = append_type(info,"\n");
  if (bVar2 == 0) {
    return 0;
  }
  iVar1 = *(int *)((int)p + 4);
  uVar4 = 0;
  *(undefined4 *)(*(int *)((int)p + 8) + 8) = 0;
  if (iVar1 != 0) {
    do {
      bVar2 = append_type(info," ");
      if (bVar2 == 0) {
        return 0;
      }
      uVar4 = uVar4 + 1;
    } while (uVar4 < *(uint *)((int)p + 4));
  }
  return 1;
}



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

undefined4 FUN_00037490(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)

{
  int iVar1;
  char *__format;
  uint uVar2;
  char local_3a [38];
  undefined4 uStack_14;
  
  uStack_14 = 0x37499;
  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 2;
  iVar1 = FUN_00037020();
  if (iVar1 == 0) {
    return 0;
  }
  if (param_2 == 0) {
    sprintf(local_3a,"%%anon%u",param_3);
    iVar1 = FUN_00035640();
    if (iVar1 == 0) {
      return 0;
    }
    iVar1 = FUN_00035640();
    if (iVar1 == 0) {
      return 0;
    }
    if (param_5 == 0) goto LAB_00037555;
    iVar1 = FUN_00035640();
    if (iVar1 == 0) {
      return 0;
    }
    __format = " size %u";
    param_3 = param_5;
  }
  else {
    iVar1 = FUN_00035640();
    if (iVar1 == 0) {
      return 0;
    }
    iVar1 = FUN_00035640();
    if (iVar1 == 0) {
      return 0;
    }
    iVar1 = FUN_00035640();
    if (iVar1 == 0) {
      return 0;
    }
    if (param_5 != 0) {
      sprintf(local_3a," size %u",param_5);
      iVar1 = FUN_00035640();
      if (iVar1 == 0) {
        return 0;
      }
    }
    __format = " id %u";
  }
  sprintf(local_3a,__format,param_3);
  iVar1 = FUN_00035640();
  if (iVar1 == 0) {
    return 0;
  }
  iVar1 = FUN_00035640();
  if (iVar1 == 0) {
    return 0;
  }
LAB_00037555:
  iVar1 = FUN_00035640();
  if (iVar1 == 0) {
    return 0;
  }
  iVar1 = *(int *)(param_1 + 4);
  uVar2 = 0;
  *(undefined4 *)(*(int *)(param_1 + 8) + 8) = 0;
  if (iVar1 != 0) {
    do {
      iVar1 = FUN_00035640();
      if (iVar1 == 0) {
        return 0;
      }
      uVar2 = uVar2 + 1;
    } while (uVar2 < *(uint *)(param_1 + 4));
  }
  return 1;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000143a0
ADD EBX,0x38b67
SUB ESP,0x2c
MOV ESI,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [ESP + 0x4c]
MOV EBP,dword ptr [ESP + 0x44]
ADD dword ptr [ESI + 0x4],0x2
TEST EAX,EAX
LEA EDI,[ESI + 0x8]
LEA EAX,[EBX + 0xfffe42ee]
LEA EDX,[EBX + 0xfffe42e0]
CMOVZ EDX,EAX
MOV EAX,EDI
CALL 0x00037020
TEST EAX,EAX
JZ 0x00037500
TEST EBP,EBP
JZ 0x00037510
MOV EDX,EBP
MOV EAX,EDI
CALL 0x00035640
TEST EAX,EAX
JZ 0x00037500
LEA EDX,[EBX + 0xfffe430b]
MOV EAX,EDI
CALL 0x00035640
TEST EAX,EAX
JNZ 0x000375b0
LEA ESI,[ESI]
NOP
XOR EAX,EAX
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe42f5]
PUSH dword ptr [ESP + 0x4c]
PUSH EAX
LEA EBP,[ESP + 0xe]
PUSH EBP
CALL 0x000136c0
MOV EDX,EBP
MOV EAX,EDI
CALL 0x00035640
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00037502
LEA EDX,[EBX + 0xfffe430b]
MOV EAX,EDI
CALL 0x00035640
TEST EAX,EAX
JZ 0x00037500
MOV EAX,dword ptr [ESP + 0x50]
TEST EAX,EAX
JNZ 0x00037659
LEA EDX,[EBX + 0xfffe0850]
MOV EAX,EDI
CALL 0x00035640
TEST EAX,EAX
JZ 0x00037500
MOV EAX,dword ptr [ESI + 0x8]
MOV EDX,dword ptr [ESI + 0x4]
XOR EBP,EBP
LEA EBX,[EBX + 0xfffdc64f]
MOV dword ptr [EAX + 0x8],0x0
TEST EDX,EDX
JNZ 0x00037594
JMP 0x00037618
ADD EBP,0x1
CMP EBP,dword ptr [ESI + 0x4]
JNC 0x00037618
MOV EDX,EBX
MOV EAX,EDI
CALL 0x00035640
TEST EAX,EAX
JNZ 0x00037588
JMP 0x00037500
LEA EDX,[EBX + 0xfffe430e]
MOV EAX,EDI
CALL 0x00035640
TEST EAX,EAX
JZ 0x00037500
MOV ECX,dword ptr [ESP + 0x50]
LEA EBP,[ESP + 0x2]
TEST ECX,ECX
JNZ 0x00037628
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe4328]
PUSH dword ptr [ESP + 0x4c]
PUSH EAX
PUSH EBP
CALL 0x000136c0
MOV EDX,EBP
MOV EAX,EDI
CALL 0x00035640
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00037500
LEA EDX,[EBX + 0xfffe440f]
MOV EAX,EDI
CALL 0x00035640
TEST EAX,EAX
JNZ 0x00037555
JMP 0x00037500
MOV EAX,0x1
JMP 0x00037502
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe432f]
PUSH dword ptr [ESP + 0x54]
PUSH EAX
LEA EBP,[ESP + 0xe]
PUSH EBP
CALL 0x000136c0
MOV EDX,EBP
MOV EAX,EDI
CALL 0x00035640
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00037500
JMP 0x000375d1
LEA EDX,[EBX + 0xfffe430e]
MOV EAX,EDI
CALL 0x00035640
TEST EAX,EAX
JZ 0x00037500
PUSH EAX
LEA EAX,[EBX + 0xfffe432f]
PUSH dword ptr [ESP + 0x54]
JMP 0x000375de
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_00037490(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)\n\n{\n  int iVar1;\n  char *__format;\n  uint uVar2;\n  char local_3a [38];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x37499;\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 2;\n  iVar1 = FUN_00037020();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  if (param_2 == 0) {\n    sprintf(local_3a,"%%anon%u",param_3);\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 == 0) goto LAB_00037555;\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    __format = " size %u";\n    param_3 = param_5;\n  }\n  else {\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }\n    __format = " id %u";\n  }\n  sprintf(local_3a,__format,param_3);\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\nLAB_00037555:\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  iVar1 = *(int *)(param_1 + 4);\n  uVar2 = 0;\n  *(undefined4 *)(*(int *)(param_1 + 8) + 8) = 0;\n  if (iVar1 != 0) {\n    do {\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    } while (uVar2 < *(uint *)(param_1 + 4));\n  }\n  return 1;\n}\n\n" comment (function_definition "undefined4 FUN_00037490(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)\n\n{\n  int iVar1;\n  char *__format;\n  uint uVar2;\n  char local_3a [38];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x37499;\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 2;\n  iVar1 = FUN_00037020();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  if (param_2 == 0) {\n    sprintf(local_3a,"%%anon%u",param_3);\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 == 0) goto LAB_00037555;\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    __format = " size %u";\n    param_3 = param_5;\n  }\n  else {\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }\n    __format = " id %u";\n  }\n  sprintf(local_3a,__format,param_3);\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\nLAB_00037555:\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  iVar1 = *(int *)(param_1 + 4);\n  uVar2 = 0;\n  *(undefined4 *)(*(int *)(param_1 + 8) + 8) = 0;\n  if (iVar1 != 0) {\n    do {\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    } while (uVar2 < *(uint *)(param_1 + 4));\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_00037490(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)" identifier (parameter_list "(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  char *__format;\n  uint uVar2;\n  char local_3a [38];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x37499;\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 2;\n  iVar1 = FUN_00037020();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  if (param_2 == 0) {\n    sprintf(local_3a,"%%anon%u",param_3);\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 == 0) goto LAB_00037555;\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    __format = " size %u";\n    param_3 = param_5;\n  }\n  else {\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }\n    __format = " id %u";\n  }\n  sprintf(local_3a,__format,param_3);\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\nLAB_00037555:\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  iVar1 = *(int *)(param_1 + 4);\n  uVar2 = 0;\n  *(undefined4 *)(*(int *)(param_1 + 8) + 8) = 0;\n  if (iVar1 != 0) {\n    do {\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    } while (uVar2 < *(uint *)(param_1 + 4));\n  }\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char local_3a [38];" primitive_type (array_declarator "local_3a [38]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x37499;" (assignment_expression "uStack_14 = 0x37499" identifier = number_literal) ;) (expression_statement "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 2;" (assignment_expression "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 2" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 4) + 2" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar1 = FUN_00037020();" (assignment_expression "iVar1 = FUN_00037020()" identifier = (call_expression "FUN_00037020()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (param_2 == 0) {\n    sprintf(local_3a,"%%anon%u",param_3);\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 == 0) goto LAB_00037555;\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    __format = " size %u";\n    param_3 = param_5;\n  }\n  else {\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }\n    __format = " id %u";\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    sprintf(local_3a,"%%anon%u",param_3);\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 == 0) goto LAB_00037555;\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    __format = " size %u";\n    param_3 = param_5;\n  }" { (expression_statement "sprintf(local_3a,"%%anon%u",param_3);" (call_expression "sprintf(local_3a,"%%anon%u",param_3)" identifier (argument_list "(local_3a,"%%anon%u",param_3)" ( identifier , (string_literal ""%%anon%u"" " string_content ") , identifier ))) ;) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (param_5 == 0) goto LAB_00037555;" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00037555;" goto statement_identifier ;)) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "__format = " size %u";" (assignment_expression "__format = " size %u"" identifier = (string_literal "" size %u"" " string_content ")) ;) (expression_statement "param_3 = param_5;" (assignment_expression "param_3 = param_5" identifier = identifier) ;) }) (else_clause "else {\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }\n    __format = " id %u";\n  }" else (compound_statement "{\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }\n    __format = " id %u";\n  }" { (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }" { (expression_statement "sprintf(local_3a," size %u",param_5);" (call_expression "sprintf(local_3a," size %u",param_5)" identifier (argument_list "(local_3a," size %u",param_5)" ( identifier , (string_literal "" size %u"" " string_content ") , identifier ))) ;) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "__format = " id %u";" (assignment_expression "__format = " id %u"" identifier = (string_literal "" id %u"" " string_content ")) ;) }))) (expression_statement "sprintf(local_3a,__format,param_3);" (call_expression "sprintf(local_3a,__format,param_3)" identifier (argument_list "(local_3a,__format,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00037555:\n  iVar1 = FUN_00035640();" statement_identifier : (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar1 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar1 = *(int *)(param_1 + 4);" (assignment_expression "iVar1 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(*(int *)(param_1 + 8) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_1 + 8) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 8) + 8)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 8) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 8) + 8)" ( (binary_expression "*(int *)(param_1 + 8) + 8" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (if_statement "if (iVar1 != 0) {\n    do {\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    } while (uVar2 < *(uint *)(param_1 + 4));\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    } while (uVar2 < *(uint *)(param_1 + 4));\n  }" { (do_statement "do {\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    } while (uVar2 < *(uint *)(param_1 + 4));" do (compound_statement "{\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    }" { (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar2 < *(uint *)(param_1 + 4))" ( (binary_expression "uVar2 < *(uint *)(param_1 + 4)" identifier < (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) )) ;) })) (return_statement "return 1;" 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 pr_start_struct_type(void *p,char *tag,uint id,bfd_boolean structp,uint size)\n\n{\n  pr_handle *info;\n  int iVar1;\n  bfd_boolean bVar2;\n  char *pcVar3;\n  uint uVar4;\n  char idbuf [20];\n  \n  *(int *)((int)p + 4) = *(int *)((int)p + 4) + 2;\n  info = (pr_handle *)((int)p + 8);\n  pcVar3 = "struct ";\n  if (structp == 0) {\n    pcVar3 = "union ";\n  }\n  bVar2 = push_type(info,pcVar3);\n  if (bVar2 == 0) {\n    return 0;\n  }\n  if (tag == (char *)0x0) {\n    sprintf(idbuf,"%%anon%u",id);\n    bVar2 = append_type(info,idbuf);\n    if (bVar2 == 0) {\n      return 0;\n    }\n    bVar2 = append_type(info," {");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    if (size == 0) goto LAB_00037555;\n    bVar2 = append_type(info," /*");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    pcVar3 = " size %u";\n    id = size;\n  }\n  else {\n    bVar2 = append_type(info,tag);\n    if (bVar2 == 0) {\n      return 0;\n    }\n    bVar2 = append_type(info," {");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    bVar2 = append_type(info," /*");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    if (size != 0) {\n      sprintf(idbuf," size %u",size);\n      bVar2 = append_type(info,idbuf);\n      if (bVar2 == 0) {\n        return 0;\n      }\n    }\n    pcVar3 = " id %u";\n  }\n  sprintf(idbuf,pcVar3,id);\n  bVar2 = append_type(info,idbuf);\n  if (bVar2 == 0) {\n    return 0;\n  }\n  bVar2 = append_type(info," */");\n  if (bVar2 == 0) {\n    return 0;\n  }\nLAB_00037555:\n  bVar2 = append_type(info,"\n");\n  if (bVar2 == 0) {\n    return 0;\n  }\n  iVar1 = *(int *)((int)p + 4);\n  uVar4 = 0;\n  *(undefined4 *)(*(int *)((int)p + 8) + 8) = 0;\n  if (iVar1 != 0) {\n    do {\n      bVar2 = append_type(info," ");\n      if (bVar2 == 0) {\n        return 0;\n      }\n      uVar4 = uVar4 + 1;\n    } while (uVar4 < *(uint *)((int)p + 4));\n  }\n  return 1;\n}\n\n" comment comment (function_definition "bfd_boolean pr_start_struct_type(void *p,char *tag,uint id,bfd_boolean structp,uint size)\n\n{\n  pr_handle *info;\n  int iVar1;\n  bfd_boolean bVar2;\n  char *pcVar3;\n  uint uVar4;\n  char idbuf [20];\n  \n  *(int *)((int)p + 4) = *(int *)((int)p + 4) + 2;\n  info = (pr_handle *)((int)p + 8);\n  pcVar3 = "struct ";\n  if (structp == 0) {\n    pcVar3 = "union ";\n  }\n  bVar2 = push_type(info,pcVar3);\n  if (bVar2 == 0) {\n    return 0;\n  }\n  if (tag == (char *)0x0) {\n    sprintf(idbuf,"%%anon%u",id);\n    bVar2 = append_type(info,idbuf);\n    if (bVar2 == 0) {\n      return 0;\n    }\n    bVar2 = append_type(info," {");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    if (size == 0) goto LAB_00037555;\n    bVar2 = append_type(info," /*");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    pcVar3 = " size %u";\n    id = size;\n  }\n  else {\n    bVar2 = append_type(info,tag);\n    if (bVar2 == 0) {\n      return 0;\n    }\n    bVar2 = append_type(info," {");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    bVar2 = append_type(info," /*");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    if (size != 0) {\n      sprintf(idbuf," size %u",size);\n      bVar2 = append_type(info,idbuf);\n      if (bVar2 == 0) {\n        return 0;\n      }\n    }\n    pcVar3 = " id %u";\n  }\n  sprintf(idbuf,pcVar3,id);\n  bVar2 = append_type(info,idbuf);\n  if (bVar2 == 0) {\n    return 0;\n  }\n  bVar2 = append_type(info," */");\n  if (bVar2 == 0) {\n    return 0;\n  }\nLAB_00037555:\n  bVar2 = append_type(info,"\n");\n  if (bVar2 == 0) {\n    return 0;\n  }\n  iVar1 = *(int *)((int)p + 4);\n  uVar4 = 0;\n  *(undefined4 *)(*(int *)((int)p + 8) + 8) = 0;\n  if (iVar1 != 0) {\n    do {\n      bVar2 = append_type(info," ");\n      if (bVar2 == 0) {\n        return 0;\n      }\n      uVar4 = uVar4 + 1;\n    } while (uVar4 < *(uint *)((int)p + 4));\n  }\n  return 1;\n}" type_identifier (function_declarator "pr_start_struct_type(void *p,char *tag,uint id,bfd_boolean structp,uint size)" identifier (parameter_list "(void *p,char *tag,uint id,bfd_boolean structp,uint size)" ( (parameter_declaration "void *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "char *tag" primitive_type (pointer_declarator "*tag" * identifier)) , (parameter_declaration "uint id" type_identifier identifier) , (parameter_declaration "bfd_boolean structp" type_identifier identifier) , (parameter_declaration "uint size" type_identifier identifier) ))) (compound_statement "{\n  pr_handle *info;\n  int iVar1;\n  bfd_boolean bVar2;\n  char *pcVar3;\n  uint uVar4;\n  char idbuf [20];\n  \n  *(int *)((int)p + 4) = *(int *)((int)p + 4) + 2;\n  info = (pr_handle *)((int)p + 8);\n  pcVar3 = "struct ";\n  if (structp == 0) {\n    pcVar3 = "union ";\n  }\n  bVar2 = push_type(info,pcVar3);\n  if (bVar2 == 0) {\n    return 0;\n  }\n  if (tag == (char *)0x0) {\n    sprintf(idbuf,"%%anon%u",id);\n    bVar2 = append_type(info,idbuf);\n    if (bVar2 == 0) {\n      return 0;\n    }\n    bVar2 = append_type(info," {");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    if (size == 0) goto LAB_00037555;\n    bVar2 = append_type(info," /*");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    pcVar3 = " size %u";\n    id = size;\n  }\n  else {\n    bVar2 = append_type(info,tag);\n    if (bVar2 == 0) {\n      return 0;\n    }\n    bVar2 = append_type(info," {");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    bVar2 = append_type(info," /*");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    if (size != 0) {\n      sprintf(idbuf," size %u",size);\n      bVar2 = append_type(info,idbuf);\n      if (bVar2 == 0) {\n        return 0;\n      }\n    }\n    pcVar3 = " id %u";\n  }\n  sprintf(idbuf,pcVar3,id);\n  bVar2 = append_type(info,idbuf);\n  if (bVar2 == 0) {\n    return 0;\n  }\n  bVar2 = append_type(info," */");\n  if (bVar2 == 0) {\n    return 0;\n  }\nLAB_00037555:\n  bVar2 = append_type(info,"\n");\n  if (bVar2 == 0) {\n    return 0;\n  }\n  iVar1 = *(int *)((int)p + 4);\n  uVar4 = 0;\n  *(undefined4 *)(*(int *)((int)p + 8) + 8) = 0;\n  if (iVar1 != 0) {\n    do {\n      bVar2 = append_type(info," ");\n      if (bVar2 == 0) {\n        return 0;\n      }\n      uVar4 = uVar4 + 1;\n    } while (uVar4 < *(uint *)((int)p + 4));\n  }\n  return 1;\n}" { (declaration "pr_handle *info;" type_identifier (pointer_declarator "*info" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "bfd_boolean bVar2;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char idbuf [20];" primitive_type (array_declarator "idbuf [20]" identifier [ number_literal ]) ;) (expression_statement "*(int *)((int)p + 4) = *(int *)((int)p + 4) + 2;" (assignment_expression "*(int *)((int)p + 4) = *(int *)((int)p + 4) + 2" (pointer_expression "*(int *)((int)p + 4)" * (cast_expression "(int *)((int)p + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 4)" ( (binary_expression "(int)p + 4" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)p + 4) + 2" (pointer_expression "*(int *)((int)p + 4)" * (cast_expression "(int *)((int)p + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 4)" ( (binary_expression "(int)p + 4" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "info = (pr_handle *)((int)p + 8);" (assignment_expression "info = (pr_handle *)((int)p + 8)" identifier = (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) )))) ;) (expression_statement "pcVar3 = "struct ";" (assignment_expression "pcVar3 = "struct "" identifier = (string_literal ""struct "" " string_content ")) ;) (if_statement "if (structp == 0) {\n    pcVar3 = "union ";\n  }" if (parenthesized_expression "(structp == 0)" ( (binary_expression "structp == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar3 = "union ";\n  }" { (expression_statement "pcVar3 = "union ";" (assignment_expression "pcVar3 = "union "" identifier = (string_literal ""union "" " string_content ")) ;) })) (expression_statement "bVar2 = push_type(info,pcVar3);" (assignment_expression "bVar2 = push_type(info,pcVar3)" identifier = (call_expression "push_type(info,pcVar3)" identifier (argument_list "(info,pcVar3)" ( identifier , identifier )))) ;) (if_statement "if (bVar2 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (tag == (char *)0x0) {\n    sprintf(idbuf,"%%anon%u",id);\n    bVar2 = append_type(info,idbuf);\n    if (bVar2 == 0) {\n      return 0;\n    }\n    bVar2 = append_type(info," {");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    if (size == 0) goto LAB_00037555;\n    bVar2 = append_type(info," /*");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    pcVar3 = " size %u";\n    id = size;\n  }\n  else {\n    bVar2 = append_type(info,tag);\n    if (bVar2 == 0) {\n      return 0;\n    }\n    bVar2 = append_type(info," {");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    bVar2 = append_type(info," /*");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    if (size != 0) {\n      sprintf(idbuf," size %u",size);\n      bVar2 = append_type(info,idbuf);\n      if (bVar2 == 0) {\n        return 0;\n      }\n    }\n    pcVar3 = " id %u";\n  }" if (parenthesized_expression "(tag == (char *)0x0)" ( (binary_expression "tag == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sprintf(idbuf,"%%anon%u",id);\n    bVar2 = append_type(info,idbuf);\n    if (bVar2 == 0) {\n      return 0;\n    }\n    bVar2 = append_type(info," {");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    if (size == 0) goto LAB_00037555;\n    bVar2 = append_type(info," /*");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    pcVar3 = " size %u";\n    id = size;\n  }" { (expression_statement "sprintf(idbuf,"%%anon%u",id);" (call_expression "sprintf(idbuf,"%%anon%u",id)" identifier (argument_list "(idbuf,"%%anon%u",id)" ( identifier , (string_literal ""%%anon%u"" " string_content ") , identifier ))) ;) (expression_statement "bVar2 = append_type(info,idbuf);" (assignment_expression "bVar2 = append_type(info,idbuf)" identifier = (call_expression "append_type(info,idbuf)" identifier (argument_list "(info,idbuf)" ( identifier , identifier )))) ;) (if_statement "if (bVar2 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar2 = append_type(info," {");" (assignment_expression "bVar2 = append_type(info," {")" identifier = (call_expression "append_type(info," {")" identifier (argument_list "(info," {")" ( identifier , (string_literal "" {"" " string_content ") )))) ;) (if_statement "if (bVar2 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (size == 0) goto LAB_00037555;" if (parenthesized_expression "(size == 0)" ( (binary_expression "size == 0" identifier == number_literal) )) (goto_statement "goto LAB_00037555;" goto statement_identifier ;)) (expression_statement "bVar2 = append_type(info," /*");" (assignment_expression "bVar2 = append_type(info," /*")" identifier = (call_expression "append_type(info," /*")" identifier (argument_list "(info," /*")" ( identifier , (string_literal "" /*"" " string_content ") )))) ;) (if_statement "if (bVar2 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar3 = " size %u";" (assignment_expression "pcVar3 = " size %u"" identifier = (string_literal "" size %u"" " string_content ")) ;) (expression_statement "id = size;" (assignment_expression "id = size" identifier = identifier) ;) }) (else_clause "else {\n    bVar2 = append_type(info,tag);\n    if (bVar2 == 0) {\n      return 0;\n    }\n    bVar2 = append_type(info," {");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    bVar2 = append_type(info," /*");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    if (size != 0) {\n      sprintf(idbuf," size %u",size);\n      bVar2 = append_type(info,idbuf);\n      if (bVar2 == 0) {\n        return 0;\n      }\n    }\n    pcVar3 = " id %u";\n  }" else (compound_statement "{\n    bVar2 = append_type(info,tag);\n    if (bVar2 == 0) {\n      return 0;\n    }\n    bVar2 = append_type(info," {");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    bVar2 = append_type(info," /*");\n    if (bVar2 == 0) {\n      return 0;\n    }\n    if (size != 0) {\n      sprintf(idbuf," size %u",size);\n      bVar2 = append_type(info,idbuf);\n      if (bVar2 == 0) {\n        return 0;\n      }\n    }\n    pcVar3 = " id %u";\n  }" { (expression_statement "bVar2 = append_type(info,tag);" (assignment_expression "bVar2 = append_type(info,tag)" identifier = (call_expression "append_type(info,tag)" identifier (argument_list "(info,tag)" ( identifier , identifier )))) ;) (if_statement "if (bVar2 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar2 = append_type(info," {");" (assignment_expression "bVar2 = append_type(info," {")" identifier = (call_expression "append_type(info," {")" identifier (argument_list "(info," {")" ( identifier , (string_literal "" {"" " string_content ") )))) ;) (if_statement "if (bVar2 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar2 = append_type(info," /*");" (assignment_expression "bVar2 = append_type(info," /*")" identifier = (call_expression "append_type(info," /*")" identifier (argument_list "(info," /*")" ( identifier , (string_literal "" /*"" " string_content ") )))) ;) (if_statement "if (bVar2 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (size != 0) {\n      sprintf(idbuf," size %u",size);\n      bVar2 = append_type(info,idbuf);\n      if (bVar2 == 0) {\n        return 0;\n      }\n    }" if (parenthesized_expression "(size != 0)" ( (binary_expression "size != 0" identifier != number_literal) )) (compound_statement "{\n      sprintf(idbuf," size %u",size);\n      bVar2 = append_type(info,idbuf);\n      if (bVar2 == 0) {\n        return 0;\n      }\n    }" { (expression_statement "sprintf(idbuf," size %u",size);" (call_expression "sprintf(idbuf," size %u",size)" identifier (argument_list "(idbuf," size %u",size)" ( identifier , (string_literal "" size %u"" " string_content ") , identifier ))) ;) (expression_statement "bVar2 = append_type(info,idbuf);" (assignment_expression "bVar2 = append_type(info,idbuf)" identifier = (call_expression "append_type(info,idbuf)" identifier (argument_list "(info,idbuf)" ( identifier , identifier )))) ;) (if_statement "if (bVar2 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "pcVar3 = " id %u";" (assignment_expression "pcVar3 = " id %u"" identifier = (string_literal "" id %u"" " string_content ")) ;) }))) (expression_statement "sprintf(idbuf,pcVar3,id);" (call_expression "sprintf(idbuf,pcVar3,id)" identifier (argument_list "(idbuf,pcVar3,id)" ( identifier , identifier , identifier ))) ;) (expression_statement "bVar2 = append_type(info,idbuf);" (assignment_expression "bVar2 = append_type(info,idbuf)" identifier = (call_expression "append_type(info,idbuf)" identifier (argument_list "(info,idbuf)" ( identifier , identifier )))) ;) (if_statement "if (bVar2 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar2 = append_type(info," */");" (assignment_expression "bVar2 = append_type(info," */")" identifier = (call_expression "append_type(info," */")" identifier (argument_list "(info," */")" ( identifier , (string_literal "" */"" " string_content ") )))) ;) (if_statement "if (bVar2 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00037555:\n  bVar2 = append_type(info,"\n");" statement_identifier : (expression_statement "bVar2 = append_type(info,"\n");" (assignment_expression "bVar2 = append_type(info,"\n")" identifier = (call_expression "append_type(info,"\n")" identifier (argument_list "(info,"\n")" ( identifier , (string_literal ""\n"" " escape_sequence ") )))) ;)) (if_statement "if (bVar2 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar1 = *(int *)((int)p + 4);" (assignment_expression "iVar1 = *(int *)((int)p + 4)" identifier = (pointer_expression "*(int *)((int)p + 4)" * (cast_expression "(int *)((int)p + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 4)" ( (binary_expression "(int)p + 4" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(*(int *)((int)p + 8) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)((int)p + 8) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)((int)p + 8) + 8)" * (cast_expression "(undefined4 *)(*(int *)((int)p + 8) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)p + 8) + 8)" ( (binary_expression "*(int *)((int)p + 8) + 8" (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) )))) = number_literal) ;) (if_statement "if (iVar1 != 0) {\n    do {\n      bVar2 = append_type(info," ");\n      if (bVar2 == 0) {\n        return 0;\n      }\n      uVar4 = uVar4 + 1;\n    } while (uVar4 < *(uint *)((int)p + 4));\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      bVar2 = append_type(info," ");\n      if (bVar2 == 0) {\n        return 0;\n      }\n      uVar4 = uVar4 + 1;\n    } while (uVar4 < *(uint *)((int)p + 4));\n  }" { (do_statement "do {\n      bVar2 = append_type(info," ");\n      if (bVar2 == 0) {\n        return 0;\n      }\n      uVar4 = uVar4 + 1;\n    } while (uVar4 < *(uint *)((int)p + 4));" do (compound_statement "{\n      bVar2 = append_type(info," ");\n      if (bVar2 == 0) {\n        return 0;\n      }\n      uVar4 = uVar4 + 1;\n    }" { (expression_statement "bVar2 = append_type(info," ");" (assignment_expression "bVar2 = append_type(info," ")" identifier = (call_expression "append_type(info," ")" identifier (argument_list "(info," ")" ( identifier , (string_literal "" "" " string_content ") )))) ;) (if_statement "if (bVar2 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar4 < *(uint *)((int)p + 4))" ( (binary_expression "uVar4 < *(uint *)((int)p + 4)" identifier < (pointer_expression "*(uint *)((int)p + 4)" * (cast_expression "(uint *)((int)p + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 4)" ( (binary_expression "(int)p + 4" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) ;) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "undefined4 FUN_00037490(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)\n\n{\n  int iVar1;\n  char *__format;\n  uint uVar2;\n  char local_3a [38];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x37499;\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 2;\n  iVar1 = FUN_00037020();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  if (param_2 == 0) {\n    sprintf(local_3a,"%%anon%u",param_3);\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 == 0) goto LAB_00037555;\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    __format = " size %u";\n    param_3 = param_5;\n  }\n  else {\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }\n    __format = " id %u";\n  }\n  sprintf(local_3a,__format,param_3);\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\nLAB_00037555:\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  iVar1 = *(int *)(param_1 + 4);\n  uVar2 = 0;\n  *(undefined4 *)(*(int *)(param_1 + 8) + 8) = 0;\n  if (iVar1 != 0) {\n    do {\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    } while (uVar2 < *(uint *)(param_1 + 4));\n  }\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_00037490(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)\n\n{\n  int iVar1;\n  char *__format;\n  uint uVar2;\n  char local_3a [38];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x37499;\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 2;\n  iVar1 = FUN_00037020();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  if (param_2 == 0) {\n    sprintf(local_3a,"%%anon%u",param_3);\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 == 0) goto LAB_00037555;\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    __format = " size %u";\n    param_3 = param_5;\n  }\n  else {\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }\n    __format = " id %u";\n  }\n  sprintf(local_3a,__format,param_3);\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\nLAB_00037555:\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  iVar1 = *(int *)(param_1 + 4);\n  uVar2 = 0;\n  *(undefined4 *)(*(int *)(param_1 + 8) + 8) = 0;\n  if (iVar1 != 0) {\n    do {\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    } while (uVar2 < *(uint *)(param_1 + 4));\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_00037490(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)" identifier (parameter_list "(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  char *__format;\n  uint uVar2;\n  char local_3a [38];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x37499;\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 2;\n  iVar1 = FUN_00037020();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  if (param_2 == 0) {\n    sprintf(local_3a,"%%anon%u",param_3);\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 == 0) goto LAB_00037555;\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    __format = " size %u";\n    param_3 = param_5;\n  }\n  else {\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }\n    __format = " id %u";\n  }\n  sprintf(local_3a,__format,param_3);\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\nLAB_00037555:\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  iVar1 = *(int *)(param_1 + 4);\n  uVar2 = 0;\n  *(undefined4 *)(*(int *)(param_1 + 8) + 8) = 0;\n  if (iVar1 != 0) {\n    do {\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    } while (uVar2 < *(uint *)(param_1 + 4));\n  }\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char local_3a [38];" primitive_type (array_declarator "local_3a [38]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x37499;" (assignment_expression "uStack_14 = 0x37499" identifier = number_literal) ;) (expression_statement "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 2;" (assignment_expression "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 2" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 4) + 2" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar1 = FUN_00037020();" (assignment_expression "iVar1 = FUN_00037020()" identifier = (call_expression "FUN_00037020()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (param_2 == 0) {\n    sprintf(local_3a,"%%anon%u",param_3);\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 == 0) goto LAB_00037555;\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    __format = " size %u";\n    param_3 = param_5;\n  }\n  else {\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }\n    __format = " id %u";\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    sprintf(local_3a,"%%anon%u",param_3);\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 == 0) goto LAB_00037555;\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    __format = " size %u";\n    param_3 = param_5;\n  }" { (expression_statement "sprintf(local_3a,"%%anon%u",param_3);" (call_expression "sprintf(local_3a,"%%anon%u",param_3)" identifier (argument_list "(local_3a,"%%anon%u",param_3)" ( identifier , (string_literal ""%%anon%u"" " string_content ") , identifier ))) ;) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (param_5 == 0) goto LAB_00037555;" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00037555;" goto statement_identifier ;)) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "__format = " size %u";" (assignment_expression "__format = " size %u"" identifier = (string_literal "" size %u"" " string_content ")) ;) (expression_statement "param_3 = param_5;" (assignment_expression "param_3 = param_5" identifier = identifier) ;) }) (else_clause "else {\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }\n    __format = " id %u";\n  }" else (compound_statement "{\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }\n    __format = " id %u";\n  }" { (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }" { (expression_statement "sprintf(local_3a," size %u",param_5);" (call_expression "sprintf(local_3a," size %u",param_5)" identifier (argument_list "(local_3a," size %u",param_5)" ( identifier , (string_literal "" size %u"" " string_content ") , identifier ))) ;) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "__format = " id %u";" (assignment_expression "__format = " id %u"" identifier = (string_literal "" id %u"" " string_content ")) ;) }))) (expression_statement "sprintf(local_3a,__format,param_3);" (call_expression "sprintf(local_3a,__format,param_3)" identifier (argument_list "(local_3a,__format,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00037555:\n  iVar1 = FUN_00035640();" statement_identifier : (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar1 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar1 = *(int *)(param_1 + 4);" (assignment_expression "iVar1 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(*(int *)(param_1 + 8) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_1 + 8) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 8) + 8)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 8) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 8) + 8)" ( (binary_expression "*(int *)(param_1 + 8) + 8" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (if_statement "if (iVar1 != 0) {\n    do {\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    } while (uVar2 < *(uint *)(param_1 + 4));\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    } while (uVar2 < *(uint *)(param_1 + 4));\n  }" { (do_statement "do {\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    } while (uVar2 < *(uint *)(param_1 + 4));" do (compound_statement "{\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    }" { (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" identifier = (call_expression "FUN_00035640()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar2 < *(uint *)(param_1 + 4))" ( (binary_expression "uVar2 < *(uint *)(param_1 + 4)" identifier < (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) )) ;) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (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) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_00037490(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)\n\n{\n  int iVar1;\n  char *__format;\n  uint uVar2;\n  char local_3a [38];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x37499;\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 2;\n  iVar1 = FUN_00037020();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  if (param_2 == 0) {\n    sprintf(local_3a,"%%anon%u",param_3);\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 == 0) goto LAB_00037555;\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    __format = " size %u";\n    param_3 = param_5;\n  }\n  else {\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }\n    __format = " id %u";\n  }\n  sprintf(local_3a,__format,param_3);\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\nLAB_00037555:\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  iVar1 = *(int *)(param_1 + 4);\n  uVar2 = 0;\n  *(undefined4 *)(*(int *)(param_1 + 8) + 8) = 0;\n  if (iVar1 != 0) {\n    do {\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    } while (uVar2 < *(uint *)(param_1 + 4));\n  }\n  return 1;\n}" (type_identifier "undefined4") (function_declarator "FUN_00037490(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)" (identifier "FUN_00037490") (parameter_list "(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) () ")"))) (compound_statement "{\n  int iVar1;\n  char *__format;\n  uint uVar2;\n  char local_3a [38];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x37499;\n  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 2;\n  iVar1 = FUN_00037020();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  if (param_2 == 0) {\n    sprintf(local_3a,"%%anon%u",param_3);\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 == 0) goto LAB_00037555;\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    __format = " size %u";\n    param_3 = param_5;\n  }\n  else {\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }\n    __format = " id %u";\n  }\n  sprintf(local_3a,__format,param_3);\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\nLAB_00037555:\n  iVar1 = FUN_00035640();\n  if (iVar1 == 0) {\n    return 0;\n  }\n  iVar1 = *(int *)(param_1 + 4);\n  uVar2 = 0;\n  *(undefined4 *)(*(int *)(param_1 + 8) + 8) = 0;\n  if (iVar1 != 0) {\n    do {\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    } while (uVar2 < *(uint *)(param_1 + 4));\n  }\n  return 1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "char *__format;" (primitive_type "char") (pointer_declarator "*__format" (* "*") (identifier "__format")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "char local_3a [38];" (primitive_type "char") (array_declarator "local_3a [38]" (identifier "local_3a") ([ "[") (number_literal "38") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x37499;" (assignment_expression "uStack_14 = 0x37499" (identifier "uStack_14") (= "=") (number_literal "0x37499")) (; ";")) (expression_statement "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 2;" (assignment_expression "*(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 2" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 4) + 2" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar1 = FUN_00037020();" (assignment_expression "iVar1 = FUN_00037020()" (identifier "iVar1") (= "=") (call_expression "FUN_00037020()" (identifier "FUN_00037020") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n    sprintf(local_3a,"%%anon%u",param_3);\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 == 0) goto LAB_00037555;\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    __format = " size %u";\n    param_3 = param_5;\n  }\n  else {\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }\n    __format = " id %u";\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    sprintf(local_3a,"%%anon%u",param_3);\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 == 0) goto LAB_00037555;\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    __format = " size %u";\n    param_3 = param_5;\n  }" ({ "{") (expression_statement "sprintf(local_3a,"%%anon%u",param_3);" (call_expression "sprintf(local_3a,"%%anon%u",param_3)" (identifier "sprintf") (argument_list "(local_3a,"%%anon%u",param_3)" (( "(") (identifier "local_3a") (, ",") (string_literal ""%%anon%u"" (" """) (string_content "%%anon%u") (" """)) (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" (identifier "iVar1") (= "=") (call_expression "FUN_00035640()" (identifier "FUN_00035640") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" (identifier "iVar1") (= "=") (call_expression "FUN_00035640()" (identifier "FUN_00035640") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (param_5 == 0) goto LAB_00037555;" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00037555;" (goto "goto") (statement_identifier "LAB_00037555") (; ";"))) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" (identifier "iVar1") (= "=") (call_expression "FUN_00035640()" (identifier "FUN_00035640") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "__format = " size %u";" (assignment_expression "__format = " size %u"" (identifier "__format") (= "=") (string_literal "" size %u"" (" """) (string_content " size %u") (" """))) (; ";")) (expression_statement "param_3 = param_5;" (assignment_expression "param_3 = param_5" (identifier "param_3") (= "=") (identifier "param_5")) (; ";")) (} "}")) (else_clause "else {\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }\n    __format = " id %u";\n  }" (else "else") (compound_statement "{\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    iVar1 = FUN_00035640();\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }\n    __format = " id %u";\n  }" ({ "{") (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" (identifier "iVar1") (= "=") (call_expression "FUN_00035640()" (identifier "FUN_00035640") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" (identifier "iVar1") (= "=") (call_expression "FUN_00035640()" (identifier "FUN_00035640") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" (identifier "iVar1") (= "=") (call_expression "FUN_00035640()" (identifier "FUN_00035640") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (param_5 != 0) {\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }" (if "if") (parenthesized_expression "(param_5 != 0)" (( "(") (binary_expression "param_5 != 0" (identifier "param_5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      sprintf(local_3a," size %u",param_5);\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n    }" ({ "{") (expression_statement "sprintf(local_3a," size %u",param_5);" (call_expression "sprintf(local_3a," size %u",param_5)" (identifier "sprintf") (argument_list "(local_3a," size %u",param_5)" (( "(") (identifier "local_3a") (, ",") (string_literal "" size %u"" (" """) (string_content " size %u") (" """)) (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" (identifier "iVar1") (= "=") (call_expression "FUN_00035640()" (identifier "FUN_00035640") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "__format = " id %u";" (assignment_expression "__format = " id %u"" (identifier "__format") (= "=") (string_literal "" id %u"" (" """) (string_content " id %u") (" """))) (; ";")) (} "}")))) (expression_statement "sprintf(local_3a,__format,param_3);" (call_expression "sprintf(local_3a,__format,param_3)" (identifier "sprintf") (argument_list "(local_3a,__format,param_3)" (( "(") (identifier "local_3a") (, ",") (identifier "__format") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" (identifier "iVar1") (= "=") (call_expression "FUN_00035640()" (identifier "FUN_00035640") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" (identifier "iVar1") (= "=") (call_expression "FUN_00035640()" (identifier "FUN_00035640") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (labeled_statement "LAB_00037555:\n  iVar1 = FUN_00035640();" (statement_identifier "LAB_00037555") (: ":") (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" (identifier "iVar1") (= "=") (call_expression "FUN_00035640()" (identifier "FUN_00035640") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar1 == 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar1 = *(int *)(param_1 + 4);" (assignment_expression "iVar1 = *(int *)(param_1 + 4)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(*(int *)(param_1 + 8) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_1 + 8) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 8) + 8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_1 + 8) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 8) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 8) + 8" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar1 != 0) {\n    do {\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    } while (uVar2 < *(uint *)(param_1 + 4));\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    } while (uVar2 < *(uint *)(param_1 + 4));\n  }" ({ "{") (do_statement "do {\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    } while (uVar2 < *(uint *)(param_1 + 4));" (do "do") (compound_statement "{\n      iVar1 = FUN_00035640();\n      if (iVar1 == 0) {\n        return 0;\n      }\n      uVar2 = uVar2 + 1;\n    }" ({ "{") (expression_statement "iVar1 = FUN_00035640();" (assignment_expression "iVar1 = FUN_00035640()" (identifier "iVar1") (= "=") (call_expression "FUN_00035640()" (identifier "FUN_00035640") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar2 < *(uint *)(param_1 + 4))" (( "(") (binary_expression "uVar2 < *(uint *)(param_1 + 4)" (identifier "uVar2") (< "<") (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) () ")")) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

/* 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 *var_4,type_2 id,type_1 var_1,type_2 var_7)

{
  type_3 *info;
  int var_8;
  type_1 var_3;
  char *pcVar3;
  type_2 var_9;
  char idbuf [20];
  
  *(int *)((int)p + 4) = *(int *)((int)p + 4) + 2;
  info = (type_3 *)((int)p + 8);
  pcVar3 = "struct ";
  if (var_1 == 0) {
    pcVar3 = "union ";
  }
  var_3 = var_2(info,pcVar3);
  if (var_3 == 0) {
    return 0;
  }
  if (var_4 == (char *)0x0) {
    var_5(idbuf,"%%anon%u",id);
    var_3 = var_6(info,idbuf);
    if (var_3 == 0) {
      return 0;
    }
    var_3 = var_6(info," {");
    if (var_3 == 0) {
      return 0;
    }
    if (var_7 == 0) goto LAB_00037555;
    var_3 = var_6(info," /*");
    if (var_3 == 0) {
      return 0;
    }
    pcVar3 = " size %u";
    id = var_7;
  }
  else {
    var_3 = var_6(info,var_4);
    if (var_3 == 0) {
      return 0;
    }
    var_3 = var_6(info," {");
    if (var_3 == 0) {
      return 0;
    }
    var_3 = var_6(info," /*");
    if (var_3 == 0) {
      return 0;
    }
    if (var_7 != 0) {
      var_5(idbuf," size %u",var_7);
      var_3 = var_6(info,idbuf);
      if (var_3 == 0) {
        return 0;
      }
    }
    pcVar3 = " id %u";
  }
  var_5(idbuf,pcVar3,id);
  var_3 = var_6(info,idbuf);
  if (var_3 == 0) {
    return 0;
  }
  var_3 = var_6(info," */");
  if (var_3 == 0) {
    return 0;
  }
LAB_00037555:
  var_3 = var_6(info,"\n");
  if (var_3 == 0) {
    return 0;
  }
  var_8 = *(int *)((int)p + 4);
  var_9 = 0;
  *(type_4 *)(*(int *)((int)p + 8) + 8) = 0;
  if (var_8 != 0) {
    do {
      var_3 = var_6(info," ");
      if (var_3 == 0) {
        return 0;
      }
      var_9 = var_9 + 1;
    } while (var_9 < *(type_2 *)((int)p + 4));
  }
  return 1;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_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: (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: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (return_statement (number_literal)))))

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

undefined4 MASKED(int param_1,int param_2,int param_3,undefined4 param_4,int param_5)

{
  int iVar1;
  char *__format;
  uint uVar2;
  char local_3a [38];
  undefined4 uStack_14;
  
  uStack_14 = 0x37499;
  *(int *)(param_1 + 4) = *(int *)(param_1 + 4) + 2;
  iVar1 = FUN_00037020();
  if (iVar1 == 0) {
    return 0;
  }
  if (param_2 == 0) {
    sprintf(local_3a,"%%anon%u",param_3);
    iVar1 = FUN_00035640();
    if (iVar1 == 0) {
      return 0;
    }
    iVar1 = FUN_00035640();
    if (iVar1 == 0) {
      return 0;
    }
    if (param_5 == 0) goto LAB_00037555;
    iVar1 = FUN_00035640();
    if (iVar1 == 0) {
      return 0;
    }
    __format = " size %u";
    param_3 = param_5;
  }
  else {
    iVar1 = FUN_00035640();
    if (iVar1 == 0) {
      return 0;
    }
    iVar1 = FUN_00035640();
    if (iVar1 == 0) {
      return 0;
    }
    iVar1 = FUN_00035640();
    if (iVar1 == 0) {
      return 0;
    }
    if (param_5 != 0) {
      sprintf(local_3a," size %u",param_5);
      iVar1 = FUN_00035640();
      if (iVar1 == 0) {
        return 0;
      }
    }
    __format = " id %u";
  }
  sprintf(local_3a,__format,param_3);
  iVar1 = FUN_00035640();
  if (iVar1 == 0) {
    return 0;
  }
  iVar1 = FUN_00035640();
  if (iVar1 == 0) {
    return 0;
  }
LAB_00037555:
  iVar1 = FUN_00035640();
  if (iVar1 == 0) {
    return 0;
  }
  iVar1 = *(int *)(param_1 + 4);
  uVar2 = 0;
  *(undefined4 *)(*(int *)(param_1 + 8) + 8) = 0;
  if (iVar1 != 0) {
    do {
      iVar1 = FUN_00035640();
      if (iVar1 == 0) {
        return 0;
      }
      uVar2 = uVar2 + 1;
    } while (uVar2 < *(uint *)(param_1 + 4));
  }
  return 1;
}

