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

bfd_boolean pr_float_type(void *p,uint size)

{
  pr_handle *info;
  bfd_boolean bVar1;
  char ab [40];
  
  ab[0x24] = '\x18';
  ab[0x25] = -0x65;
  ab[0x26] = '\x03';
  ab[0x27] = '\0';
  info = (pr_handle *)((int)p + 8);
  if (size == 4) {
    bVar1 = push_type(info,"float");
    return bVar1;
  }
  if (size != 8) {
    sprintf(ab,"float%d",size << 3);
    bVar1 = push_type(info,ab);
    return bVar1;
  }
  bVar1 = push_type(info,"double");
  return bVar1;
}



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

void FUN_00039b10(undefined4 param_1,int param_2)

{
  char local_34 [36];
  undefined4 uStack_10;
  
  uStack_10 = 0x39b18;
  if (param_2 == 4) {
    FUN_00038f80();
    return;
  }
  if (param_2 != 8) {
    sprintf(local_34,"float%d",param_2 << 3);
    FUN_00038f80();
    return;
  }
  FUN_00038f80();
  return;
}


PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000153d0
ADD EBX,0x394e8
SUB ESP,0x30
MOV ECX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [ESP + 0x44]
LEA ESI,[ECX + 0x8]
CMP EAX,0x4
JZ 0x00039b80
CMP EAX,0x8
JZ 0x00039b68
SUB ESP,0x4
SHL EAX,0x3
PUSH EAX
LEA EAX,[EBX + 0xfffe43c5]
PUSH EAX
LEA EDI,[ESP + 0x14]
PUSH EDI
CALL 0x000146d0
MOV EDX,EDI
MOV EAX,ESI
CALL 0x00038f80
ADD ESP,0x10
ADD ESP,0x30
POP EBX
POP ESI
POP EDI
RET
LEA EDX,[EBX + 0xfffe50c2]
MOV EAX,ESI
CALL 0x00038f80
ADD ESP,0x30
POP EBX
POP ESI
POP EDI
RET
LEA EDX,[EBX + 0xfffe8ab4]
MOV EAX,ESI
CALL 0x00038f80
ADD ESP,0x30
POP EBX
POP ESI
POP EDI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00039b10(undefined4 param_1,int param_2)\n\n{\n  char local_34 [36];\n  undefined4 uStack_10;\n  \n  uStack_10 = 0x39b18;\n  if (param_2 == 4) {\n    FUN_00038f80();\n    return;\n  }\n  if (param_2 != 8) {\n    sprintf(local_34,"float%d",param_2 << 3);\n    FUN_00038f80();\n    return;\n  }\n  FUN_00038f80();\n  return;\n}\n\n" comment (function_definition "void FUN_00039b10(undefined4 param_1,int param_2)\n\n{\n  char local_34 [36];\n  undefined4 uStack_10;\n  \n  uStack_10 = 0x39b18;\n  if (param_2 == 4) {\n    FUN_00038f80();\n    return;\n  }\n  if (param_2 != 8) {\n    sprintf(local_34,"float%d",param_2 << 3);\n    FUN_00038f80();\n    return;\n  }\n  FUN_00038f80();\n  return;\n}" primitive_type (function_declarator "FUN_00039b10(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char local_34 [36];\n  undefined4 uStack_10;\n  \n  uStack_10 = 0x39b18;\n  if (param_2 == 4) {\n    FUN_00038f80();\n    return;\n  }\n  if (param_2 != 8) {\n    sprintf(local_34,"float%d",param_2 << 3);\n    FUN_00038f80();\n    return;\n  }\n  FUN_00038f80();\n  return;\n}" { (declaration "char local_34 [36];" primitive_type (array_declarator "local_34 [36]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_10;" type_identifier identifier ;) (expression_statement "uStack_10 = 0x39b18;" (assignment_expression "uStack_10 = 0x39b18" identifier = number_literal) ;) (if_statement "if (param_2 == 4) {\n    FUN_00038f80();\n    return;\n  }" if (parenthesized_expression "(param_2 == 4)" ( (binary_expression "param_2 == 4" identifier == number_literal) )) (compound_statement "{\n    FUN_00038f80();\n    return;\n  }" { (expression_statement "FUN_00038f80();" (call_expression "FUN_00038f80()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if (param_2 != 8) {\n    sprintf(local_34,"float%d",param_2 << 3);\n    FUN_00038f80();\n    return;\n  }" if (parenthesized_expression "(param_2 != 8)" ( (binary_expression "param_2 != 8" identifier != number_literal) )) (compound_statement "{\n    sprintf(local_34,"float%d",param_2 << 3);\n    FUN_00038f80();\n    return;\n  }" { (expression_statement "sprintf(local_34,"float%d",param_2 << 3);" (call_expression "sprintf(local_34,"float%d",param_2 << 3)" identifier (argument_list "(local_34,"float%d",param_2 << 3)" ( identifier , (string_literal ""float%d"" " string_content ") , (binary_expression "param_2 << 3" identifier << number_literal) ))) ;) (expression_statement "FUN_00038f80();" (call_expression "FUN_00038f80()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_00038f80();" (call_expression "FUN_00038f80()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(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_float_type(void *p,uint size)\n\n{\n  pr_handle *info;\n  bfd_boolean bVar1;\n  char ab [40];\n  \n  ab[0x24] = '\x18';\n  ab[0x25] = -0x65;\n  ab[0x26] = '\x03';\n  ab[0x27] = '\0';\n  info = (pr_handle *)((int)p + 8);\n  if (size == 4) {\n    bVar1 = push_type(info,"float");\n    return bVar1;\n  }\n  if (size != 8) {\n    sprintf(ab,"float%d",size << 3);\n    bVar1 = push_type(info,ab);\n    return bVar1;\n  }\n  bVar1 = push_type(info,"double");\n  return bVar1;\n}\n\n" comment comment (function_definition "bfd_boolean pr_float_type(void *p,uint size)\n\n{\n  pr_handle *info;\n  bfd_boolean bVar1;\n  char ab [40];\n  \n  ab[0x24] = '\x18';\n  ab[0x25] = -0x65;\n  ab[0x26] = '\x03';\n  ab[0x27] = '\0';\n  info = (pr_handle *)((int)p + 8);\n  if (size == 4) {\n    bVar1 = push_type(info,"float");\n    return bVar1;\n  }\n  if (size != 8) {\n    sprintf(ab,"float%d",size << 3);\n    bVar1 = push_type(info,ab);\n    return bVar1;\n  }\n  bVar1 = push_type(info,"double");\n  return bVar1;\n}" type_identifier (function_declarator "pr_float_type(void *p,uint size)" identifier (parameter_list "(void *p,uint size)" ( (parameter_declaration "void *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "uint size" type_identifier identifier) ))) (compound_statement "{\n  pr_handle *info;\n  bfd_boolean bVar1;\n  char ab [40];\n  \n  ab[0x24] = '\x18';\n  ab[0x25] = -0x65;\n  ab[0x26] = '\x03';\n  ab[0x27] = '\0';\n  info = (pr_handle *)((int)p + 8);\n  if (size == 4) {\n    bVar1 = push_type(info,"float");\n    return bVar1;\n  }\n  if (size != 8) {\n    sprintf(ab,"float%d",size << 3);\n    bVar1 = push_type(info,ab);\n    return bVar1;\n  }\n  bVar1 = push_type(info,"double");\n  return bVar1;\n}" { (declaration "pr_handle *info;" type_identifier (pointer_declarator "*info" * identifier) ;) (declaration "bfd_boolean bVar1;" type_identifier identifier ;) (declaration "char ab [40];" primitive_type (array_declarator "ab [40]" identifier [ number_literal ]) ;) (expression_statement "ab[0x24] = '\x18';" (assignment_expression "ab[0x24] = '\x18'" (subscript_expression "ab[0x24]" identifier [ number_literal ]) = (char_literal "'\x18'" ' escape_sequence ')) ;) (expression_statement "ab[0x25] = -0x65;" (assignment_expression "ab[0x25] = -0x65" (subscript_expression "ab[0x25]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "ab[0x26] = '\x03';" (assignment_expression "ab[0x26] = '\x03'" (subscript_expression "ab[0x26]" identifier [ number_literal ]) = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "ab[0x27] = '\0';" (assignment_expression "ab[0x27] = '\0'" (subscript_expression "ab[0x27]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (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) )))) ;) (if_statement "if (size == 4) {\n    bVar1 = push_type(info,"float");\n    return bVar1;\n  }" if (parenthesized_expression "(size == 4)" ( (binary_expression "size == 4" identifier == number_literal) )) (compound_statement "{\n    bVar1 = push_type(info,"float");\n    return bVar1;\n  }" { (expression_statement "bVar1 = push_type(info,"float");" (assignment_expression "bVar1 = push_type(info,"float")" identifier = (call_expression "push_type(info,"float")" identifier (argument_list "(info,"float")" ( identifier , (string_literal ""float"" " string_content ") )))) ;) (return_statement "return bVar1;" return identifier ;) })) (if_statement "if (size != 8) {\n    sprintf(ab,"float%d",size << 3);\n    bVar1 = push_type(info,ab);\n    return bVar1;\n  }" if (parenthesized_expression "(size != 8)" ( (binary_expression "size != 8" identifier != number_literal) )) (compound_statement "{\n    sprintf(ab,"float%d",size << 3);\n    bVar1 = push_type(info,ab);\n    return bVar1;\n  }" { (expression_statement "sprintf(ab,"float%d",size << 3);" (call_expression "sprintf(ab,"float%d",size << 3)" identifier (argument_list "(ab,"float%d",size << 3)" ( identifier , (string_literal ""float%d"" " string_content ") , (binary_expression "size << 3" identifier << number_literal) ))) ;) (expression_statement "bVar1 = push_type(info,ab);" (assignment_expression "bVar1 = push_type(info,ab)" identifier = (call_expression "push_type(info,ab)" identifier (argument_list "(info,ab)" ( identifier , identifier )))) ;) (return_statement "return bVar1;" return identifier ;) })) (expression_statement "bVar1 = push_type(info,"double");" (assignment_expression "bVar1 = push_type(info,"double")" identifier = (call_expression "push_type(info,"double")" identifier (argument_list "(info,"double")" ( identifier , (string_literal ""double"" " string_content ") )))) ;) (return_statement "return bVar1;" return identifier ;) })))
(translation_unit "void FUN_00039b10(undefined4 param_1,int param_2)\n\n{\n  char local_34 [36];\n  undefined4 uStack_10;\n  \n  uStack_10 = 0x39b18;\n  if (param_2 == 4) {\n    FUN_00038f80();\n    return;\n  }\n  if (param_2 != 8) {\n    sprintf(local_34,"float%d",param_2 << 3);\n    FUN_00038f80();\n    return;\n  }\n  FUN_00038f80();\n  return;\n}\n\n" (function_definition "void FUN_00039b10(undefined4 param_1,int param_2)\n\n{\n  char local_34 [36];\n  undefined4 uStack_10;\n  \n  uStack_10 = 0x39b18;\n  if (param_2 == 4) {\n    FUN_00038f80();\n    return;\n  }\n  if (param_2 != 8) {\n    sprintf(local_34,"float%d",param_2 << 3);\n    FUN_00038f80();\n    return;\n  }\n  FUN_00038f80();\n  return;\n}" primitive_type (function_declarator "FUN_00039b10(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char local_34 [36];\n  undefined4 uStack_10;\n  \n  uStack_10 = 0x39b18;\n  if (param_2 == 4) {\n    FUN_00038f80();\n    return;\n  }\n  if (param_2 != 8) {\n    sprintf(local_34,"float%d",param_2 << 3);\n    FUN_00038f80();\n    return;\n  }\n  FUN_00038f80();\n  return;\n}" { (declaration "char local_34 [36];" primitive_type (array_declarator "local_34 [36]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_10;" type_identifier identifier ;) (expression_statement "uStack_10 = 0x39b18;" (assignment_expression "uStack_10 = 0x39b18" identifier = number_literal) ;) (if_statement "if (param_2 == 4) {\n    FUN_00038f80();\n    return;\n  }" if (parenthesized_expression "(param_2 == 4)" ( (binary_expression "param_2 == 4" identifier == number_literal) )) (compound_statement "{\n    FUN_00038f80();\n    return;\n  }" { (expression_statement "FUN_00038f80();" (call_expression "FUN_00038f80()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if (param_2 != 8) {\n    sprintf(local_34,"float%d",param_2 << 3);\n    FUN_00038f80();\n    return;\n  }" if (parenthesized_expression "(param_2 != 8)" ( (binary_expression "param_2 != 8" identifier != number_literal) )) (compound_statement "{\n    sprintf(local_34,"float%d",param_2 << 3);\n    FUN_00038f80();\n    return;\n  }" { (expression_statement "sprintf(local_34,"float%d",param_2 << 3);" (call_expression "sprintf(local_34,"float%d",param_2 << 3)" identifier (argument_list "(local_34,"float%d",param_2 << 3)" ( identifier , (string_literal ""float%d"" " string_content ") , (binary_expression "param_2 << 3" identifier << number_literal) ))) ;) (expression_statement "FUN_00038f80();" (call_expression "FUN_00038f80()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_00038f80();" (call_expression "FUN_00038f80()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (binary_expression IDENT << LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00039b10(undefined4 param_1,int param_2)\n\n{\n  char local_34 [36];\n  undefined4 uStack_10;\n  \n  uStack_10 = 0x39b18;\n  if (param_2 == 4) {\n    FUN_00038f80();\n    return;\n  }\n  if (param_2 != 8) {\n    sprintf(local_34,"float%d",param_2 << 3);\n    FUN_00038f80();\n    return;\n  }\n  FUN_00038f80();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00039b10(undefined4 param_1,int param_2)" (identifier "FUN_00039b10") (parameter_list "(undefined4 param_1,int param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  char local_34 [36];\n  undefined4 uStack_10;\n  \n  uStack_10 = 0x39b18;\n  if (param_2 == 4) {\n    FUN_00038f80();\n    return;\n  }\n  if (param_2 != 8) {\n    sprintf(local_34,"float%d",param_2 << 3);\n    FUN_00038f80();\n    return;\n  }\n  FUN_00038f80();\n  return;\n}" ({ "{") (declaration "char local_34 [36];" (primitive_type "char") (array_declarator "local_34 [36]" (identifier "local_34") ([ "[") (number_literal "36") (] "]")) (; ";")) (declaration "undefined4 uStack_10;" (type_identifier "undefined4") (identifier "uStack_10") (; ";")) (expression_statement "uStack_10 = 0x39b18;" (assignment_expression "uStack_10 = 0x39b18" (identifier "uStack_10") (= "=") (number_literal "0x39b18")) (; ";")) (if_statement "if (param_2 == 4) {\n    FUN_00038f80();\n    return;\n  }" (if "if") (parenthesized_expression "(param_2 == 4)" (( "(") (binary_expression "param_2 == 4" (identifier "param_2") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n    FUN_00038f80();\n    return;\n  }" ({ "{") (expression_statement "FUN_00038f80();" (call_expression "FUN_00038f80()" (identifier "FUN_00038f80") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (param_2 != 8) {\n    sprintf(local_34,"float%d",param_2 << 3);\n    FUN_00038f80();\n    return;\n  }" (if "if") (parenthesized_expression "(param_2 != 8)" (( "(") (binary_expression "param_2 != 8" (identifier "param_2") (!= "!=") (number_literal "8")) () ")")) (compound_statement "{\n    sprintf(local_34,"float%d",param_2 << 3);\n    FUN_00038f80();\n    return;\n  }" ({ "{") (expression_statement "sprintf(local_34,"float%d",param_2 << 3);" (call_expression "sprintf(local_34,"float%d",param_2 << 3)" (identifier "sprintf") (argument_list "(local_34,"float%d",param_2 << 3)" (( "(") (identifier "local_34") (, ",") (string_literal ""float%d"" (" """) (string_content "float%d") (" """)) (, ",") (binary_expression "param_2 << 3" (identifier "param_2") (<< "<<") (number_literal "3")) () ")"))) (; ";")) (expression_statement "FUN_00038f80();" (call_expression "FUN_00038f80()" (identifier "FUN_00038f80") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00038f80();" (call_expression "FUN_00038f80()" (identifier "FUN_00038f80") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

type_1 function_1(void *p,type_2 var_1)

{
  type_3 *info;
  type_1 bVar1;
  char ab [40];
  
  ab[0x24] = '\x18';
  ab[0x25] = -0x65;
  ab[0x26] = '\x03';
  ab[0x27] = '\0';
  info = (type_3 *)((int)p + 8);
  if (var_1 == 4) {
    bVar1 = var_2(info,"float");
    return bVar1;
  }
  if (var_1 != 8) {
    var_3(ab,"float%d",var_1 << 3);
    bVar1 = var_2(info,ab);
    return bVar1;
  }
  bVar1 = var_2(info,"double");
  return bVar1;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))) (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)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))))

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

void MASKED(undefined4 param_1,int param_2)

{
  char local_34 [36];
  undefined4 uStack_10;
  
  uStack_10 = 0x39b18;
  if (param_2 == 4) {
    FUN_00038f80();
    return;
  }
  if (param_2 != 8) {
    sprintf(local_34,"float%d",param_2 << 3);
    FUN_00038f80();
    return;
  }
  FUN_00038f80();
  return;
}

