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

uchar * unw_decode_p2_p5(uchar *dp,uint code,void *arg,uchar *end)

{
  byte bVar1;
  uchar *puVar2;
  uchar *in_stack_ffffffc4;
  char brstr [20];
  
  if ((code & 0x10) != 0) {
    puVar2 = unw_decode_p2_p5(dp,code,end,in_stack_ffffffc4);
    return puVar2;
  }
  bVar1 = *dp;
  unw_print_brmask(brstr,code * 2 & 0x1e | (uint)(bVar1 >> 7));
  printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",brstr,bVar1 & 0x7f);
  return dp + 1;
}



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

byte * FUN_0004ba80(byte *param_1,uint param_2)

{
  byte bVar1;
  byte *pbVar2;
  undefined1 local_30 [28];
  undefined4 uStack_14;
  
  uStack_14 = 0x4ba89;
  if ((param_2 & 0x10) != 0) {
    pbVar2 = (byte *)FUN_0004b6a0();
    return pbVar2;
  }
  bVar1 = *param_1;
  FUN_0004ac00();
  printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f);
  return param_1 + 1;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00013f70
ADD EBX,0x68577
SUB ESP,0x2c
MOV EDX,dword ptr [ESP + 0x44]
MOV EAX,dword ptr [ESP + 0x40]
TEST DL,0x10
JZ 0x0004bab8
MOV ECX,dword ptr [ESP + 0x4c]
CALL 0x0004b6a0
ADD ESP,0x2c
MOV ESI,EAX
POP EBX
MOV EAX,ESI
POP ESI
POP EDI
POP EBP
RET
MOVZX EDI,byte ptr [EAX]
LEA ESI,[EAX + 0x1]
ADD EDX,EDX
LEA EBP,[ESP + 0xc]
AND EDX,0x1e
MOV EAX,EDI
AND EDI,0x7f
SHR AL,0x7
MOVZX EAX,AL
OR EDX,EAX
MOV EAX,EBP
CALL 0x0004ac00
LEA EAX,[EBX + 0xfffbc46c]
PUSH EDI
PUSH EBP
PUSH EAX
LEA EAX,[EBX + 0xfffda9c0]
PUSH EAX
CALL 0x00013060
ADD ESP,0x10
MOV EAX,ESI
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbyte * FUN_0004ba80(byte *param_1,uint param_2)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  undefined1 local_30 [28];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4ba89;\n  if ((param_2 & 0x10) != 0) {\n    pbVar2 = (byte *)FUN_0004b6a0();\n    return pbVar2;\n  }\n  bVar1 = *param_1;\n  FUN_0004ac00();\n  printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f);\n  return param_1 + 1;\n}\n\n" comment (function_definition "byte * FUN_0004ba80(byte *param_1,uint param_2)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  undefined1 local_30 [28];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4ba89;\n  if ((param_2 & 0x10) != 0) {\n    pbVar2 = (byte *)FUN_0004b6a0();\n    return pbVar2;\n  }\n  bVar1 = *param_1;\n  FUN_0004ac00();\n  printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f);\n  return param_1 + 1;\n}" type_identifier (pointer_declarator "* FUN_0004ba80(byte *param_1,uint param_2)" * (function_declarator "FUN_0004ba80(byte *param_1,uint param_2)" identifier (parameter_list "(byte *param_1,uint param_2)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) )))) (compound_statement "{\n  byte bVar1;\n  byte *pbVar2;\n  undefined1 local_30 [28];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4ba89;\n  if ((param_2 & 0x10) != 0) {\n    pbVar2 = (byte *)FUN_0004b6a0();\n    return pbVar2;\n  }\n  bVar1 = *param_1;\n  FUN_0004ac00();\n  printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f);\n  return param_1 + 1;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "undefined1 local_30 [28];" type_identifier (array_declarator "local_30 [28]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x4ba89;" (assignment_expression "uStack_14 = 0x4ba89" identifier = number_literal) ;) (if_statement "if ((param_2 & 0x10) != 0) {\n    pbVar2 = (byte *)FUN_0004b6a0();\n    return pbVar2;\n  }" if (parenthesized_expression "((param_2 & 0x10) != 0)" ( (binary_expression "(param_2 & 0x10) != 0" (parenthesized_expression "(param_2 & 0x10)" ( (binary_expression "param_2 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    pbVar2 = (byte *)FUN_0004b6a0();\n    return pbVar2;\n  }" { (expression_statement "pbVar2 = (byte *)FUN_0004b6a0();" (assignment_expression "pbVar2 = (byte *)FUN_0004b6a0()" identifier = (cast_expression "(byte *)FUN_0004b6a0()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0004b6a0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return pbVar2;" return identifier ;) })) (expression_statement "bVar1 = *param_1;" (assignment_expression "bVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "FUN_0004ac00();" (call_expression "FUN_0004ac00()" identifier (argument_list "()" ( ))) ;) (expression_statement "printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f);" (call_expression "printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f)" identifier (argument_list "("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f)" ( (string_literal ""\t%s:br_gr(brmask=[%s],gr=r%u)\n"" " escape_sequence string_content escape_sequence ") , (string_literal ""P2"" " string_content ") , identifier , (binary_expression "bVar1 & 0x7f" identifier & number_literal) ))) ;) (return_statement "return param_1 + 1;" return (binary_expression "param_1 + 1" identifier + number_literal) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nuchar * unw_decode_p2_p5(uchar *dp,uint code,void *arg,uchar *end)\n\n{\n  byte bVar1;\n  uchar *puVar2;\n  uchar *in_stack_ffffffc4;\n  char brstr [20];\n  \n  if ((code & 0x10) != 0) {\n    puVar2 = unw_decode_p2_p5(dp,code,end,in_stack_ffffffc4);\n    return puVar2;\n  }\n  bVar1 = *dp;\n  unw_print_brmask(brstr,code * 2 & 0x1e | (uint)(bVar1 >> 7));\n  printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",brstr,bVar1 & 0x7f);\n  return dp + 1;\n}\n\n" comment (function_definition "uchar * unw_decode_p2_p5(uchar *dp,uint code,void *arg,uchar *end)\n\n{\n  byte bVar1;\n  uchar *puVar2;\n  uchar *in_stack_ffffffc4;\n  char brstr [20];\n  \n  if ((code & 0x10) != 0) {\n    puVar2 = unw_decode_p2_p5(dp,code,end,in_stack_ffffffc4);\n    return puVar2;\n  }\n  bVar1 = *dp;\n  unw_print_brmask(brstr,code * 2 & 0x1e | (uint)(bVar1 >> 7));\n  printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",brstr,bVar1 & 0x7f);\n  return dp + 1;\n}" type_identifier (pointer_declarator "* unw_decode_p2_p5(uchar *dp,uint code,void *arg,uchar *end)" * (function_declarator "unw_decode_p2_p5(uchar *dp,uint code,void *arg,uchar *end)" identifier (parameter_list "(uchar *dp,uint code,void *arg,uchar *end)" ( (parameter_declaration "uchar *dp" type_identifier (pointer_declarator "*dp" * identifier)) , (parameter_declaration "uint code" type_identifier identifier) , (parameter_declaration "void *arg" primitive_type (pointer_declarator "*arg" * identifier)) , (parameter_declaration "uchar *end" type_identifier (pointer_declarator "*end" * identifier)) )))) (compound_statement "{\n  byte bVar1;\n  uchar *puVar2;\n  uchar *in_stack_ffffffc4;\n  char brstr [20];\n  \n  if ((code & 0x10) != 0) {\n    puVar2 = unw_decode_p2_p5(dp,code,end,in_stack_ffffffc4);\n    return puVar2;\n  }\n  bVar1 = *dp;\n  unw_print_brmask(brstr,code * 2 & 0x1e | (uint)(bVar1 >> 7));\n  printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",brstr,bVar1 & 0x7f);\n  return dp + 1;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uchar *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uchar *in_stack_ffffffc4;" type_identifier (pointer_declarator "*in_stack_ffffffc4" * identifier) ;) (declaration "char brstr [20];" primitive_type (array_declarator "brstr [20]" identifier [ number_literal ]) ;) (if_statement "if ((code & 0x10) != 0) {\n    puVar2 = unw_decode_p2_p5(dp,code,end,in_stack_ffffffc4);\n    return puVar2;\n  }" if (parenthesized_expression "((code & 0x10) != 0)" ( (binary_expression "(code & 0x10) != 0" (parenthesized_expression "(code & 0x10)" ( (binary_expression "code & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    puVar2 = unw_decode_p2_p5(dp,code,end,in_stack_ffffffc4);\n    return puVar2;\n  }" { (expression_statement "puVar2 = unw_decode_p2_p5(dp,code,end,in_stack_ffffffc4);" (assignment_expression "puVar2 = unw_decode_p2_p5(dp,code,end,in_stack_ffffffc4)" identifier = (call_expression "unw_decode_p2_p5(dp,code,end,in_stack_ffffffc4)" identifier (argument_list "(dp,code,end,in_stack_ffffffc4)" ( identifier , identifier , identifier , identifier )))) ;) (return_statement "return puVar2;" return identifier ;) })) (expression_statement "bVar1 = *dp;" (assignment_expression "bVar1 = *dp" identifier = (pointer_expression "*dp" * identifier)) ;) (expression_statement "unw_print_brmask(brstr,code * 2 & 0x1e | (uint)(bVar1 >> 7));" (call_expression "unw_print_brmask(brstr,code * 2 & 0x1e | (uint)(bVar1 >> 7))" identifier (argument_list "(brstr,code * 2 & 0x1e | (uint)(bVar1 >> 7))" ( identifier , (binary_expression "code * 2 & 0x1e | (uint)(bVar1 >> 7)" (binary_expression "code * 2 & 0x1e" (binary_expression "code * 2" identifier * number_literal) & number_literal) | (call_expression "(uint)(bVar1 >> 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar1 >> 7)" ( (binary_expression "bVar1 >> 7" identifier >> number_literal) )))) ))) ;) (expression_statement "printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",brstr,bVar1 & 0x7f);" (call_expression "printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",brstr,bVar1 & 0x7f)" identifier (argument_list "("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",brstr,bVar1 & 0x7f)" ( (string_literal ""\t%s:br_gr(brmask=[%s],gr=r%u)\n"" " escape_sequence string_content escape_sequence ") , (string_literal ""P2"" " string_content ") , identifier , (binary_expression "bVar1 & 0x7f" identifier & number_literal) ))) ;) (return_statement "return dp + 1;" return (binary_expression "dp + 1" identifier + number_literal) ;) })))
(translation_unit "byte * FUN_0004ba80(byte *param_1,uint param_2)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  undefined1 local_30 [28];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4ba89;\n  if ((param_2 & 0x10) != 0) {\n    pbVar2 = (byte *)FUN_0004b6a0();\n    return pbVar2;\n  }\n  bVar1 = *param_1;\n  FUN_0004ac00();\n  printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f);\n  return param_1 + 1;\n}\n\n" (function_definition "byte * FUN_0004ba80(byte *param_1,uint param_2)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  undefined1 local_30 [28];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4ba89;\n  if ((param_2 & 0x10) != 0) {\n    pbVar2 = (byte *)FUN_0004b6a0();\n    return pbVar2;\n  }\n  bVar1 = *param_1;\n  FUN_0004ac00();\n  printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f);\n  return param_1 + 1;\n}" type_identifier (pointer_declarator "* FUN_0004ba80(byte *param_1,uint param_2)" * (function_declarator "FUN_0004ba80(byte *param_1,uint param_2)" identifier (parameter_list "(byte *param_1,uint param_2)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) )))) (compound_statement "{\n  byte bVar1;\n  byte *pbVar2;\n  undefined1 local_30 [28];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4ba89;\n  if ((param_2 & 0x10) != 0) {\n    pbVar2 = (byte *)FUN_0004b6a0();\n    return pbVar2;\n  }\n  bVar1 = *param_1;\n  FUN_0004ac00();\n  printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f);\n  return param_1 + 1;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "undefined1 local_30 [28];" type_identifier (array_declarator "local_30 [28]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x4ba89;" (assignment_expression "uStack_14 = 0x4ba89" identifier = number_literal) ;) (if_statement "if ((param_2 & 0x10) != 0) {\n    pbVar2 = (byte *)FUN_0004b6a0();\n    return pbVar2;\n  }" if (parenthesized_expression "((param_2 & 0x10) != 0)" ( (binary_expression "(param_2 & 0x10) != 0" (parenthesized_expression "(param_2 & 0x10)" ( (binary_expression "param_2 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    pbVar2 = (byte *)FUN_0004b6a0();\n    return pbVar2;\n  }" { (expression_statement "pbVar2 = (byte *)FUN_0004b6a0();" (assignment_expression "pbVar2 = (byte *)FUN_0004b6a0()" identifier = (cast_expression "(byte *)FUN_0004b6a0()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0004b6a0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return pbVar2;" return identifier ;) })) (expression_statement "bVar1 = *param_1;" (assignment_expression "bVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "FUN_0004ac00();" (call_expression "FUN_0004ac00()" identifier (argument_list "()" ( ))) ;) (expression_statement "printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f);" (call_expression "printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f)" identifier (argument_list "("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f)" ( (string_literal ""\t%s:br_gr(brmask=[%s],gr=r%u)\n"" " escape_sequence string_content escape_sequence ") , (string_literal ""P2"" " string_content ") , identifier , (binary_expression "bVar1 & 0x7f" identifier & number_literal) ))) ;) (return_statement "return param_1 + 1;" return (binary_expression "param_1 + 1" identifier + number_literal) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence ") , (string_literal " string_content ") , IDENT , (binary_expression IDENT & LIT) ))) ;) (return_statement return (binary_expression IDENT + LIT) ;) })))
(function_definition "byte * FUN_0004ba80(byte *param_1,uint param_2)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  undefined1 local_30 [28];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4ba89;\n  if ((param_2 & 0x10) != 0) {\n    pbVar2 = (byte *)FUN_0004b6a0();\n    return pbVar2;\n  }\n  bVar1 = *param_1;\n  FUN_0004ac00();\n  printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f);\n  return param_1 + 1;\n}" (type_identifier "byte") (pointer_declarator "* FUN_0004ba80(byte *param_1,uint param_2)" (* "*") (function_declarator "FUN_0004ba80(byte *param_1,uint param_2)" (identifier "FUN_0004ba80") (parameter_list "(byte *param_1,uint param_2)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")")))) (compound_statement "{\n  byte bVar1;\n  byte *pbVar2;\n  undefined1 local_30 [28];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4ba89;\n  if ((param_2 & 0x10) != 0) {\n    pbVar2 = (byte *)FUN_0004b6a0();\n    return pbVar2;\n  }\n  bVar1 = *param_1;\n  FUN_0004ac00();\n  printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f);\n  return param_1 + 1;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "byte *pbVar2;" (type_identifier "byte") (pointer_declarator "*pbVar2" (* "*") (identifier "pbVar2")) (; ";")) (declaration "undefined1 local_30 [28];" (type_identifier "undefined1") (array_declarator "local_30 [28]" (identifier "local_30") ([ "[") (number_literal "28") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x4ba89;" (assignment_expression "uStack_14 = 0x4ba89" (identifier "uStack_14") (= "=") (number_literal "0x4ba89")) (; ";")) (if_statement "if ((param_2 & 0x10) != 0) {\n    pbVar2 = (byte *)FUN_0004b6a0();\n    return pbVar2;\n  }" (if "if") (parenthesized_expression "((param_2 & 0x10) != 0)" (( "(") (binary_expression "(param_2 & 0x10) != 0" (parenthesized_expression "(param_2 & 0x10)" (( "(") (binary_expression "param_2 & 0x10" (identifier "param_2") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    pbVar2 = (byte *)FUN_0004b6a0();\n    return pbVar2;\n  }" ({ "{") (expression_statement "pbVar2 = (byte *)FUN_0004b6a0();" (assignment_expression "pbVar2 = (byte *)FUN_0004b6a0()" (identifier "pbVar2") (= "=") (cast_expression "(byte *)FUN_0004b6a0()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0004b6a0()" (identifier "FUN_0004b6a0") (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pbVar2;" (return "return") (identifier "pbVar2") (; ";")) (} "}"))) (expression_statement "bVar1 = *param_1;" (assignment_expression "bVar1 = *param_1" (identifier "bVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "FUN_0004ac00();" (call_expression "FUN_0004ac00()" (identifier "FUN_0004ac00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f);" (call_expression "printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f)" (identifier "printf") (argument_list "("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f)" (( "(") (string_literal ""\t%s:br_gr(brmask=[%s],gr=r%u)\n"" (" """) (escape_sequence "\t") (string_content "%s:br_gr(brmask=[%s],gr=r%u)") (escape_sequence "\n") (" """)) (, ",") (string_literal ""P2"" (" """) (string_content "P2") (" """)) (, ",") (identifier "local_30") (, ",") (binary_expression "bVar1 & 0x7f" (identifier "bVar1") (& "&") (number_literal "0x7f")) () ")"))) (; ";")) (return_statement "return param_1 + 1;" (return "return") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) (; ";")) (} "}")))

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

type_1 * function_1(type_1 *var_5,type_2 var_1,void *arg,type_1 *end)

{
  type_3 var_3;
  type_1 *puVar2;
  type_1 *in_stack_ffffffc4;
  char brstr [20];
  
  if ((var_1 & 0x10) != 0) {
    puVar2 = function_1(var_5,var_1,end,in_stack_ffffffc4);
    return puVar2;
  }
  var_3 = *var_5;
  var_2(brstr,var_1 * 2 & 0x1e | (type_2)(var_3 >> 7));
  var_4("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",brstr,var_3 & 0x7f);
  return var_5 + 1;
}


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

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

byte * MASKED(byte *param_1,uint param_2)

{
  byte bVar1;
  byte *pbVar2;
  undefined1 local_30 [28];
  undefined4 uStack_14;
  
  uStack_14 = 0x4ba89;
  if ((param_2 & 0x10) != 0) {
    pbVar2 = (byte *)FUN_0004b6a0();
    return pbVar2;
  }
  bVar1 = *param_1;
  FUN_0004ac00();
  printf("\t%s:br_gr(brmask=[%s],gr=r%u)\n","P2",local_30,bVar1 & 0x7f);
  return param_1 + 1;
}

