
section_add * init_section_add(char *arg,section_add *next,char *option)

{
  char *pcVar1;
  section_add *psVar2;
  char *pcVar3;
  
  pcVar1 = strchr(arg,0x3d);
  if (pcVar1 != (char *)0x0) {
    psVar2 = (section_add *)xmalloc(0x30);
    pcVar3 = xstrndup(arg,(long)pcVar1 - (long)arg);
    psVar2->filename = pcVar1 + 1;
    psVar2->name = pcVar3;
    psVar2->next = next;
    psVar2->contents = (bfd_byte *)0x0;
    psVar2->size = 0;
    return psVar2;
  }
  pcVar1 = (char *)dcgettext(0,"bad format for %s",5);
                    /* WARNING: Subroutine does not return */
  fatal(pcVar1,option);
}



undefined8 * FUN_00108f30(char *param_1,undefined8 param_2,undefined8 param_3)

{
  char *pcVar1;
  undefined8 *puVar2;
  undefined8 uVar3;
  
  pcVar1 = strchr(param_1,0x3d);
  if (pcVar1 != (char *)0x0) {
    puVar2 = (undefined8 *)xmalloc(0x30);
    uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);
    puVar2[2] = pcVar1 + 1;
    puVar2[1] = uVar3;
    *puVar2 = param_2;
    puVar2[4] = 0;
    puVar2[3] = 0;
    return puVar2;
  }
  uVar3 = dcgettext(0,"bad format for %s",5);
                    /* WARNING: Subroutine does not return */
  FUN_0011b5c0(uVar3,param_3);
}


PUSH R13
MOV R13,RSI
MOV ESI,0x3d
PUSH R12
MOV R12,RDI
PUSH RBP
PUSH RBX
MOV RBX,RDX
SUB RSP,0x8
CALL 0x00104290
TEST RAX,RAX
JZ 0x00108f9d
MOV RBP,RAX
MOV EDI,0x30
CALL 0x00104370
MOV RSI,RBP
MOV RDI,R12
ADD RBP,0x1
SUB RSI,R12
MOV RBX,RAX
CALL 0x0011d380
MOV qword ptr [RBX + 0x10],RBP
MOV qword ptr [RBX + 0x8],RAX
MOV RAX,RBX
MOV qword ptr [RBX],R13
MOV qword ptr [RBX + 0x20],0x0
MOV qword ptr [RBX + 0x18],0x0
ADD RSP,0x8
POP RBX
POP RBP
POP R12
POP R13
RET
LEA RSI,[0x11e154]
XOR EDI,EDI
MOV EDX,0x5
CALL 0x00104240
MOV RSI,RBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011b5c0
(translation_unit "undefined8 * FUN_00108f30(char *param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  char *pcVar1;\n  undefined8 *puVar2;\n  undefined8 uVar3;\n  \n  pcVar1 = strchr(param_1,0x3d);\n  if (pcVar1 != (char *)0x0) {\n    puVar2 = (undefined8 *)xmalloc(0x30);\n    uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);\n    puVar2[2] = pcVar1 + 1;\n    puVar2[1] = uVar3;\n    *puVar2 = param_2;\n    puVar2[4] = 0;\n    puVar2[3] = 0;\n    return puVar2;\n  }\n  uVar3 = dcgettext(0,"bad format for %s",5);\n                    /* WARNING: Subroutine does not return */\n  FUN_0011b5c0(uVar3,param_3);\n}\n\n" (function_definition "undefined8 * FUN_00108f30(char *param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  char *pcVar1;\n  undefined8 *puVar2;\n  undefined8 uVar3;\n  \n  pcVar1 = strchr(param_1,0x3d);\n  if (pcVar1 != (char *)0x0) {\n    puVar2 = (undefined8 *)xmalloc(0x30);\n    uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);\n    puVar2[2] = pcVar1 + 1;\n    puVar2[1] = uVar3;\n    *puVar2 = param_2;\n    puVar2[4] = 0;\n    puVar2[3] = 0;\n    return puVar2;\n  }\n  uVar3 = dcgettext(0,"bad format for %s",5);\n                    /* WARNING: Subroutine does not return */\n  FUN_0011b5c0(uVar3,param_3);\n}" type_identifier (pointer_declarator "* FUN_00108f30(char *param_1,undefined8 param_2,undefined8 param_3)" * (function_declarator "FUN_00108f30(char *param_1,undefined8 param_2,undefined8 param_3)" identifier (parameter_list "(char *param_1,undefined8 param_2,undefined8 param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) )))) (compound_statement "{\n  char *pcVar1;\n  undefined8 *puVar2;\n  undefined8 uVar3;\n  \n  pcVar1 = strchr(param_1,0x3d);\n  if (pcVar1 != (char *)0x0) {\n    puVar2 = (undefined8 *)xmalloc(0x30);\n    uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);\n    puVar2[2] = pcVar1 + 1;\n    puVar2[1] = uVar3;\n    *puVar2 = param_2;\n    puVar2[4] = 0;\n    puVar2[3] = 0;\n    return puVar2;\n  }\n  uVar3 = dcgettext(0,"bad format for %s",5);\n                    /* WARNING: Subroutine does not return */\n  FUN_0011b5c0(uVar3,param_3);\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (expression_statement "pcVar1 = strchr(param_1,0x3d);" (assignment_expression "pcVar1 = strchr(param_1,0x3d)" identifier = (call_expression "strchr(param_1,0x3d)" identifier (argument_list "(param_1,0x3d)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar1 != (char *)0x0) {\n    puVar2 = (undefined8 *)xmalloc(0x30);\n    uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);\n    puVar2[2] = pcVar1 + 1;\n    puVar2[1] = uVar3;\n    *puVar2 = param_2;\n    puVar2[4] = 0;\n    puVar2[3] = 0;\n    return puVar2;\n  }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar2 = (undefined8 *)xmalloc(0x30);\n    uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);\n    puVar2[2] = pcVar1 + 1;\n    puVar2[1] = uVar3;\n    *puVar2 = param_2;\n    puVar2[4] = 0;\n    puVar2[3] = 0;\n    return puVar2;\n  }" { (expression_statement "puVar2 = (undefined8 *)xmalloc(0x30);" (assignment_expression "puVar2 = (undefined8 *)xmalloc(0x30)" identifier = (cast_expression "(undefined8 *)xmalloc(0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);" (assignment_expression "uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1)" identifier = (call_expression "FUN_0011d380(param_1,(long)pcVar1 - (long)param_1)" identifier (argument_list "(param_1,(long)pcVar1 - (long)param_1)" ( identifier , (binary_expression "(long)pcVar1 - (long)param_1" (cast_expression "(long)pcVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "puVar2[2] = pcVar1 + 1;" (assignment_expression "puVar2[2] = pcVar1 + 1" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = (binary_expression "pcVar1 + 1" identifier + number_literal)) ;) (expression_statement "puVar2[1] = uVar3;" (assignment_expression "puVar2[1] = uVar3" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar2 = param_2;" (assignment_expression "*puVar2 = param_2" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "puVar2[4] = 0;" (assignment_expression "puVar2[4] = 0" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[3] = 0;" (assignment_expression "puVar2[3] = 0" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return puVar2;" return identifier ;) })) (expression_statement "uVar3 = dcgettext(0,"bad format for %s",5);" (assignment_expression "uVar3 = dcgettext(0,"bad format for %s",5)" identifier = (call_expression "dcgettext(0,"bad format for %s",5)" identifier (argument_list "(0,"bad format for %s",5)" ( number_literal , (string_literal ""bad format for %s"" " string_content ") , number_literal )))) ;) comment (expression_statement "FUN_0011b5c0(uVar3,param_3);" (call_expression "FUN_0011b5c0(uVar3,param_3)" identifier (argument_list "(uVar3,param_3)" ( identifier , identifier ))) ;) })))
(translation_unit "section_add * init_section_add(char *arg,section_add *next,char *option)\n\n{\n  char *pcVar1;\n  section_add *psVar2;\n  char *pcVar3;\n  \n  pcVar1 = strchr(arg,0x3d);\n  if (pcVar1 != (char *)0x0) {\n    psVar2 = (section_add *)xmalloc(0x30);\n    pcVar3 = xstrndup(arg,(long)pcVar1 - (long)arg);\n    psVar2->filename = pcVar1 + 1;\n    psVar2->name = pcVar3;\n    psVar2->next = next;\n    psVar2->contents = (bfd_byte *)0x0;\n    psVar2->size = 0;\n    return psVar2;\n  }\n  pcVar1 = (char *)dcgettext(0,"bad format for %s",5);\n                    /* WARNING: Subroutine does not return */\n  fatal(pcVar1,option);\n}\n\n" (function_definition "section_add * init_section_add(char *arg,section_add *next,char *option)\n\n{\n  char *pcVar1;\n  section_add *psVar2;\n  char *pcVar3;\n  \n  pcVar1 = strchr(arg,0x3d);\n  if (pcVar1 != (char *)0x0) {\n    psVar2 = (section_add *)xmalloc(0x30);\n    pcVar3 = xstrndup(arg,(long)pcVar1 - (long)arg);\n    psVar2->filename = pcVar1 + 1;\n    psVar2->name = pcVar3;\n    psVar2->next = next;\n    psVar2->contents = (bfd_byte *)0x0;\n    psVar2->size = 0;\n    return psVar2;\n  }\n  pcVar1 = (char *)dcgettext(0,"bad format for %s",5);\n                    /* WARNING: Subroutine does not return */\n  fatal(pcVar1,option);\n}" type_identifier (pointer_declarator "* init_section_add(char *arg,section_add *next,char *option)" * (function_declarator "init_section_add(char *arg,section_add *next,char *option)" identifier (parameter_list "(char *arg,section_add *next,char *option)" ( (parameter_declaration "char *arg" primitive_type (pointer_declarator "*arg" * identifier)) , (parameter_declaration "section_add *next" type_identifier (pointer_declarator "*next" * identifier)) , (parameter_declaration "char *option" primitive_type (pointer_declarator "*option" * identifier)) )))) (compound_statement "{\n  char *pcVar1;\n  section_add *psVar2;\n  char *pcVar3;\n  \n  pcVar1 = strchr(arg,0x3d);\n  if (pcVar1 != (char *)0x0) {\n    psVar2 = (section_add *)xmalloc(0x30);\n    pcVar3 = xstrndup(arg,(long)pcVar1 - (long)arg);\n    psVar2->filename = pcVar1 + 1;\n    psVar2->name = pcVar3;\n    psVar2->next = next;\n    psVar2->contents = (bfd_byte *)0x0;\n    psVar2->size = 0;\n    return psVar2;\n  }\n  pcVar1 = (char *)dcgettext(0,"bad format for %s",5);\n                    /* WARNING: Subroutine does not return */\n  fatal(pcVar1,option);\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "section_add *psVar2;" type_identifier (pointer_declarator "*psVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (expression_statement "pcVar1 = strchr(arg,0x3d);" (assignment_expression "pcVar1 = strchr(arg,0x3d)" identifier = (call_expression "strchr(arg,0x3d)" identifier (argument_list "(arg,0x3d)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar1 != (char *)0x0) {\n    psVar2 = (section_add *)xmalloc(0x30);\n    pcVar3 = xstrndup(arg,(long)pcVar1 - (long)arg);\n    psVar2->filename = pcVar1 + 1;\n    psVar2->name = pcVar3;\n    psVar2->next = next;\n    psVar2->contents = (bfd_byte *)0x0;\n    psVar2->size = 0;\n    return psVar2;\n  }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    psVar2 = (section_add *)xmalloc(0x30);\n    pcVar3 = xstrndup(arg,(long)pcVar1 - (long)arg);\n    psVar2->filename = pcVar1 + 1;\n    psVar2->name = pcVar3;\n    psVar2->next = next;\n    psVar2->contents = (bfd_byte *)0x0;\n    psVar2->size = 0;\n    return psVar2;\n  }" { (expression_statement "psVar2 = (section_add *)xmalloc(0x30);" (assignment_expression "psVar2 = (section_add *)xmalloc(0x30)" identifier = (cast_expression "(section_add *)xmalloc(0x30)" ( (type_descriptor "section_add *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "pcVar3 = xstrndup(arg,(long)pcVar1 - (long)arg);" (assignment_expression "pcVar3 = xstrndup(arg,(long)pcVar1 - (long)arg)" identifier = (call_expression "xstrndup(arg,(long)pcVar1 - (long)arg)" identifier (argument_list "(arg,(long)pcVar1 - (long)arg)" ( identifier , (binary_expression "(long)pcVar1 - (long)arg" (cast_expression "(long)pcVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)arg" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "psVar2->filename = pcVar1 + 1;" (assignment_expression "psVar2->filename = pcVar1 + 1" (field_expression "psVar2->filename" identifier -> field_identifier) = (binary_expression "pcVar1 + 1" identifier + number_literal)) ;) (expression_statement "psVar2->name = pcVar3;" (assignment_expression "psVar2->name = pcVar3" (field_expression "psVar2->name" identifier -> field_identifier) = identifier) ;) (expression_statement "psVar2->next = next;" (assignment_expression "psVar2->next = next" (field_expression "psVar2->next" identifier -> field_identifier) = identifier) ;) (expression_statement "psVar2->contents = (bfd_byte *)0x0;" (assignment_expression "psVar2->contents = (bfd_byte *)0x0" (field_expression "psVar2->contents" identifier -> field_identifier) = (cast_expression "(bfd_byte *)0x0" ( (type_descriptor "bfd_byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar2->size = 0;" (assignment_expression "psVar2->size = 0" (field_expression "psVar2->size" identifier -> field_identifier) = number_literal) ;) (return_statement "return psVar2;" return identifier ;) })) (expression_statement "pcVar1 = (char *)dcgettext(0,"bad format for %s",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"bad format for %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"bad format for %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"bad format for %s",5)" identifier (argument_list "(0,"bad format for %s",5)" ( number_literal , (string_literal ""bad format for %s"" " string_content ") , number_literal ))))) ;) comment (expression_statement "fatal(pcVar1,option);" (call_expression "fatal(pcVar1,option)" identifier (argument_list "(pcVar1,option)" ( identifier , identifier ))) ;) })))
(translation_unit "undefined8 * FUN_00108f30(char *param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  char *pcVar1;\n  undefined8 *puVar2;\n  undefined8 uVar3;\n  \n  pcVar1 = strchr(param_1,0x3d);\n  if (pcVar1 != (char *)0x0) {\n    puVar2 = (undefined8 *)xmalloc(0x30);\n    uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);\n    puVar2[2] = pcVar1 + 1;\n    puVar2[1] = uVar3;\n    *puVar2 = param_2;\n    puVar2[4] = 0;\n    puVar2[3] = 0;\n    return puVar2;\n  }\n  uVar3 = dcgettext(0,"bad format for %s",5);\n                    \n  FUN_0011b5c0(uVar3,param_3);\n}\n\n" (function_definition "undefined8 * FUN_00108f30(char *param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  char *pcVar1;\n  undefined8 *puVar2;\n  undefined8 uVar3;\n  \n  pcVar1 = strchr(param_1,0x3d);\n  if (pcVar1 != (char *)0x0) {\n    puVar2 = (undefined8 *)xmalloc(0x30);\n    uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);\n    puVar2[2] = pcVar1 + 1;\n    puVar2[1] = uVar3;\n    *puVar2 = param_2;\n    puVar2[4] = 0;\n    puVar2[3] = 0;\n    return puVar2;\n  }\n  uVar3 = dcgettext(0,"bad format for %s",5);\n                    \n  FUN_0011b5c0(uVar3,param_3);\n}" type_identifier (pointer_declarator "* FUN_00108f30(char *param_1,undefined8 param_2,undefined8 param_3)" * (function_declarator "FUN_00108f30(char *param_1,undefined8 param_2,undefined8 param_3)" identifier (parameter_list "(char *param_1,undefined8 param_2,undefined8 param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) )))) (compound_statement "{\n  char *pcVar1;\n  undefined8 *puVar2;\n  undefined8 uVar3;\n  \n  pcVar1 = strchr(param_1,0x3d);\n  if (pcVar1 != (char *)0x0) {\n    puVar2 = (undefined8 *)xmalloc(0x30);\n    uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);\n    puVar2[2] = pcVar1 + 1;\n    puVar2[1] = uVar3;\n    *puVar2 = param_2;\n    puVar2[4] = 0;\n    puVar2[3] = 0;\n    return puVar2;\n  }\n  uVar3 = dcgettext(0,"bad format for %s",5);\n                    \n  FUN_0011b5c0(uVar3,param_3);\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (expression_statement "pcVar1 = strchr(param_1,0x3d);" (assignment_expression "pcVar1 = strchr(param_1,0x3d)" identifier = (call_expression "strchr(param_1,0x3d)" identifier (argument_list "(param_1,0x3d)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar1 != (char *)0x0) {\n    puVar2 = (undefined8 *)xmalloc(0x30);\n    uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);\n    puVar2[2] = pcVar1 + 1;\n    puVar2[1] = uVar3;\n    *puVar2 = param_2;\n    puVar2[4] = 0;\n    puVar2[3] = 0;\n    return puVar2;\n  }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar2 = (undefined8 *)xmalloc(0x30);\n    uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);\n    puVar2[2] = pcVar1 + 1;\n    puVar2[1] = uVar3;\n    *puVar2 = param_2;\n    puVar2[4] = 0;\n    puVar2[3] = 0;\n    return puVar2;\n  }" { (expression_statement "puVar2 = (undefined8 *)xmalloc(0x30);" (assignment_expression "puVar2 = (undefined8 *)xmalloc(0x30)" identifier = (cast_expression "(undefined8 *)xmalloc(0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);" (assignment_expression "uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1)" identifier = (call_expression "FUN_0011d380(param_1,(long)pcVar1 - (long)param_1)" identifier (argument_list "(param_1,(long)pcVar1 - (long)param_1)" ( identifier , (binary_expression "(long)pcVar1 - (long)param_1" (cast_expression "(long)pcVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "puVar2[2] = pcVar1 + 1;" (assignment_expression "puVar2[2] = pcVar1 + 1" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = (binary_expression "pcVar1 + 1" identifier + number_literal)) ;) (expression_statement "puVar2[1] = uVar3;" (assignment_expression "puVar2[1] = uVar3" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar2 = param_2;" (assignment_expression "*puVar2 = param_2" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "puVar2[4] = 0;" (assignment_expression "puVar2[4] = 0" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[3] = 0;" (assignment_expression "puVar2[3] = 0" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return puVar2;" return identifier ;) })) (expression_statement "uVar3 = dcgettext(0,"bad format for %s",5);" (assignment_expression "uVar3 = dcgettext(0,"bad format for %s",5)" identifier = (call_expression "dcgettext(0,"bad format for %s",5)" identifier (argument_list "(0,"bad format for %s",5)" ( number_literal , (string_literal ""bad format for %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0011b5c0(uVar3,param_3);" (call_expression "FUN_0011b5c0(uVar3,param_3)" identifier (argument_list "(uVar3,param_3)" ( identifier , identifier ))) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })))
(function_definition "undefined8 * FUN_00108f30(char *param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  char *pcVar1;\n  undefined8 *puVar2;\n  undefined8 uVar3;\n  \n  pcVar1 = strchr(param_1,0x3d);\n  if (pcVar1 != (char *)0x0) {\n    puVar2 = (undefined8 *)xmalloc(0x30);\n    uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);\n    puVar2[2] = pcVar1 + 1;\n    puVar2[1] = uVar3;\n    *puVar2 = param_2;\n    puVar2[4] = 0;\n    puVar2[3] = 0;\n    return puVar2;\n  }\n  uVar3 = dcgettext(0,"bad format for %s",5);\n                    \n  FUN_0011b5c0(uVar3,param_3);\n}" (type_identifier "undefined8") (pointer_declarator "* FUN_00108f30(char *param_1,undefined8 param_2,undefined8 param_3)" (* "*") (function_declarator "FUN_00108f30(char *param_1,undefined8 param_2,undefined8 param_3)" (identifier "FUN_00108f30") (parameter_list "(char *param_1,undefined8 param_2,undefined8 param_3)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) () ")")))) (compound_statement "{\n  char *pcVar1;\n  undefined8 *puVar2;\n  undefined8 uVar3;\n  \n  pcVar1 = strchr(param_1,0x3d);\n  if (pcVar1 != (char *)0x0) {\n    puVar2 = (undefined8 *)xmalloc(0x30);\n    uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);\n    puVar2[2] = pcVar1 + 1;\n    puVar2[1] = uVar3;\n    *puVar2 = param_2;\n    puVar2[4] = 0;\n    puVar2[3] = 0;\n    return puVar2;\n  }\n  uVar3 = dcgettext(0,"bad format for %s",5);\n                    \n  FUN_0011b5c0(uVar3,param_3);\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "undefined8 *puVar2;" (type_identifier "undefined8") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (expression_statement "pcVar1 = strchr(param_1,0x3d);" (assignment_expression "pcVar1 = strchr(param_1,0x3d)" (identifier "pcVar1") (= "=") (call_expression "strchr(param_1,0x3d)" (identifier "strchr") (argument_list "(param_1,0x3d)" (( "(") (identifier "param_1") (, ",") (number_literal "0x3d") () ")")))) (; ";")) (if_statement "if (pcVar1 != (char *)0x0) {\n    puVar2 = (undefined8 *)xmalloc(0x30);\n    uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);\n    puVar2[2] = pcVar1 + 1;\n    puVar2[1] = uVar3;\n    *puVar2 = param_2;\n    puVar2[4] = 0;\n    puVar2[3] = 0;\n    return puVar2;\n  }" (if "if") (parenthesized_expression "(pcVar1 != (char *)0x0)" (( "(") (binary_expression "pcVar1 != (char *)0x0" (identifier "pcVar1") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar2 = (undefined8 *)xmalloc(0x30);\n    uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);\n    puVar2[2] = pcVar1 + 1;\n    puVar2[1] = uVar3;\n    *puVar2 = param_2;\n    puVar2[4] = 0;\n    puVar2[3] = 0;\n    return puVar2;\n  }" ({ "{") (expression_statement "puVar2 = (undefined8 *)xmalloc(0x30);" (assignment_expression "puVar2 = (undefined8 *)xmalloc(0x30)" (identifier "puVar2") (= "=") (cast_expression "(undefined8 *)xmalloc(0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x30)" (identifier "xmalloc") (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")"))))) (; ";")) (expression_statement "uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);" (assignment_expression "uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1)" (identifier "uVar3") (= "=") (call_expression "FUN_0011d380(param_1,(long)pcVar1 - (long)param_1)" (identifier "FUN_0011d380") (argument_list "(param_1,(long)pcVar1 - (long)param_1)" (( "(") (identifier "param_1") (, ",") (binary_expression "(long)pcVar1 - (long)param_1" (cast_expression "(long)pcVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar1")) (- "-") (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1"))) () ")")))) (; ";")) (expression_statement "puVar2[2] = pcVar1 + 1;" (assignment_expression "puVar2[2] = pcVar1 + 1" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "pcVar1 + 1" (identifier "pcVar1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar2[1] = uVar3;" (assignment_expression "puVar2[1] = uVar3" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*puVar2 = param_2;" (assignment_expression "*puVar2 = param_2" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar2[4] = 0;" (assignment_expression "puVar2[4] = 0" (subscript_expression "puVar2[4]" (identifier "puVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[3] = 0;" (assignment_expression "puVar2[3] = 0" (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (return_statement "return puVar2;" (return "return") (identifier "puVar2") (; ";")) (} "}"))) (expression_statement "uVar3 = dcgettext(0,"bad format for %s",5);" (assignment_expression "uVar3 = dcgettext(0,"bad format for %s",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"bad format for %s",5)" (identifier "dcgettext") (argument_list "(0,"bad format for %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""bad format for %s"" (" """) (string_content "bad format for %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011b5c0(uVar3,param_3);" (call_expression "FUN_0011b5c0(uVar3,param_3)" (identifier "FUN_0011b5c0") (argument_list "(uVar3,param_3)" (( "(") (identifier "uVar3") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}")))

type_1 * function_1(char *arg,type_1 *next,char *option)

{
  char *var_2;
  type_1 *psVar2;
  char *pcVar3;
  
  var_2 = var_1(arg,0x3d);
  if (var_2 != (char *)0x0) {
    psVar2 = (type_1 *)var_3(0x30);
    pcVar3 = var_4(arg,(long)var_2 - (long)arg);
    psVar2->filename = var_2 + 1;
    psVar2->name = pcVar3;
    psVar2->next = next;
    psVar2->contents = (type_2 *)0x0;
    psVar2->size = 0;
    return psVar2;
  }
  var_2 = (char *)var_5(0,"bad format for %s",5);
                    /* WARNING: Subroutine does not return */
  var_6(var_2,option);
}


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

undefined8 * MASKED(char *param_1,undefined8 param_2,undefined8 param_3)

{
  char *pcVar1;
  undefined8 *puVar2;
  undefined8 uVar3;
  
  pcVar1 = strchr(param_1,0x3d);
  if (pcVar1 != (char *)0x0) {
    puVar2 = (undefined8 *)xmalloc(0x30);
    uVar3 = FUN_0011d380(param_1,(long)pcVar1 - (long)param_1);
    puVar2[2] = pcVar1 + 1;
    puVar2[1] = uVar3;
    *puVar2 = param_2;
    puVar2[4] = 0;
    puVar2[3] = 0;
    return puVar2;
  }
  uVar3 = dcgettext(0,"bad format for %s",5);
                    /* WARNING: Subroutine does not return */
  FUN_0011b5c0(uVar3,param_3);
}

