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

void __regparm3 unw_print_xyreg(char *cp,uint x,uint ytreg)

{
  uint uVar1;
  
  uVar1 = x * 2 | ytreg >> 7 & 1;
  if (uVar1 == 1) {
    sprintf(cp,"f%u",ytreg & 0x1f);
    return;
  }
  if (uVar1 != 0) {
    if (uVar1 == 2) {
      sprintf(cp,"b%u",ytreg & 0x1f);
    }
    return;
  }
  sprintf(cp,"r%u",ytreg & 0x1f);
  return;
}



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

void __regparm3 FUN_0004bb00(char *param_1,int param_2,uint param_3)

{
  uint uVar1;
  
  uVar1 = param_2 * 2 | param_3 >> 7 & 1;
  if (uVar1 == 1) {
    sprintf(param_1,"f%u",param_3 & 0x1f);
    return;
  }
  if (uVar1 != 0) {
    if (uVar1 == 2) {
      sprintf(param_1,"b%u",param_3 & 0x1f);
    }
    return;
  }
  sprintf(param_1,"r%u",param_3 & 0x1f);
  return;
}


PUSH ESI
MOV ESI,ECX
ADD EDX,EDX
PUSH EBX
SHR ESI,0x7
CALL 0x00013f70
ADD EBX,0x684f2
AND ESI,0x1
OR EDX,ESI
SUB ESP,0x4
CMP EDX,0x1
JZ 0x0004bb50
TEST EDX,EDX
JZ 0x0004bb70
CMP EDX,0x2
JNZ 0x0004bb41
SUB ESP,0x4
AND ECX,0x1f
LEA EDX,[EBX + 0xfffda67e]
PUSH ECX
PUSH EDX
PUSH EAX
CALL 0x00013370
ADD ESP,0x10
ADD ESP,0x4
POP EBX
POP ESI
RET
SUB ESP,0x4
LEA EDX,[EBX + 0xfffda67a]
AND ECX,0x1f
PUSH ECX
PUSH EDX
PUSH EAX
CALL 0x00013370
ADD ESP,0x10
ADD ESP,0x4
POP EBX
POP ESI
RET
SUB ESP,0x4
LEA EDX,[EBX + 0xfffda676]
AND ECX,0x1f
PUSH ECX
PUSH EDX
PUSH EAX
CALL 0x00013370
ADD ESP,0x10
ADD ESP,0x4
POP EBX
POP ESI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_0004bb00(char *param_1,int param_2,uint param_3)\n\n{\n  uint uVar1;\n  \n  uVar1 = param_2 * 2 | param_3 >> 7 & 1;\n  if (uVar1 == 1) {\n    sprintf(param_1,"f%u",param_3 & 0x1f);\n    return;\n  }\n  if (uVar1 != 0) {\n    if (uVar1 == 2) {\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }\n    return;\n  }\n  sprintf(param_1,"r%u",param_3 & 0x1f);\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_0004bb00(char *param_1,int param_2,uint param_3)\n\n{\n  uint uVar1;\n  \n  uVar1 = param_2 * 2 | param_3 >> 7 & 1;\n  if (uVar1 == 1) {\n    sprintf(param_1,"f%u",param_3 & 0x1f);\n    return;\n  }\n  if (uVar1 != 0) {\n    if (uVar1 == 2) {\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }\n    return;\n  }\n  sprintf(param_1,"r%u",param_3 & 0x1f);\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0004bb00(char *param_1,int param_2,uint param_3)" identifier (parameter_list "(char *param_1,int param_2,uint param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = param_2 * 2 | param_3 >> 7 & 1;\n  if (uVar1 == 1) {\n    sprintf(param_1,"f%u",param_3 & 0x1f);\n    return;\n  }\n  if (uVar1 != 0) {\n    if (uVar1 == 2) {\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }\n    return;\n  }\n  sprintf(param_1,"r%u",param_3 & 0x1f);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (expression_statement "uVar1 = param_2 * 2 | param_3 >> 7 & 1;" (assignment_expression "uVar1 = param_2 * 2 | param_3 >> 7 & 1" identifier = (binary_expression "param_2 * 2 | param_3 >> 7 & 1" (binary_expression "param_2 * 2" identifier * number_literal) | (binary_expression "param_3 >> 7 & 1" (binary_expression "param_3 >> 7" identifier >> number_literal) & number_literal))) ;) (if_statement "if (uVar1 == 1) {\n    sprintf(param_1,"f%u",param_3 & 0x1f);\n    return;\n  }" if (parenthesized_expression "(uVar1 == 1)" ( (binary_expression "uVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    sprintf(param_1,"f%u",param_3 & 0x1f);\n    return;\n  }" { (expression_statement "sprintf(param_1,"f%u",param_3 & 0x1f);" (call_expression "sprintf(param_1,"f%u",param_3 & 0x1f)" identifier (argument_list "(param_1,"f%u",param_3 & 0x1f)" ( identifier , (string_literal ""f%u"" " string_content ") , (binary_expression "param_3 & 0x1f" identifier & number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar1 != 0) {\n    if (uVar1 == 2) {\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }\n    return;\n  }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (uVar1 == 2) {\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }\n    return;\n  }" { (if_statement "if (uVar1 == 2) {\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }" if (parenthesized_expression "(uVar1 == 2)" ( (binary_expression "uVar1 == 2" identifier == number_literal) )) (compound_statement "{\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }" { (expression_statement "sprintf(param_1,"b%u",param_3 & 0x1f);" (call_expression "sprintf(param_1,"b%u",param_3 & 0x1f)" identifier (argument_list "(param_1,"b%u",param_3 & 0x1f)" ( identifier , (string_literal ""b%u"" " string_content ") , (binary_expression "param_3 & 0x1f" identifier & number_literal) ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "sprintf(param_1,"r%u",param_3 & 0x1f);" (call_expression "sprintf(param_1,"r%u",param_3 & 0x1f)" identifier (argument_list "(param_1,"r%u",param_3 & 0x1f)" ( identifier , (string_literal ""r%u"" " string_content ") , (binary_expression "param_3 & 0x1f" identifier & number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 unw_print_xyreg(char *cp,uint x,uint ytreg)\n\n{\n  uint uVar1;\n  \n  uVar1 = x * 2 | ytreg >> 7 & 1;\n  if (uVar1 == 1) {\n    sprintf(cp,"f%u",ytreg & 0x1f);\n    return;\n  }\n  if (uVar1 != 0) {\n    if (uVar1 == 2) {\n      sprintf(cp,"b%u",ytreg & 0x1f);\n    }\n    return;\n  }\n  sprintf(cp,"r%u",ytreg & 0x1f);\n  return;\n}\n\n" comment (function_definition "void __regparm3 unw_print_xyreg(char *cp,uint x,uint ytreg)\n\n{\n  uint uVar1;\n  \n  uVar1 = x * 2 | ytreg >> 7 & 1;\n  if (uVar1 == 1) {\n    sprintf(cp,"f%u",ytreg & 0x1f);\n    return;\n  }\n  if (uVar1 != 0) {\n    if (uVar1 == 2) {\n      sprintf(cp,"b%u",ytreg & 0x1f);\n    }\n    return;\n  }\n  sprintf(cp,"r%u",ytreg & 0x1f);\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "unw_print_xyreg(char *cp,uint x,uint ytreg)" identifier (parameter_list "(char *cp,uint x,uint ytreg)" ( (parameter_declaration "char *cp" primitive_type (pointer_declarator "*cp" * identifier)) , (parameter_declaration "uint x" type_identifier identifier) , (parameter_declaration "uint ytreg" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = x * 2 | ytreg >> 7 & 1;\n  if (uVar1 == 1) {\n    sprintf(cp,"f%u",ytreg & 0x1f);\n    return;\n  }\n  if (uVar1 != 0) {\n    if (uVar1 == 2) {\n      sprintf(cp,"b%u",ytreg & 0x1f);\n    }\n    return;\n  }\n  sprintf(cp,"r%u",ytreg & 0x1f);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (expression_statement "uVar1 = x * 2 | ytreg >> 7 & 1;" (assignment_expression "uVar1 = x * 2 | ytreg >> 7 & 1" identifier = (binary_expression "x * 2 | ytreg >> 7 & 1" (binary_expression "x * 2" identifier * number_literal) | (binary_expression "ytreg >> 7 & 1" (binary_expression "ytreg >> 7" identifier >> number_literal) & number_literal))) ;) (if_statement "if (uVar1 == 1) {\n    sprintf(cp,"f%u",ytreg & 0x1f);\n    return;\n  }" if (parenthesized_expression "(uVar1 == 1)" ( (binary_expression "uVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    sprintf(cp,"f%u",ytreg & 0x1f);\n    return;\n  }" { (expression_statement "sprintf(cp,"f%u",ytreg & 0x1f);" (call_expression "sprintf(cp,"f%u",ytreg & 0x1f)" identifier (argument_list "(cp,"f%u",ytreg & 0x1f)" ( identifier , (string_literal ""f%u"" " string_content ") , (binary_expression "ytreg & 0x1f" identifier & number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar1 != 0) {\n    if (uVar1 == 2) {\n      sprintf(cp,"b%u",ytreg & 0x1f);\n    }\n    return;\n  }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (uVar1 == 2) {\n      sprintf(cp,"b%u",ytreg & 0x1f);\n    }\n    return;\n  }" { (if_statement "if (uVar1 == 2) {\n      sprintf(cp,"b%u",ytreg & 0x1f);\n    }" if (parenthesized_expression "(uVar1 == 2)" ( (binary_expression "uVar1 == 2" identifier == number_literal) )) (compound_statement "{\n      sprintf(cp,"b%u",ytreg & 0x1f);\n    }" { (expression_statement "sprintf(cp,"b%u",ytreg & 0x1f);" (call_expression "sprintf(cp,"b%u",ytreg & 0x1f)" identifier (argument_list "(cp,"b%u",ytreg & 0x1f)" ( identifier , (string_literal ""b%u"" " string_content ") , (binary_expression "ytreg & 0x1f" identifier & number_literal) ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "sprintf(cp,"r%u",ytreg & 0x1f);" (call_expression "sprintf(cp,"r%u",ytreg & 0x1f)" identifier (argument_list "(cp,"r%u",ytreg & 0x1f)" ( identifier , (string_literal ""r%u"" " string_content ") , (binary_expression "ytreg & 0x1f" identifier & number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_0004bb00(char *param_1,int param_2,uint param_3)\n\n{\n  uint uVar1;\n  \n  uVar1 = param_2 * 2 | param_3 >> 7 & 1;\n  if (uVar1 == 1) {\n    sprintf(param_1,"f%u",param_3 & 0x1f);\n    return;\n  }\n  if (uVar1 != 0) {\n    if (uVar1 == 2) {\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }\n    return;\n  }\n  sprintf(param_1,"r%u",param_3 & 0x1f);\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_0004bb00(char *param_1,int param_2,uint param_3)\n\n{\n  uint uVar1;\n  \n  uVar1 = param_2 * 2 | param_3 >> 7 & 1;\n  if (uVar1 == 1) {\n    sprintf(param_1,"f%u",param_3 & 0x1f);\n    return;\n  }\n  if (uVar1 != 0) {\n    if (uVar1 == 2) {\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }\n    return;\n  }\n  sprintf(param_1,"r%u",param_3 & 0x1f);\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0004bb00(char *param_1,int param_2,uint param_3)" identifier (parameter_list "(char *param_1,int param_2,uint param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = param_2 * 2 | param_3 >> 7 & 1;\n  if (uVar1 == 1) {\n    sprintf(param_1,"f%u",param_3 & 0x1f);\n    return;\n  }\n  if (uVar1 != 0) {\n    if (uVar1 == 2) {\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }\n    return;\n  }\n  sprintf(param_1,"r%u",param_3 & 0x1f);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (expression_statement "uVar1 = param_2 * 2 | param_3 >> 7 & 1;" (assignment_expression "uVar1 = param_2 * 2 | param_3 >> 7 & 1" identifier = (binary_expression "param_2 * 2 | param_3 >> 7 & 1" (binary_expression "param_2 * 2" identifier * number_literal) | (binary_expression "param_3 >> 7 & 1" (binary_expression "param_3 >> 7" identifier >> number_literal) & number_literal))) ;) (if_statement "if (uVar1 == 1) {\n    sprintf(param_1,"f%u",param_3 & 0x1f);\n    return;\n  }" if (parenthesized_expression "(uVar1 == 1)" ( (binary_expression "uVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    sprintf(param_1,"f%u",param_3 & 0x1f);\n    return;\n  }" { (expression_statement "sprintf(param_1,"f%u",param_3 & 0x1f);" (call_expression "sprintf(param_1,"f%u",param_3 & 0x1f)" identifier (argument_list "(param_1,"f%u",param_3 & 0x1f)" ( identifier , (string_literal ""f%u"" " string_content ") , (binary_expression "param_3 & 0x1f" identifier & number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar1 != 0) {\n    if (uVar1 == 2) {\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }\n    return;\n  }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (uVar1 == 2) {\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }\n    return;\n  }" { (if_statement "if (uVar1 == 2) {\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }" if (parenthesized_expression "(uVar1 == 2)" ( (binary_expression "uVar1 == 2" identifier == number_literal) )) (compound_statement "{\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }" { (expression_statement "sprintf(param_1,"b%u",param_3 & 0x1f);" (call_expression "sprintf(param_1,"b%u",param_3 & 0x1f)" identifier (argument_list "(param_1,"b%u",param_3 & 0x1f)" ( identifier , (string_literal ""b%u"" " string_content ") , (binary_expression "param_3 & 0x1f" identifier & number_literal) ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "sprintf(param_1,"r%u",param_3 & 0x1f);" (call_expression "sprintf(param_1,"r%u",param_3 & 0x1f)" identifier (argument_list "(param_1,"r%u",param_3 & 0x1f)" ( identifier , (string_literal ""r%u"" " string_content ") , (binary_expression "param_3 & 0x1f" identifier & number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) | (binary_expression (binary_expression IDENT >> LIT) & LIT))) ;) (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) ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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) ))) ;) })) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (binary_expression IDENT & LIT) ))) ;) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_0004bb00(char *param_1,int param_2,uint param_3)\n\n{\n  uint uVar1;\n  \n  uVar1 = param_2 * 2 | param_3 >> 7 & 1;\n  if (uVar1 == 1) {\n    sprintf(param_1,"f%u",param_3 & 0x1f);\n    return;\n  }\n  if (uVar1 != 0) {\n    if (uVar1 == 2) {\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }\n    return;\n  }\n  sprintf(param_1,"r%u",param_3 & 0x1f);\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0004bb00(char *param_1,int param_2,uint param_3)" (identifier "FUN_0004bb00") (parameter_list "(char *param_1,int param_2,uint param_3)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) () ")"))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = param_2 * 2 | param_3 >> 7 & 1;\n  if (uVar1 == 1) {\n    sprintf(param_1,"f%u",param_3 & 0x1f);\n    return;\n  }\n  if (uVar1 != 0) {\n    if (uVar1 == 2) {\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }\n    return;\n  }\n  sprintf(param_1,"r%u",param_3 & 0x1f);\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (expression_statement "uVar1 = param_2 * 2 | param_3 >> 7 & 1;" (assignment_expression "uVar1 = param_2 * 2 | param_3 >> 7 & 1" (identifier "uVar1") (= "=") (binary_expression "param_2 * 2 | param_3 >> 7 & 1" (binary_expression "param_2 * 2" (identifier "param_2") (* "*") (number_literal "2")) (| "|") (binary_expression "param_3 >> 7 & 1" (binary_expression "param_3 >> 7" (identifier "param_3") (>> ">>") (number_literal "7")) (& "&") (number_literal "1")))) (; ";")) (if_statement "if (uVar1 == 1) {\n    sprintf(param_1,"f%u",param_3 & 0x1f);\n    return;\n  }" (if "if") (parenthesized_expression "(uVar1 == 1)" (( "(") (binary_expression "uVar1 == 1" (identifier "uVar1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    sprintf(param_1,"f%u",param_3 & 0x1f);\n    return;\n  }" ({ "{") (expression_statement "sprintf(param_1,"f%u",param_3 & 0x1f);" (call_expression "sprintf(param_1,"f%u",param_3 & 0x1f)" (identifier "sprintf") (argument_list "(param_1,"f%u",param_3 & 0x1f)" (( "(") (identifier "param_1") (, ",") (string_literal ""f%u"" (" """) (string_content "f%u") (" """)) (, ",") (binary_expression "param_3 & 0x1f" (identifier "param_3") (& "&") (number_literal "0x1f")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (uVar1 != 0) {\n    if (uVar1 == 2) {\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(uVar1 != 0)" (( "(") (binary_expression "uVar1 != 0" (identifier "uVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (uVar1 == 2) {\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }\n    return;\n  }" ({ "{") (if_statement "if (uVar1 == 2) {\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }" (if "if") (parenthesized_expression "(uVar1 == 2)" (( "(") (binary_expression "uVar1 == 2" (identifier "uVar1") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      sprintf(param_1,"b%u",param_3 & 0x1f);\n    }" ({ "{") (expression_statement "sprintf(param_1,"b%u",param_3 & 0x1f);" (call_expression "sprintf(param_1,"b%u",param_3 & 0x1f)" (identifier "sprintf") (argument_list "(param_1,"b%u",param_3 & 0x1f)" (( "(") (identifier "param_1") (, ",") (string_literal ""b%u"" (" """) (string_content "b%u") (" """)) (, ",") (binary_expression "param_3 & 0x1f" (identifier "param_3") (& "&") (number_literal "0x1f")) () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "sprintf(param_1,"r%u",param_3 & 0x1f);" (call_expression "sprintf(param_1,"r%u",param_3 & 0x1f)" (identifier "sprintf") (argument_list "(param_1,"r%u",param_3 & 0x1f)" (( "(") (identifier "param_1") (, ",") (string_literal ""r%u"" (" """) (string_content "r%u") (" """)) (, ",") (binary_expression "param_3 & 0x1f" (identifier "param_3") (& "&") (number_literal "0x1f")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void __regparm3 function_1(char *cp,type_1 var_1,type_1 var_2)

{
  type_1 var_3;
  
  var_3 = var_1 * 2 | var_2 >> 7 & 1;
  if (var_3 == 1) {
    var_4(cp,"f%u",var_2 & 0x1f);
    return;
  }
  if (var_3 != 0) {
    if (var_3 == 2) {
      var_4(cp,"b%u",var_2 & 0x1f);
    }
    return;
  }
  var_4(cp,"r%u",var_2 & 0x1f);
  return;
}


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

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

void __regparm3 MASKED(char *param_1,int param_2,uint param_3)

{
  uint uVar1;
  
  uVar1 = param_2 * 2 | param_3 >> 7 & 1;
  if (uVar1 == 1) {
    sprintf(param_1,"f%u",param_3 & 0x1f);
    return;
  }
  if (uVar1 != 0) {
    if (uVar1 == 2) {
      sprintf(param_1,"b%u",param_3 & 0x1f);
    }
    return;
  }
  sprintf(param_1,"r%u",param_3 & 0x1f);
  return;
}

