
/* WARNING: Function: __x86.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */

void __regparm3 print_literal(byte *param_1,char *param_2)

{
  byte *pbVar1;
  byte *pbVar2;
  byte *pbVar3;
  byte *pbVar4;
  byte bVar5;
  
  *param_1 = 0;
  bVar5 = *param_2;
  pbVar2 = param_1;
  if (bVar5 == 0) {
    bVar5 = 0x28;
    param_2 = "(NULL)";
  }
  do {
    pbVar4 = pbVar2;
    if ((char)bVar5 < '\0') {
      if (bVar5 != 0x9b) {
        pbVar3 = pbVar2 + 1;
        goto LAB_0009c450;
      }
      pbVar2[0] = 0x1b;
      pbVar2[1] = 0x5b;
      pbVar2[2] = 0x6d;
      pbVar2[3] = 0;
      pbVar2[3] = 0x2e;
      pbVar2[4] = 0x1b;
      pbVar2[5] = 0x5b;
      pbVar2[6] = 0x37;
      pbVar2[7] = 0x6d;
      pbVar2[8] = 0;
      pbVar3 = pbVar2 + 8;
    }
    else {
      pbVar1 = pbVar2 + 1;
      if (bVar5 < 0x20) {
        *pbVar2 = 0x5e;
        bVar5 = bVar5 | 0x40;
        pbVar4 = pbVar1;
        pbVar3 = pbVar2 + 2;
      }
      else {
        pbVar3 = pbVar1;
        if (bVar5 == 0x7f) {
          *pbVar2 = 0x5e;
          pbVar3 = pbVar2 + 2;
          bVar5 = 0x3f;
          pbVar4 = pbVar1;
        }
      }
LAB_0009c450:
      *pbVar4 = bVar5;
      pbVar4[1] = 0;
    }
    if (*param_2 == 10) {
      pbVar3[0] = 0x24;
      pbVar3[1] = 0;
      pbVar3 = pbVar3 + 1;
    }
    if (0x76 < (int)pbVar3 - (int)param_1) {
      return;
    }
    param_2 = (char *)((byte *)param_2 + 1);
    bVar5 = *param_2;
    pbVar2 = pbVar3;
    if (bVar5 == 0) {
      return;
    }
  } while( true );
}



/* WARNING: Function: __i686.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */

void __regparm3 FUN_0009c3ff(byte *param_1,char *param_2)

{
  byte *pbVar1;
  byte *pbVar2;
  byte *pbVar3;
  byte *pbVar4;
  byte bVar5;
  
  *param_1 = 0;
  bVar5 = *param_2;
  pbVar2 = param_1;
  if (bVar5 == 0) {
    bVar5 = 0x28;
    param_2 = "(NULL)";
  }
  do {
    pbVar4 = pbVar2;
    if ((char)bVar5 < '\0') {
      if (bVar5 != 0x9b) {
        pbVar3 = pbVar2 + 1;
        goto LAB_0009c450;
      }
      pbVar2[0] = 0x1b;
      pbVar2[1] = 0x5b;
      pbVar2[2] = 0x6d;
      pbVar2[3] = 0;
      pbVar2[3] = 0x2e;
      pbVar2[4] = 0x1b;
      pbVar2[5] = 0x5b;
      pbVar2[6] = 0x37;
      pbVar2[7] = 0x6d;
      pbVar2[8] = 0;
      pbVar3 = pbVar2 + 8;
    }
    else {
      pbVar1 = pbVar2 + 1;
      if (bVar5 < 0x20) {
        *pbVar2 = 0x5e;
        bVar5 = bVar5 | 0x40;
        pbVar4 = pbVar1;
        pbVar3 = pbVar2 + 2;
      }
      else {
        pbVar3 = pbVar1;
        if (bVar5 == 0x7f) {
          *pbVar2 = 0x5e;
          pbVar3 = pbVar2 + 2;
          bVar5 = 0x3f;
          pbVar4 = pbVar1;
        }
      }
LAB_0009c450:
      *pbVar4 = bVar5;
      pbVar4[1] = 0;
    }
    if (*param_2 == 10) {
      pbVar3[0] = 0x24;
      pbVar3[1] = 0;
      pbVar3 = pbVar3 + 1;
    }
    if (0x76 < (int)pbVar3 - (int)param_1) {
      return;
    }
    param_2 = (char *)((byte *)param_2 + 1);
    bVar5 = *param_2;
    pbVar2 = pbVar3;
    if (bVar5 == 0) {
      return;
    }
  } while( true );
}


PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x0001a689
ADD ECX,0x34619
MOV byte ptr [EAX],0x0
MOV BL,byte ptr [EDX]
TEST BL,BL
JZ 0x0009c493
MOV ECX,EAX
TEST BL,BL
JNS 0x0009c43b
CMP BL,0x9b
JNZ 0x0009c48e
MOV dword ptr [ECX],0x6d5b1b
MOV byte ptr [ECX + 0x3],0x2e
MOV dword ptr [ECX + 0x4],0x6d375b1b
MOV byte ptr [ECX + 0x8],0x0
ADD ECX,0x8
JMP 0x0009c458
LEA ESI,[ECX + 0x1]
CMP BL,0x1f
JA 0x0009c470
MOV byte ptr [ECX],0x5e
OR EBX,0x40
LEA EDI,[ECX + 0x2]
MOV ECX,ESI
MOV ESI,EDI
MOV byte ptr [ECX],BL
MOV byte ptr [ECX + 0x1],0x0
MOV ECX,ESI
CMP byte ptr [EDX],0xa
JNZ 0x0009c463
MOV word ptr [ECX],0x24
INC ECX
MOV EBX,ECX
SUB EBX,EAX
CMP EBX,0x76
JLE 0x0009c483
POP EBX
POP ESI
POP EDI
RET
CMP BL,0x7f
JNZ 0x0009c450
MOV byte ptr [ECX],0x5e
LEA EBX,[ECX + 0x2]
MOV ECX,ESI
MOV ESI,EBX
MOV BL,0x3f
JMP 0x0009c450
INC EDX
MOV BL,byte ptr [EDX]
TEST BL,BL
JNZ 0x0009c418
POP EBX
POP ESI
POP EDI
RET
LEA ESI,[ECX + 0x1]
JMP 0x0009c450
MOV BL,0x28
LEA EDX,[ECX + 0xffffc590]
JMP 0x0009c416
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */\n\nvoid __regparm3 FUN_0009c3ff(byte *param_1,char *param_2)\n\n{\n  byte *pbVar1;\n  byte *pbVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  \n  *param_1 = 0;\n  bVar5 = *param_2;\n  pbVar2 = param_1;\n  if (bVar5 == 0) {\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }\n  do {\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  } while( true );\n}\n\n" comment (function_definition "void __regparm3 FUN_0009c3ff(byte *param_1,char *param_2)\n\n{\n  byte *pbVar1;\n  byte *pbVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  \n  *param_1 = 0;\n  bVar5 = *param_2;\n  pbVar2 = param_1;\n  if (bVar5 == 0) {\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }\n  do {\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  } while( true );\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0009c3ff(byte *param_1,char *param_2)" identifier (parameter_list "(byte *param_1,char *param_2)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  byte *pbVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  \n  *param_1 = 0;\n  bVar5 = *param_2;\n  pbVar2 = param_1;\n  if (bVar5 == 0) {\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }\n  do {\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  } while( true );\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "byte bVar5;" type_identifier identifier ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "bVar5 = *param_2;" (assignment_expression "bVar5 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "pbVar2 = param_1;" (assignment_expression "pbVar2 = param_1" identifier = identifier) ;) (if_statement "if (bVar5 == 0) {\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }" { (expression_statement "bVar5 = 0x28;" (assignment_expression "bVar5 = 0x28" identifier = number_literal) ;) (expression_statement "param_2 = "(NULL)";" (assignment_expression "param_2 = "(NULL)"" identifier = (string_literal ""(NULL)"" " string_content ")) ;) })) (do_statement "do {\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  }" { (expression_statement "pbVar4 = pbVar2;" (assignment_expression "pbVar4 = pbVar2" identifier = identifier) ;) (if_statement "if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }" if (parenthesized_expression "((char)bVar5 < '\0')" ( (binary_expression "(char)bVar5 < '\0'" (cast_expression "(char)bVar5" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }" { (if_statement "if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }" if (parenthesized_expression "(bVar5 != 0x9b)" ( (binary_expression "bVar5 != 0x9b" identifier != number_literal) )) (compound_statement "{\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }" { (expression_statement "pbVar3 = pbVar2 + 1;" (assignment_expression "pbVar3 = pbVar2 + 1" identifier = (binary_expression "pbVar2 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0009c450;" goto statement_identifier ;) })) (expression_statement "pbVar2[0] = 0x1b;" (assignment_expression "pbVar2[0] = 0x1b" (subscript_expression "pbVar2[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[1] = 0x5b;" (assignment_expression "pbVar2[1] = 0x5b" (subscript_expression "pbVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[2] = 0x6d;" (assignment_expression "pbVar2[2] = 0x6d" (subscript_expression "pbVar2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[3] = 0;" (assignment_expression "pbVar2[3] = 0" (subscript_expression "pbVar2[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[3] = 0x2e;" (assignment_expression "pbVar2[3] = 0x2e" (subscript_expression "pbVar2[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[4] = 0x1b;" (assignment_expression "pbVar2[4] = 0x1b" (subscript_expression "pbVar2[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[5] = 0x5b;" (assignment_expression "pbVar2[5] = 0x5b" (subscript_expression "pbVar2[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[6] = 0x37;" (assignment_expression "pbVar2[6] = 0x37" (subscript_expression "pbVar2[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[7] = 0x6d;" (assignment_expression "pbVar2[7] = 0x6d" (subscript_expression "pbVar2[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[8] = 0;" (assignment_expression "pbVar2[8] = 0" (subscript_expression "pbVar2[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar3 = pbVar2 + 8;" (assignment_expression "pbVar3 = pbVar2 + 8" identifier = (binary_expression "pbVar2 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }" else (compound_statement "{\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }" { (expression_statement "pbVar1 = pbVar2 + 1;" (assignment_expression "pbVar1 = pbVar2 + 1" identifier = (binary_expression "pbVar2 + 1" identifier + number_literal)) ;) (if_statement "if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }" if (parenthesized_expression "(bVar5 < 0x20)" ( (binary_expression "bVar5 < 0x20" identifier < number_literal) )) (compound_statement "{\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }" { (expression_statement "*pbVar2 = 0x5e;" (assignment_expression "*pbVar2 = 0x5e" (pointer_expression "*pbVar2" * identifier) = number_literal) ;) (expression_statement "bVar5 = bVar5 | 0x40;" (assignment_expression "bVar5 = bVar5 | 0x40" identifier = (binary_expression "bVar5 | 0x40" identifier | number_literal)) ;) (expression_statement "pbVar4 = pbVar1;" (assignment_expression "pbVar4 = pbVar1" identifier = identifier) ;) (expression_statement "pbVar3 = pbVar2 + 2;" (assignment_expression "pbVar3 = pbVar2 + 2" identifier = (binary_expression "pbVar2 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }" else (compound_statement "{\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }" { (expression_statement "pbVar3 = pbVar1;" (assignment_expression "pbVar3 = pbVar1" identifier = identifier) ;) (if_statement "if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }" if (parenthesized_expression "(bVar5 == 0x7f)" ( (binary_expression "bVar5 == 0x7f" identifier == number_literal) )) (compound_statement "{\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }" { (expression_statement "*pbVar2 = 0x5e;" (assignment_expression "*pbVar2 = 0x5e" (pointer_expression "*pbVar2" * identifier) = number_literal) ;) (expression_statement "pbVar3 = pbVar2 + 2;" (assignment_expression "pbVar3 = pbVar2 + 2" identifier = (binary_expression "pbVar2 + 2" identifier + number_literal)) ;) (expression_statement "bVar5 = 0x3f;" (assignment_expression "bVar5 = 0x3f" identifier = number_literal) ;) (expression_statement "pbVar4 = pbVar1;" (assignment_expression "pbVar4 = pbVar1" identifier = identifier) ;) })) }))) (labeled_statement "LAB_0009c450:\n      *pbVar4 = bVar5;" statement_identifier : (expression_statement "*pbVar4 = bVar5;" (assignment_expression "*pbVar4 = bVar5" (pointer_expression "*pbVar4" * identifier) = identifier) ;)) (expression_statement "pbVar4[1] = 0;" (assignment_expression "pbVar4[1] = 0" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) = number_literal) ;) }))) (if_statement "if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }" if (parenthesized_expression "(*param_2 == 10)" ( (binary_expression "*param_2 == 10" (pointer_expression "*param_2" * identifier) == number_literal) )) (compound_statement "{\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }" { (expression_statement "pbVar3[0] = 0x24;" (assignment_expression "pbVar3[0] = 0x24" (subscript_expression "pbVar3[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar3[1] = 0;" (assignment_expression "pbVar3[1] = 0" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar3 = pbVar3 + 1;" (assignment_expression "pbVar3 = pbVar3 + 1" identifier = (binary_expression "pbVar3 + 1" identifier + number_literal)) ;) })) (if_statement "if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }" if (parenthesized_expression "(0x76 < (int)pbVar3 - (int)param_1)" ( (binary_expression "0x76 < (int)pbVar3 - (int)param_1" number_literal < (binary_expression "(int)pbVar3 - (int)param_1" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "param_2 = (char *)((byte *)param_2 + 1);" (assignment_expression "param_2 = (char *)((byte *)param_2 + 1)" identifier = (cast_expression "(char *)((byte *)param_2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)param_2 + 1)" ( (binary_expression "(byte *)param_2 + 1" (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (expression_statement "bVar5 = *param_2;" (assignment_expression "bVar5 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "pbVar2 = pbVar3;" (assignment_expression "pbVar2 = pbVar3" identifier = identifier) ;) (if_statement "if (bVar5 == 0) {\n      return;\n    }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */\n\nvoid __regparm3 print_literal(byte *param_1,char *param_2)\n\n{\n  byte *pbVar1;\n  byte *pbVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  \n  *param_1 = 0;\n  bVar5 = *param_2;\n  pbVar2 = param_1;\n  if (bVar5 == 0) {\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }\n  do {\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  } while( true );\n}\n\n" comment (function_definition "void __regparm3 print_literal(byte *param_1,char *param_2)\n\n{\n  byte *pbVar1;\n  byte *pbVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  \n  *param_1 = 0;\n  bVar5 = *param_2;\n  pbVar2 = param_1;\n  if (bVar5 == 0) {\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }\n  do {\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  } while( true );\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "print_literal(byte *param_1,char *param_2)" identifier (parameter_list "(byte *param_1,char *param_2)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  byte *pbVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  \n  *param_1 = 0;\n  bVar5 = *param_2;\n  pbVar2 = param_1;\n  if (bVar5 == 0) {\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }\n  do {\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  } while( true );\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "byte bVar5;" type_identifier identifier ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "bVar5 = *param_2;" (assignment_expression "bVar5 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "pbVar2 = param_1;" (assignment_expression "pbVar2 = param_1" identifier = identifier) ;) (if_statement "if (bVar5 == 0) {\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }" { (expression_statement "bVar5 = 0x28;" (assignment_expression "bVar5 = 0x28" identifier = number_literal) ;) (expression_statement "param_2 = "(NULL)";" (assignment_expression "param_2 = "(NULL)"" identifier = (string_literal ""(NULL)"" " string_content ")) ;) })) (do_statement "do {\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  }" { (expression_statement "pbVar4 = pbVar2;" (assignment_expression "pbVar4 = pbVar2" identifier = identifier) ;) (if_statement "if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }" if (parenthesized_expression "((char)bVar5 < '\0')" ( (binary_expression "(char)bVar5 < '\0'" (cast_expression "(char)bVar5" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }" { (if_statement "if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }" if (parenthesized_expression "(bVar5 != 0x9b)" ( (binary_expression "bVar5 != 0x9b" identifier != number_literal) )) (compound_statement "{\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }" { (expression_statement "pbVar3 = pbVar2 + 1;" (assignment_expression "pbVar3 = pbVar2 + 1" identifier = (binary_expression "pbVar2 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0009c450;" goto statement_identifier ;) })) (expression_statement "pbVar2[0] = 0x1b;" (assignment_expression "pbVar2[0] = 0x1b" (subscript_expression "pbVar2[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[1] = 0x5b;" (assignment_expression "pbVar2[1] = 0x5b" (subscript_expression "pbVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[2] = 0x6d;" (assignment_expression "pbVar2[2] = 0x6d" (subscript_expression "pbVar2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[3] = 0;" (assignment_expression "pbVar2[3] = 0" (subscript_expression "pbVar2[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[3] = 0x2e;" (assignment_expression "pbVar2[3] = 0x2e" (subscript_expression "pbVar2[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[4] = 0x1b;" (assignment_expression "pbVar2[4] = 0x1b" (subscript_expression "pbVar2[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[5] = 0x5b;" (assignment_expression "pbVar2[5] = 0x5b" (subscript_expression "pbVar2[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[6] = 0x37;" (assignment_expression "pbVar2[6] = 0x37" (subscript_expression "pbVar2[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[7] = 0x6d;" (assignment_expression "pbVar2[7] = 0x6d" (subscript_expression "pbVar2[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[8] = 0;" (assignment_expression "pbVar2[8] = 0" (subscript_expression "pbVar2[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar3 = pbVar2 + 8;" (assignment_expression "pbVar3 = pbVar2 + 8" identifier = (binary_expression "pbVar2 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }" else (compound_statement "{\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }" { (expression_statement "pbVar1 = pbVar2 + 1;" (assignment_expression "pbVar1 = pbVar2 + 1" identifier = (binary_expression "pbVar2 + 1" identifier + number_literal)) ;) (if_statement "if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }" if (parenthesized_expression "(bVar5 < 0x20)" ( (binary_expression "bVar5 < 0x20" identifier < number_literal) )) (compound_statement "{\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }" { (expression_statement "*pbVar2 = 0x5e;" (assignment_expression "*pbVar2 = 0x5e" (pointer_expression "*pbVar2" * identifier) = number_literal) ;) (expression_statement "bVar5 = bVar5 | 0x40;" (assignment_expression "bVar5 = bVar5 | 0x40" identifier = (binary_expression "bVar5 | 0x40" identifier | number_literal)) ;) (expression_statement "pbVar4 = pbVar1;" (assignment_expression "pbVar4 = pbVar1" identifier = identifier) ;) (expression_statement "pbVar3 = pbVar2 + 2;" (assignment_expression "pbVar3 = pbVar2 + 2" identifier = (binary_expression "pbVar2 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }" else (compound_statement "{\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }" { (expression_statement "pbVar3 = pbVar1;" (assignment_expression "pbVar3 = pbVar1" identifier = identifier) ;) (if_statement "if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }" if (parenthesized_expression "(bVar5 == 0x7f)" ( (binary_expression "bVar5 == 0x7f" identifier == number_literal) )) (compound_statement "{\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }" { (expression_statement "*pbVar2 = 0x5e;" (assignment_expression "*pbVar2 = 0x5e" (pointer_expression "*pbVar2" * identifier) = number_literal) ;) (expression_statement "pbVar3 = pbVar2 + 2;" (assignment_expression "pbVar3 = pbVar2 + 2" identifier = (binary_expression "pbVar2 + 2" identifier + number_literal)) ;) (expression_statement "bVar5 = 0x3f;" (assignment_expression "bVar5 = 0x3f" identifier = number_literal) ;) (expression_statement "pbVar4 = pbVar1;" (assignment_expression "pbVar4 = pbVar1" identifier = identifier) ;) })) }))) (labeled_statement "LAB_0009c450:\n      *pbVar4 = bVar5;" statement_identifier : (expression_statement "*pbVar4 = bVar5;" (assignment_expression "*pbVar4 = bVar5" (pointer_expression "*pbVar4" * identifier) = identifier) ;)) (expression_statement "pbVar4[1] = 0;" (assignment_expression "pbVar4[1] = 0" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) = number_literal) ;) }))) (if_statement "if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }" if (parenthesized_expression "(*param_2 == 10)" ( (binary_expression "*param_2 == 10" (pointer_expression "*param_2" * identifier) == number_literal) )) (compound_statement "{\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }" { (expression_statement "pbVar3[0] = 0x24;" (assignment_expression "pbVar3[0] = 0x24" (subscript_expression "pbVar3[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar3[1] = 0;" (assignment_expression "pbVar3[1] = 0" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar3 = pbVar3 + 1;" (assignment_expression "pbVar3 = pbVar3 + 1" identifier = (binary_expression "pbVar3 + 1" identifier + number_literal)) ;) })) (if_statement "if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }" if (parenthesized_expression "(0x76 < (int)pbVar3 - (int)param_1)" ( (binary_expression "0x76 < (int)pbVar3 - (int)param_1" number_literal < (binary_expression "(int)pbVar3 - (int)param_1" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "param_2 = (char *)((byte *)param_2 + 1);" (assignment_expression "param_2 = (char *)((byte *)param_2 + 1)" identifier = (cast_expression "(char *)((byte *)param_2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)param_2 + 1)" ( (binary_expression "(byte *)param_2 + 1" (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (expression_statement "bVar5 = *param_2;" (assignment_expression "bVar5 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "pbVar2 = pbVar3;" (assignment_expression "pbVar2 = pbVar3" identifier = identifier) ;) (if_statement "if (bVar5 == 0) {\n      return;\n    }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void __regparm3 FUN_0009c3ff(byte *param_1,char *param_2)\n\n{\n  byte *pbVar1;\n  byte *pbVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  \n  *param_1 = 0;\n  bVar5 = *param_2;\n  pbVar2 = param_1;\n  if (bVar5 == 0) {\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }\n  do {\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  } while( true );\n}\n\n" (function_definition "void __regparm3 FUN_0009c3ff(byte *param_1,char *param_2)\n\n{\n  byte *pbVar1;\n  byte *pbVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  \n  *param_1 = 0;\n  bVar5 = *param_2;\n  pbVar2 = param_1;\n  if (bVar5 == 0) {\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }\n  do {\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  } while( true );\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0009c3ff(byte *param_1,char *param_2)" identifier (parameter_list "(byte *param_1,char *param_2)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  byte *pbVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  \n  *param_1 = 0;\n  bVar5 = *param_2;\n  pbVar2 = param_1;\n  if (bVar5 == 0) {\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }\n  do {\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  } while( true );\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "byte bVar5;" type_identifier identifier ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "bVar5 = *param_2;" (assignment_expression "bVar5 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "pbVar2 = param_1;" (assignment_expression "pbVar2 = param_1" identifier = identifier) ;) (if_statement "if (bVar5 == 0) {\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }" { (expression_statement "bVar5 = 0x28;" (assignment_expression "bVar5 = 0x28" identifier = number_literal) ;) (expression_statement "param_2 = "(NULL)";" (assignment_expression "param_2 = "(NULL)"" identifier = (string_literal ""(NULL)"" " string_content ")) ;) })) (do_statement "do {\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  }" { (expression_statement "pbVar4 = pbVar2;" (assignment_expression "pbVar4 = pbVar2" identifier = identifier) ;) (if_statement "if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }" if (parenthesized_expression "((char)bVar5 < '\0')" ( (binary_expression "(char)bVar5 < '\0'" (cast_expression "(char)bVar5" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }" { (if_statement "if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }" if (parenthesized_expression "(bVar5 != 0x9b)" ( (binary_expression "bVar5 != 0x9b" identifier != number_literal) )) (compound_statement "{\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }" { (expression_statement "pbVar3 = pbVar2 + 1;" (assignment_expression "pbVar3 = pbVar2 + 1" identifier = (binary_expression "pbVar2 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0009c450;" goto statement_identifier ;) })) (expression_statement "pbVar2[0] = 0x1b;" (assignment_expression "pbVar2[0] = 0x1b" (subscript_expression "pbVar2[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[1] = 0x5b;" (assignment_expression "pbVar2[1] = 0x5b" (subscript_expression "pbVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[2] = 0x6d;" (assignment_expression "pbVar2[2] = 0x6d" (subscript_expression "pbVar2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[3] = 0;" (assignment_expression "pbVar2[3] = 0" (subscript_expression "pbVar2[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[3] = 0x2e;" (assignment_expression "pbVar2[3] = 0x2e" (subscript_expression "pbVar2[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[4] = 0x1b;" (assignment_expression "pbVar2[4] = 0x1b" (subscript_expression "pbVar2[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[5] = 0x5b;" (assignment_expression "pbVar2[5] = 0x5b" (subscript_expression "pbVar2[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[6] = 0x37;" (assignment_expression "pbVar2[6] = 0x37" (subscript_expression "pbVar2[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[7] = 0x6d;" (assignment_expression "pbVar2[7] = 0x6d" (subscript_expression "pbVar2[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar2[8] = 0;" (assignment_expression "pbVar2[8] = 0" (subscript_expression "pbVar2[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar3 = pbVar2 + 8;" (assignment_expression "pbVar3 = pbVar2 + 8" identifier = (binary_expression "pbVar2 + 8" identifier + number_literal)) ;) }) (else_clause "else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }" else (compound_statement "{\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }" { (expression_statement "pbVar1 = pbVar2 + 1;" (assignment_expression "pbVar1 = pbVar2 + 1" identifier = (binary_expression "pbVar2 + 1" identifier + number_literal)) ;) (if_statement "if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }" if (parenthesized_expression "(bVar5 < 0x20)" ( (binary_expression "bVar5 < 0x20" identifier < number_literal) )) (compound_statement "{\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }" { (expression_statement "*pbVar2 = 0x5e;" (assignment_expression "*pbVar2 = 0x5e" (pointer_expression "*pbVar2" * identifier) = number_literal) ;) (expression_statement "bVar5 = bVar5 | 0x40;" (assignment_expression "bVar5 = bVar5 | 0x40" identifier = (binary_expression "bVar5 | 0x40" identifier | number_literal)) ;) (expression_statement "pbVar4 = pbVar1;" (assignment_expression "pbVar4 = pbVar1" identifier = identifier) ;) (expression_statement "pbVar3 = pbVar2 + 2;" (assignment_expression "pbVar3 = pbVar2 + 2" identifier = (binary_expression "pbVar2 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }" else (compound_statement "{\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }" { (expression_statement "pbVar3 = pbVar1;" (assignment_expression "pbVar3 = pbVar1" identifier = identifier) ;) (if_statement "if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }" if (parenthesized_expression "(bVar5 == 0x7f)" ( (binary_expression "bVar5 == 0x7f" identifier == number_literal) )) (compound_statement "{\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }" { (expression_statement "*pbVar2 = 0x5e;" (assignment_expression "*pbVar2 = 0x5e" (pointer_expression "*pbVar2" * identifier) = number_literal) ;) (expression_statement "pbVar3 = pbVar2 + 2;" (assignment_expression "pbVar3 = pbVar2 + 2" identifier = (binary_expression "pbVar2 + 2" identifier + number_literal)) ;) (expression_statement "bVar5 = 0x3f;" (assignment_expression "bVar5 = 0x3f" identifier = number_literal) ;) (expression_statement "pbVar4 = pbVar1;" (assignment_expression "pbVar4 = pbVar1" identifier = identifier) ;) })) }))) (labeled_statement "LAB_0009c450:\n      *pbVar4 = bVar5;" statement_identifier : (expression_statement "*pbVar4 = bVar5;" (assignment_expression "*pbVar4 = bVar5" (pointer_expression "*pbVar4" * identifier) = identifier) ;)) (expression_statement "pbVar4[1] = 0;" (assignment_expression "pbVar4[1] = 0" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) = number_literal) ;) }))) (if_statement "if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }" if (parenthesized_expression "(*param_2 == 10)" ( (binary_expression "*param_2 == 10" (pointer_expression "*param_2" * identifier) == number_literal) )) (compound_statement "{\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }" { (expression_statement "pbVar3[0] = 0x24;" (assignment_expression "pbVar3[0] = 0x24" (subscript_expression "pbVar3[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar3[1] = 0;" (assignment_expression "pbVar3[1] = 0" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar3 = pbVar3 + 1;" (assignment_expression "pbVar3 = pbVar3 + 1" identifier = (binary_expression "pbVar3 + 1" identifier + number_literal)) ;) })) (if_statement "if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }" if (parenthesized_expression "(0x76 < (int)pbVar3 - (int)param_1)" ( (binary_expression "0x76 < (int)pbVar3 - (int)param_1" number_literal < (binary_expression "(int)pbVar3 - (int)param_1" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "param_2 = (char *)((byte *)param_2 + 1);" (assignment_expression "param_2 = (char *)((byte *)param_2 + 1)" identifier = (cast_expression "(char *)((byte *)param_2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)param_2 + 1)" ( (binary_expression "(byte *)param_2 + 1" (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (expression_statement "bVar5 = *param_2;" (assignment_expression "bVar5 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "pbVar2 = pbVar3;" (assignment_expression "pbVar2 = pbVar3" identifier = identifier) ;) (if_statement "if (bVar5 == 0) {\n      return;\n    }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "void __regparm3 FUN_0009c3ff(byte *param_1,char *param_2)\n\n{\n  byte *pbVar1;\n  byte *pbVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  \n  *param_1 = 0;\n  bVar5 = *param_2;\n  pbVar2 = param_1;\n  if (bVar5 == 0) {\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }\n  do {\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  } while( true );\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0009c3ff(byte *param_1,char *param_2)" (identifier "FUN_0009c3ff") (parameter_list "(byte *param_1,char *param_2)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  byte *pbVar1;\n  byte *pbVar2;\n  byte *pbVar3;\n  byte *pbVar4;\n  byte bVar5;\n  \n  *param_1 = 0;\n  bVar5 = *param_2;\n  pbVar2 = param_1;\n  if (bVar5 == 0) {\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }\n  do {\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  } while( true );\n}" ({ "{") (declaration "byte *pbVar1;" (type_identifier "byte") (pointer_declarator "*pbVar1" (* "*") (identifier "pbVar1")) (; ";")) (declaration "byte *pbVar2;" (type_identifier "byte") (pointer_declarator "*pbVar2" (* "*") (identifier "pbVar2")) (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "byte bVar5;" (type_identifier "byte") (identifier "bVar5") (; ";")) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar5 = *param_2;" (assignment_expression "bVar5 = *param_2" (identifier "bVar5") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "pbVar2 = param_1;" (assignment_expression "pbVar2 = param_1" (identifier "pbVar2") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (bVar5 == 0) {\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }" (if "if") (parenthesized_expression "(bVar5 == 0)" (( "(") (binary_expression "bVar5 == 0" (identifier "bVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    bVar5 = 0x28;\n    param_2 = "(NULL)";\n  }" ({ "{") (expression_statement "bVar5 = 0x28;" (assignment_expression "bVar5 = 0x28" (identifier "bVar5") (= "=") (number_literal "0x28")) (; ";")) (expression_statement "param_2 = "(NULL)";" (assignment_expression "param_2 = "(NULL)"" (identifier "param_2") (= "=") (string_literal ""(NULL)"" (" """) (string_content "(NULL)") (" """))) (; ";")) (} "}"))) (do_statement "do {\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    pbVar4 = pbVar2;\n    if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }\n    if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }\n    if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }\n    param_2 = (char *)((byte *)param_2 + 1);\n    bVar5 = *param_2;\n    pbVar2 = pbVar3;\n    if (bVar5 == 0) {\n      return;\n    }\n  }" ({ "{") (expression_statement "pbVar4 = pbVar2;" (assignment_expression "pbVar4 = pbVar2" (identifier "pbVar4") (= "=") (identifier "pbVar2")) (; ";")) (if_statement "if ((char)bVar5 < '\0') {\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }\n    else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }" (if "if") (parenthesized_expression "((char)bVar5 < '\0')" (( "(") (binary_expression "(char)bVar5 < '\0'" (cast_expression "(char)bVar5" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar5")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }\n      pbVar2[0] = 0x1b;\n      pbVar2[1] = 0x5b;\n      pbVar2[2] = 0x6d;\n      pbVar2[3] = 0;\n      pbVar2[3] = 0x2e;\n      pbVar2[4] = 0x1b;\n      pbVar2[5] = 0x5b;\n      pbVar2[6] = 0x37;\n      pbVar2[7] = 0x6d;\n      pbVar2[8] = 0;\n      pbVar3 = pbVar2 + 8;\n    }" ({ "{") (if_statement "if (bVar5 != 0x9b) {\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }" (if "if") (parenthesized_expression "(bVar5 != 0x9b)" (( "(") (binary_expression "bVar5 != 0x9b" (identifier "bVar5") (!= "!=") (number_literal "0x9b")) () ")")) (compound_statement "{\n        pbVar3 = pbVar2 + 1;\n        goto LAB_0009c450;\n      }" ({ "{") (expression_statement "pbVar3 = pbVar2 + 1;" (assignment_expression "pbVar3 = pbVar2 + 1" (identifier "pbVar3") (= "=") (binary_expression "pbVar2 + 1" (identifier "pbVar2") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0009c450;" (goto "goto") (statement_identifier "LAB_0009c450") (; ";")) (} "}"))) (expression_statement "pbVar2[0] = 0x1b;" (assignment_expression "pbVar2[0] = 0x1b" (subscript_expression "pbVar2[0]" (identifier "pbVar2") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x1b")) (; ";")) (expression_statement "pbVar2[1] = 0x5b;" (assignment_expression "pbVar2[1] = 0x5b" (subscript_expression "pbVar2[1]" (identifier "pbVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x5b")) (; ";")) (expression_statement "pbVar2[2] = 0x6d;" (assignment_expression "pbVar2[2] = 0x6d" (subscript_expression "pbVar2[2]" (identifier "pbVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x6d")) (; ";")) (expression_statement "pbVar2[3] = 0;" (assignment_expression "pbVar2[3] = 0" (subscript_expression "pbVar2[3]" (identifier "pbVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar2[3] = 0x2e;" (assignment_expression "pbVar2[3] = 0x2e" (subscript_expression "pbVar2[3]" (identifier "pbVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0x2e")) (; ";")) (expression_statement "pbVar2[4] = 0x1b;" (assignment_expression "pbVar2[4] = 0x1b" (subscript_expression "pbVar2[4]" (identifier "pbVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0x1b")) (; ";")) (expression_statement "pbVar2[5] = 0x5b;" (assignment_expression "pbVar2[5] = 0x5b" (subscript_expression "pbVar2[5]" (identifier "pbVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0x5b")) (; ";")) (expression_statement "pbVar2[6] = 0x37;" (assignment_expression "pbVar2[6] = 0x37" (subscript_expression "pbVar2[6]" (identifier "pbVar2") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0x37")) (; ";")) (expression_statement "pbVar2[7] = 0x6d;" (assignment_expression "pbVar2[7] = 0x6d" (subscript_expression "pbVar2[7]" (identifier "pbVar2") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0x6d")) (; ";")) (expression_statement "pbVar2[8] = 0;" (assignment_expression "pbVar2[8] = 0" (subscript_expression "pbVar2[8]" (identifier "pbVar2") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar3 = pbVar2 + 8;" (assignment_expression "pbVar3 = pbVar2 + 8" (identifier "pbVar3") (= "=") (binary_expression "pbVar2 + 8" (identifier "pbVar2") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (else_clause "else {\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }" (else "else") (compound_statement "{\n      pbVar1 = pbVar2 + 1;\n      if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }\nLAB_0009c450:\n      *pbVar4 = bVar5;\n      pbVar4[1] = 0;\n    }" ({ "{") (expression_statement "pbVar1 = pbVar2 + 1;" (assignment_expression "pbVar1 = pbVar2 + 1" (identifier "pbVar1") (= "=") (binary_expression "pbVar2 + 1" (identifier "pbVar2") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar5 < 0x20) {\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }\n      else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }" (if "if") (parenthesized_expression "(bVar5 < 0x20)" (( "(") (binary_expression "bVar5 < 0x20" (identifier "bVar5") (< "<") (number_literal "0x20")) () ")")) (compound_statement "{\n        *pbVar2 = 0x5e;\n        bVar5 = bVar5 | 0x40;\n        pbVar4 = pbVar1;\n        pbVar3 = pbVar2 + 2;\n      }" ({ "{") (expression_statement "*pbVar2 = 0x5e;" (assignment_expression "*pbVar2 = 0x5e" (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2")) (= "=") (number_literal "0x5e")) (; ";")) (expression_statement "bVar5 = bVar5 | 0x40;" (assignment_expression "bVar5 = bVar5 | 0x40" (identifier "bVar5") (= "=") (binary_expression "bVar5 | 0x40" (identifier "bVar5") (| "|") (number_literal "0x40"))) (; ";")) (expression_statement "pbVar4 = pbVar1;" (assignment_expression "pbVar4 = pbVar1" (identifier "pbVar4") (= "=") (identifier "pbVar1")) (; ";")) (expression_statement "pbVar3 = pbVar2 + 2;" (assignment_expression "pbVar3 = pbVar2 + 2" (identifier "pbVar3") (= "=") (binary_expression "pbVar2 + 2" (identifier "pbVar2") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }" (else "else") (compound_statement "{\n        pbVar3 = pbVar1;\n        if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }\n      }" ({ "{") (expression_statement "pbVar3 = pbVar1;" (assignment_expression "pbVar3 = pbVar1" (identifier "pbVar3") (= "=") (identifier "pbVar1")) (; ";")) (if_statement "if (bVar5 == 0x7f) {\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }" (if "if") (parenthesized_expression "(bVar5 == 0x7f)" (( "(") (binary_expression "bVar5 == 0x7f" (identifier "bVar5") (== "==") (number_literal "0x7f")) () ")")) (compound_statement "{\n          *pbVar2 = 0x5e;\n          pbVar3 = pbVar2 + 2;\n          bVar5 = 0x3f;\n          pbVar4 = pbVar1;\n        }" ({ "{") (expression_statement "*pbVar2 = 0x5e;" (assignment_expression "*pbVar2 = 0x5e" (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2")) (= "=") (number_literal "0x5e")) (; ";")) (expression_statement "pbVar3 = pbVar2 + 2;" (assignment_expression "pbVar3 = pbVar2 + 2" (identifier "pbVar3") (= "=") (binary_expression "pbVar2 + 2" (identifier "pbVar2") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "bVar5 = 0x3f;" (assignment_expression "bVar5 = 0x3f" (identifier "bVar5") (= "=") (number_literal "0x3f")) (; ";")) (expression_statement "pbVar4 = pbVar1;" (assignment_expression "pbVar4 = pbVar1" (identifier "pbVar4") (= "=") (identifier "pbVar1")) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0009c450:\n      *pbVar4 = bVar5;" (statement_identifier "LAB_0009c450") (: ":") (expression_statement "*pbVar4 = bVar5;" (assignment_expression "*pbVar4 = bVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (identifier "bVar5")) (; ";"))) (expression_statement "pbVar4[1] = 0;" (assignment_expression "pbVar4[1] = 0" (subscript_expression "pbVar4[1]" (identifier "pbVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (*param_2 == 10) {\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }" (if "if") (parenthesized_expression "(*param_2 == 10)" (( "(") (binary_expression "*param_2 == 10" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (number_literal "10")) () ")")) (compound_statement "{\n      pbVar3[0] = 0x24;\n      pbVar3[1] = 0;\n      pbVar3 = pbVar3 + 1;\n    }" ({ "{") (expression_statement "pbVar3[0] = 0x24;" (assignment_expression "pbVar3[0] = 0x24" (subscript_expression "pbVar3[0]" (identifier "pbVar3") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0x24")) (; ";")) (expression_statement "pbVar3[1] = 0;" (assignment_expression "pbVar3[1] = 0" (subscript_expression "pbVar3[1]" (identifier "pbVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar3 = pbVar3 + 1;" (assignment_expression "pbVar3 = pbVar3 + 1" (identifier "pbVar3") (= "=") (binary_expression "pbVar3 + 1" (identifier "pbVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (0x76 < (int)pbVar3 - (int)param_1) {\n      return;\n    }" (if "if") (parenthesized_expression "(0x76 < (int)pbVar3 - (int)param_1)" (( "(") (binary_expression "0x76 < (int)pbVar3 - (int)param_1" (number_literal "0x76") (< "<") (binary_expression "(int)pbVar3 - (int)param_1" (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3")) (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "param_2 = (char *)((byte *)param_2 + 1);" (assignment_expression "param_2 = (char *)((byte *)param_2 + 1)" (identifier "param_2") (= "=") (cast_expression "(char *)((byte *)param_2 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((byte *)param_2 + 1)" (( "(") (binary_expression "(byte *)param_2 + 1" (cast_expression "(byte *)param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar5 = *param_2;" (assignment_expression "bVar5 = *param_2" (identifier "bVar5") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "pbVar2 = pbVar3;" (assignment_expression "pbVar2 = pbVar3" (identifier "pbVar2") (= "=") (identifier "pbVar3")) (; ";")) (if_statement "if (bVar5 == 0) {\n      return;\n    }" (if "if") (parenthesized_expression "(bVar5 == 0)" (( "(") (binary_expression "bVar5 == 0" (identifier "bVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */

void __regparm3 function_1(type_1 *param_1,char *param_2)

{
  type_1 *pbVar1;
  type_1 *var_2;
  type_1 *var_3;
  type_1 *pbVar4;
  type_1 var_1;
  
  *param_1 = 0;
  var_1 = *param_2;
  var_2 = param_1;
  if (var_1 == 0) {
    var_1 = 0x28;
    param_2 = "(NULL)";
  }
  do {
    pbVar4 = var_2;
    if ((char)var_1 < '\0') {
      if (var_1 != 0x9b) {
        var_3 = var_2 + 1;
        goto LAB_0009c450;
      }
      var_2[0] = 0x1b;
      var_2[1] = 0x5b;
      var_2[2] = 0x6d;
      var_2[3] = 0;
      var_2[3] = 0x2e;
      var_2[4] = 0x1b;
      var_2[5] = 0x5b;
      var_2[6] = 0x37;
      var_2[7] = 0x6d;
      var_2[8] = 0;
      var_3 = var_2 + 8;
    }
    else {
      pbVar1 = var_2 + 1;
      if (var_1 < 0x20) {
        *var_2 = 0x5e;
        var_1 = var_1 | 0x40;
        pbVar4 = pbVar1;
        var_3 = var_2 + 2;
      }
      else {
        var_3 = pbVar1;
        if (var_1 == 0x7f) {
          *var_2 = 0x5e;
          var_3 = var_2 + 2;
          var_1 = 0x3f;
          pbVar4 = pbVar1;
        }
      }
LAB_0009c450:
      *pbVar4 = var_1;
      pbVar4[1] = 0;
    }
    if (*param_2 == 10) {
      var_3[0] = 0x24;
      var_3[1] = 0;
      var_3 = var_3 + 1;
    }
    if (0x76 < (int)var_3 - (int)param_1) {
      return;
    }
    param_2 = (char *)((type_1 *)param_2 + 1);
    var_1 = *param_2;
    var_2 = var_3;
    if (var_1 == 0) {
      return;
    }
  } while( true );
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_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))) (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))) (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))) (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))) (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))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) (labeled_statement label: (statement_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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (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))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement)))) condition: (parenthesized_expression (true))))))

/* WARNING: Function: __i686.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */

void __regparm3 MASKED(byte *param_1,char *param_2)

{
  byte *pbVar1;
  byte *pbVar2;
  byte *pbVar3;
  byte *pbVar4;
  byte bVar5;
  
  *param_1 = 0;
  bVar5 = *param_2;
  pbVar2 = param_1;
  if (bVar5 == 0) {
    bVar5 = 0x28;
    param_2 = "(NULL)";
  }
  do {
    pbVar4 = pbVar2;
    if ((char)bVar5 < '\0') {
      if (bVar5 != 0x9b) {
        pbVar3 = pbVar2 + 1;
        goto LAB_0009c450;
      }
      pbVar2[0] = 0x1b;
      pbVar2[1] = 0x5b;
      pbVar2[2] = 0x6d;
      pbVar2[3] = 0;
      pbVar2[3] = 0x2e;
      pbVar2[4] = 0x1b;
      pbVar2[5] = 0x5b;
      pbVar2[6] = 0x37;
      pbVar2[7] = 0x6d;
      pbVar2[8] = 0;
      pbVar3 = pbVar2 + 8;
    }
    else {
      pbVar1 = pbVar2 + 1;
      if (bVar5 < 0x20) {
        *pbVar2 = 0x5e;
        bVar5 = bVar5 | 0x40;
        pbVar4 = pbVar1;
        pbVar3 = pbVar2 + 2;
      }
      else {
        pbVar3 = pbVar1;
        if (bVar5 == 0x7f) {
          *pbVar2 = 0x5e;
          pbVar3 = pbVar2 + 2;
          bVar5 = 0x3f;
          pbVar4 = pbVar1;
        }
      }
LAB_0009c450:
      *pbVar4 = bVar5;
      pbVar4[1] = 0;
    }
    if (*param_2 == 10) {
      pbVar3[0] = 0x24;
      pbVar3[1] = 0;
      pbVar3 = pbVar3 + 1;
    }
    if (0x76 < (int)pbVar3 - (int)param_1) {
      return;
    }
    param_2 = (char *)((byte *)param_2 + 1);
    bVar5 = *param_2;
    pbVar2 = pbVar3;
    if (bVar5 == 0) {
      return;
    }
  } while( true );
}

