
/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

char * move_to_col(char *p,int l)

{
}



/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

byte * __regparm3 FUN_000a537a(undefined4 param_1,int param_2)

{
  byte bVar1;
  byte *pbVar2;
  int iVar3;
  
  pbVar2 = (byte *)FUN_000a530e();
  if ((0 < param_2) && (pbVar2 < *(byte **)(DAT_000dc700 + 4))) {
    iVar3 = 0;
    bVar1 = *pbVar2;
    while (bVar1 != 10) {
      if (bVar1 == 9) {
        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -
                        iVar3 % *(int *)(DAT_000dc700 + 0x54));
LAB_000a53c6:
        iVar3 = iVar3 + 1;
      }
      else {
        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;
        iVar3 = iVar3 + 2;
      }
      if (param_2 <= iVar3) {
        return pbVar2 + 1;
      }
      pbVar2 = pbVar2 + 1;
      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {
        return pbVar2;
      }
      bVar1 = *pbVar2;
    }
  }
  return pbVar2;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x1c
CALL 0x00018b7a
ADD ESI,0x3669a
MOV EBP,EDX
CALL 0x000a530e
MOV EBX,EAX
TEST EBP,EBP
JLE 0x000a53d8
MOV EDI,dword ptr [ESI + 0xce0]
MOV EAX,dword ptr [EDI + 0x4]
MOV dword ptr [ESP + 0xc],EAX
CMP EBX,EAX
JNC 0x000a53d8
MOV AL,byte ptr [EBX]
XOR ECX,ECX
CMP AL,0xa
JZ 0x000a53d8
CMP AL,0x9
JNZ 0x000a53e2
MOV EAX,dword ptr [EDI + 0x54]
LEA ESI,[EAX + -0x1]
MOV EAX,ECX
CDQ
IDIV dword ptr [EDI + 0x54]
SUB ESI,EDX
ADD ECX,ESI
INC ECX
INC EBX
CMP EBP,ECX
JLE 0x000a53d8
CMP EBX,dword ptr [ESP + 0xc]
JZ 0x000a53d8
MOV AL,byte ptr [EBX]
CMP AL,0xa
JNZ 0x000a53b2
MOV EAX,EBX
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP AL,0x1f
JA 0x000a53ef
INC ECX
INC ECX
INC EBX
CMP EBP,ECX
JLE 0x000a53d8
JMP 0x000a53cc
CMP AL,0x7f
JNZ 0x000a53c6
INC ECX
JMP 0x000a53e7
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nbyte * __regparm3 FUN_000a537a(undefined4 param_1,int param_2)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  int iVar3;\n  \n  pbVar2 = (byte *)FUN_000a530e();\n  if ((0 < param_2) && (pbVar2 < *(byte **)(DAT_000dc700 + 4))) {\n    iVar3 = 0;\n    bVar1 = *pbVar2;\n    while (bVar1 != 10) {\n      if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }\n      if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }\n      pbVar2 = pbVar2 + 1;\n      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }\n      bVar1 = *pbVar2;\n    }\n  }\n  return pbVar2;\n}\n\n" comment (ERROR "byte * __regparm3 FUN_000a537a(undefined4 param_1,int param_2)" (binary_expression "byte * __regparm3 FUN_000a537a(undefined4 param_1,int param_2)" identifier * (ERROR "__regparm3" identifier) (call_expression "FUN_000a537a(undefined4 param_1,int param_2)" identifier (argument_list "(undefined4 param_1,int param_2)" ( identifier (ERROR "param_1" identifier) , (ERROR "int" identifier) identifier ))))) (compound_statement "{\n  byte bVar1;\n  byte *pbVar2;\n  int iVar3;\n  \n  pbVar2 = (byte *)FUN_000a530e();\n  if ((0 < param_2) && (pbVar2 < *(byte **)(DAT_000dc700 + 4))) {\n    iVar3 = 0;\n    bVar1 = *pbVar2;\n    while (bVar1 != 10) {\n      if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }\n      if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }\n      pbVar2 = pbVar2 + 1;\n      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }\n      bVar1 = *pbVar2;\n    }\n  }\n  return pbVar2;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "pbVar2 = (byte *)FUN_000a530e();" (assignment_expression "pbVar2 = (byte *)FUN_000a530e()" identifier = (cast_expression "(byte *)FUN_000a530e()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000a530e()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((0 < param_2) && (pbVar2 < *(byte **)(DAT_000dc700 + 4))) {\n    iVar3 = 0;\n    bVar1 = *pbVar2;\n    while (bVar1 != 10) {\n      if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }\n      if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }\n      pbVar2 = pbVar2 + 1;\n      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }\n      bVar1 = *pbVar2;\n    }\n  }" if (parenthesized_expression "((0 < param_2) && (pbVar2 < *(byte **)(DAT_000dc700 + 4)))" ( (binary_expression "(0 < param_2) && (pbVar2 < *(byte **)(DAT_000dc700 + 4))" (parenthesized_expression "(0 < param_2)" ( (binary_expression "0 < param_2" number_literal < identifier) )) && (parenthesized_expression "(pbVar2 < *(byte **)(DAT_000dc700 + 4))" ( (binary_expression "pbVar2 < *(byte **)(DAT_000dc700 + 4)" identifier < (pointer_expression "*(byte **)(DAT_000dc700 + 4)" * (cast_expression "(byte **)(DAT_000dc700 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_000dc700 + 4)" ( (binary_expression "DAT_000dc700 + 4" identifier + number_literal) ))))) ))) )) (compound_statement "{\n    iVar3 = 0;\n    bVar1 = *pbVar2;\n    while (bVar1 != 10) {\n      if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }\n      if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }\n      pbVar2 = pbVar2 + 1;\n      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }\n      bVar1 = *pbVar2;\n    }\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = *pbVar2;" (assignment_expression "bVar1 = *pbVar2" identifier = (pointer_expression "*pbVar2" * identifier)) ;) (while_statement "while (bVar1 != 10) {\n      if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }\n      if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }\n      pbVar2 = pbVar2 + 1;\n      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }\n      bVar1 = *pbVar2;\n    }" while (parenthesized_expression "(bVar1 != 10)" ( (binary_expression "bVar1 != 10" identifier != number_literal) )) (compound_statement "{\n      if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }\n      if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }\n      pbVar2 = pbVar2 + 1;\n      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }\n      bVar1 = *pbVar2;\n    }" { (if_statement "if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }" if (parenthesized_expression "(bVar1 == 9)" ( (binary_expression "bVar1 == 9" identifier == number_literal) )) (compound_statement "{\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }" { (expression_statement "iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));" (assignment_expression "iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54))" identifier = (binary_expression "iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54))" identifier + (parenthesized_expression "((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54))" ( (binary_expression "(*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54)" (parenthesized_expression "(*(int *)(DAT_000dc700 + 0x54) + -1)" ( (binary_expression "*(int *)(DAT_000dc700 + 0x54) + -1" (pointer_expression "*(int *)(DAT_000dc700 + 0x54)" * (cast_expression "(int *)(DAT_000dc700 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000dc700 + 0x54)" ( (binary_expression "DAT_000dc700 + 0x54" identifier + number_literal) )))) + number_literal) )) - (binary_expression "iVar3 % *(int *)(DAT_000dc700 + 0x54)" identifier % (pointer_expression "*(int *)(DAT_000dc700 + 0x54)" * (cast_expression "(int *)(DAT_000dc700 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000dc700 + 0x54)" ( (binary_expression "DAT_000dc700 + 0x54" identifier + number_literal) )))))) )))) ;) (labeled_statement "LAB_000a53c6:\n        iVar3 = iVar3 + 1;" statement_identifier : (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;)) }) (else_clause "else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }" else (compound_statement "{\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }" { (if_statement "if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;" if (parenthesized_expression "((0x1f < bVar1) && (bVar1 != 0x7f))" ( (binary_expression "(0x1f < bVar1) && (bVar1 != 0x7f)" (parenthesized_expression "(0x1f < bVar1)" ( (binary_expression "0x1f < bVar1" number_literal < identifier) )) && (parenthesized_expression "(bVar1 != 0x7f)" ( (binary_expression "bVar1 != 0x7f" identifier != number_literal) ))) )) (goto_statement "goto LAB_000a53c6;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 2;" (assignment_expression "iVar3 = iVar3 + 2" identifier = (binary_expression "iVar3 + 2" identifier + number_literal)) ;) }))) (if_statement "if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }" if (parenthesized_expression "(param_2 <= iVar3)" ( (binary_expression "param_2 <= iVar3" identifier <= identifier) )) (compound_statement "{\n        return pbVar2 + 1;\n      }" { (return_statement "return pbVar2 + 1;" return (binary_expression "pbVar2 + 1" identifier + number_literal) ;) })) (expression_statement "pbVar2 = pbVar2 + 1;" (assignment_expression "pbVar2 = pbVar2 + 1" identifier = (binary_expression "pbVar2 + 1" identifier + number_literal)) ;) (if_statement "if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }" if (parenthesized_expression "(pbVar2 == *(byte **)(DAT_000dc700 + 4))" ( (binary_expression "pbVar2 == *(byte **)(DAT_000dc700 + 4)" identifier == (pointer_expression "*(byte **)(DAT_000dc700 + 4)" * (cast_expression "(byte **)(DAT_000dc700 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_000dc700 + 4)" ( (binary_expression "DAT_000dc700 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n        return pbVar2;\n      }" { (return_statement "return pbVar2;" return identifier ;) })) (expression_statement "bVar1 = *pbVar2;" (assignment_expression "bVar1 = *pbVar2" identifier = (pointer_expression "*pbVar2" * identifier)) ;) })) })) (return_statement "return pbVar2;" return identifier ;) }))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nchar * move_to_col(char *p,int l)\n\n{\n}\n\n" comment (function_definition "char * move_to_col(char *p,int l)\n\n{\n}" primitive_type (pointer_declarator "* move_to_col(char *p,int l)" * (function_declarator "move_to_col(char *p,int l)" identifier (parameter_list "(char *p,int l)" ( (parameter_declaration "char *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "int l" primitive_type identifier) )))) (compound_statement "{\n}" { })))
(translation_unit "byte * __regparm3 FUN_000a537a(undefined4 param_1,int param_2)\n\n{\n  byte bVar1;\n  byte *pbVar2;\n  int iVar3;\n  \n  pbVar2 = (byte *)FUN_000a530e();\n  if ((0 < param_2) && (pbVar2 < *(byte **)(DAT_000dc700 + 4))) {\n    iVar3 = 0;\n    bVar1 = *pbVar2;\n    while (bVar1 != 10) {\n      if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }\n      if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }\n      pbVar2 = pbVar2 + 1;\n      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }\n      bVar1 = *pbVar2;\n    }\n  }\n  return pbVar2;\n}\n\n" (ERROR "byte * __regparm3 FUN_000a537a(undefined4 param_1,int param_2)" (binary_expression "byte * __regparm3 FUN_000a537a(undefined4 param_1,int param_2)" identifier * (ERROR "__regparm3" identifier) (call_expression "FUN_000a537a(undefined4 param_1,int param_2)" identifier (argument_list "(undefined4 param_1,int param_2)" ( identifier (ERROR "param_1" identifier) , (ERROR "int" identifier) identifier ))))) (compound_statement "{\n  byte bVar1;\n  byte *pbVar2;\n  int iVar3;\n  \n  pbVar2 = (byte *)FUN_000a530e();\n  if ((0 < param_2) && (pbVar2 < *(byte **)(DAT_000dc700 + 4))) {\n    iVar3 = 0;\n    bVar1 = *pbVar2;\n    while (bVar1 != 10) {\n      if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }\n      if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }\n      pbVar2 = pbVar2 + 1;\n      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }\n      bVar1 = *pbVar2;\n    }\n  }\n  return pbVar2;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "pbVar2 = (byte *)FUN_000a530e();" (assignment_expression "pbVar2 = (byte *)FUN_000a530e()" identifier = (cast_expression "(byte *)FUN_000a530e()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000a530e()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((0 < param_2) && (pbVar2 < *(byte **)(DAT_000dc700 + 4))) {\n    iVar3 = 0;\n    bVar1 = *pbVar2;\n    while (bVar1 != 10) {\n      if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }\n      if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }\n      pbVar2 = pbVar2 + 1;\n      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }\n      bVar1 = *pbVar2;\n    }\n  }" if (parenthesized_expression "((0 < param_2) && (pbVar2 < *(byte **)(DAT_000dc700 + 4)))" ( (binary_expression "(0 < param_2) && (pbVar2 < *(byte **)(DAT_000dc700 + 4))" (parenthesized_expression "(0 < param_2)" ( (binary_expression "0 < param_2" number_literal < identifier) )) && (parenthesized_expression "(pbVar2 < *(byte **)(DAT_000dc700 + 4))" ( (binary_expression "pbVar2 < *(byte **)(DAT_000dc700 + 4)" identifier < (pointer_expression "*(byte **)(DAT_000dc700 + 4)" * (cast_expression "(byte **)(DAT_000dc700 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_000dc700 + 4)" ( (binary_expression "DAT_000dc700 + 4" identifier + number_literal) ))))) ))) )) (compound_statement "{\n    iVar3 = 0;\n    bVar1 = *pbVar2;\n    while (bVar1 != 10) {\n      if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }\n      if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }\n      pbVar2 = pbVar2 + 1;\n      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }\n      bVar1 = *pbVar2;\n    }\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = *pbVar2;" (assignment_expression "bVar1 = *pbVar2" identifier = (pointer_expression "*pbVar2" * identifier)) ;) (while_statement "while (bVar1 != 10) {\n      if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }\n      if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }\n      pbVar2 = pbVar2 + 1;\n      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }\n      bVar1 = *pbVar2;\n    }" while (parenthesized_expression "(bVar1 != 10)" ( (binary_expression "bVar1 != 10" identifier != number_literal) )) (compound_statement "{\n      if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }\n      if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }\n      pbVar2 = pbVar2 + 1;\n      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }\n      bVar1 = *pbVar2;\n    }" { (if_statement "if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }" if (parenthesized_expression "(bVar1 == 9)" ( (binary_expression "bVar1 == 9" identifier == number_literal) )) (compound_statement "{\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }" { (expression_statement "iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));" (assignment_expression "iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54))" identifier = (binary_expression "iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54))" identifier + (parenthesized_expression "((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54))" ( (binary_expression "(*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54)" (parenthesized_expression "(*(int *)(DAT_000dc700 + 0x54) + -1)" ( (binary_expression "*(int *)(DAT_000dc700 + 0x54) + -1" (pointer_expression "*(int *)(DAT_000dc700 + 0x54)" * (cast_expression "(int *)(DAT_000dc700 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000dc700 + 0x54)" ( (binary_expression "DAT_000dc700 + 0x54" identifier + number_literal) )))) + number_literal) )) - (binary_expression "iVar3 % *(int *)(DAT_000dc700 + 0x54)" identifier % (pointer_expression "*(int *)(DAT_000dc700 + 0x54)" * (cast_expression "(int *)(DAT_000dc700 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000dc700 + 0x54)" ( (binary_expression "DAT_000dc700 + 0x54" identifier + number_literal) )))))) )))) ;) (labeled_statement "LAB_000a53c6:\n        iVar3 = iVar3 + 1;" statement_identifier : (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;)) }) (else_clause "else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }" else (compound_statement "{\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }" { (if_statement "if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;" if (parenthesized_expression "((0x1f < bVar1) && (bVar1 != 0x7f))" ( (binary_expression "(0x1f < bVar1) && (bVar1 != 0x7f)" (parenthesized_expression "(0x1f < bVar1)" ( (binary_expression "0x1f < bVar1" number_literal < identifier) )) && (parenthesized_expression "(bVar1 != 0x7f)" ( (binary_expression "bVar1 != 0x7f" identifier != number_literal) ))) )) (goto_statement "goto LAB_000a53c6;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 2;" (assignment_expression "iVar3 = iVar3 + 2" identifier = (binary_expression "iVar3 + 2" identifier + number_literal)) ;) }))) (if_statement "if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }" if (parenthesized_expression "(param_2 <= iVar3)" ( (binary_expression "param_2 <= iVar3" identifier <= identifier) )) (compound_statement "{\n        return pbVar2 + 1;\n      }" { (return_statement "return pbVar2 + 1;" return (binary_expression "pbVar2 + 1" identifier + number_literal) ;) })) (expression_statement "pbVar2 = pbVar2 + 1;" (assignment_expression "pbVar2 = pbVar2 + 1" identifier = (binary_expression "pbVar2 + 1" identifier + number_literal)) ;) (if_statement "if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }" if (parenthesized_expression "(pbVar2 == *(byte **)(DAT_000dc700 + 4))" ( (binary_expression "pbVar2 == *(byte **)(DAT_000dc700 + 4)" identifier == (pointer_expression "*(byte **)(DAT_000dc700 + 4)" * (cast_expression "(byte **)(DAT_000dc700 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_000dc700 + 4)" ( (binary_expression "DAT_000dc700 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n        return pbVar2;\n      }" { (return_statement "return pbVar2;" return identifier ;) })) (expression_statement "bVar1 = *pbVar2;" (assignment_expression "bVar1 = *pbVar2" identifier = (pointer_expression "*pbVar2" * identifier)) ;) })) })) (return_statement "return pbVar2;" return identifier ;) }))
(translation_unit (ERROR (binary_expression IDENT * (ERROR IDENT) (call_expression IDENT (argument_list ( IDENT (ERROR IDENT) , (ERROR IDENT) IDENT ))))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )) - (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return (binary_expression IDENT + LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) })) (return_statement return IDENT ;) }))
(ERROR "byte * __regparm3 FUN_000a537a(undefined4 param_1,int param_2)" (binary_expression "byte * __regparm3 FUN_000a537a(undefined4 param_1,int param_2)" (identifier "byte") (* "*") (ERROR "__regparm3" (identifier "__regparm3")) (call_expression "FUN_000a537a(undefined4 param_1,int param_2)" (identifier "FUN_000a537a") (argument_list "(undefined4 param_1,int param_2)" (( "(") (identifier "undefined4") (ERROR "param_1" (identifier "param_1")) (, ",") (ERROR "int" (identifier "int")) (identifier "param_2") () ")"))))) (compound_statement "{\n  byte bVar1;\n  byte *pbVar2;\n  int iVar3;\n  \n  pbVar2 = (byte *)FUN_000a530e();\n  if ((0 < param_2) && (pbVar2 < *(byte **)(DAT_000dc700 + 4))) {\n    iVar3 = 0;\n    bVar1 = *pbVar2;\n    while (bVar1 != 10) {\n      if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }\n      if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }\n      pbVar2 = pbVar2 + 1;\n      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }\n      bVar1 = *pbVar2;\n    }\n  }\n  return pbVar2;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "byte *pbVar2;" (type_identifier "byte") (pointer_declarator "*pbVar2" (* "*") (identifier "pbVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (expression_statement "pbVar2 = (byte *)FUN_000a530e();" (assignment_expression "pbVar2 = (byte *)FUN_000a530e()" (identifier "pbVar2") (= "=") (cast_expression "(byte *)FUN_000a530e()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000a530e()" (identifier "FUN_000a530e") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((0 < param_2) && (pbVar2 < *(byte **)(DAT_000dc700 + 4))) {\n    iVar3 = 0;\n    bVar1 = *pbVar2;\n    while (bVar1 != 10) {\n      if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }\n      if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }\n      pbVar2 = pbVar2 + 1;\n      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }\n      bVar1 = *pbVar2;\n    }\n  }" (if "if") (parenthesized_expression "((0 < param_2) && (pbVar2 < *(byte **)(DAT_000dc700 + 4)))" (( "(") (binary_expression "(0 < param_2) && (pbVar2 < *(byte **)(DAT_000dc700 + 4))" (parenthesized_expression "(0 < param_2)" (( "(") (binary_expression "0 < param_2" (number_literal "0") (< "<") (identifier "param_2")) () ")")) (&& "&&") (parenthesized_expression "(pbVar2 < *(byte **)(DAT_000dc700 + 4))" (( "(") (binary_expression "pbVar2 < *(byte **)(DAT_000dc700 + 4)" (identifier "pbVar2") (< "<") (pointer_expression "*(byte **)(DAT_000dc700 + 4)" (* "*") (cast_expression "(byte **)(DAT_000dc700 + 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_000dc700 + 4)" (( "(") (binary_expression "DAT_000dc700 + 4" (identifier "DAT_000dc700") (+ "+") (number_literal "4")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n    iVar3 = 0;\n    bVar1 = *pbVar2;\n    while (bVar1 != 10) {\n      if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }\n      if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }\n      pbVar2 = pbVar2 + 1;\n      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }\n      bVar1 = *pbVar2;\n    }\n  }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar1 = *pbVar2;" (assignment_expression "bVar1 = *pbVar2" (identifier "bVar1") (= "=") (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2"))) (; ";")) (while_statement "while (bVar1 != 10) {\n      if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }\n      if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }\n      pbVar2 = pbVar2 + 1;\n      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }\n      bVar1 = *pbVar2;\n    }" (while "while") (parenthesized_expression "(bVar1 != 10)" (( "(") (binary_expression "bVar1 != 10" (identifier "bVar1") (!= "!=") (number_literal "10")) () ")")) (compound_statement "{\n      if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }\n      if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }\n      pbVar2 = pbVar2 + 1;\n      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }\n      bVar1 = *pbVar2;\n    }" ({ "{") (if_statement "if (bVar1 == 9) {\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }\n      else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }" (if "if") (parenthesized_expression "(bVar1 == 9)" (( "(") (binary_expression "bVar1 == 9" (identifier "bVar1") (== "==") (number_literal "9")) () ")")) (compound_statement "{\n        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));\nLAB_000a53c6:\n        iVar3 = iVar3 + 1;\n      }" ({ "{") (expression_statement "iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54));" (assignment_expression "iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54))" (identifier "iVar3") (= "=") (binary_expression "iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54))" (identifier "iVar3") (+ "+") (parenthesized_expression "((*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54))" (( "(") (binary_expression "(*(int *)(DAT_000dc700 + 0x54) + -1) -\n                        iVar3 % *(int *)(DAT_000dc700 + 0x54)" (parenthesized_expression "(*(int *)(DAT_000dc700 + 0x54) + -1)" (( "(") (binary_expression "*(int *)(DAT_000dc700 + 0x54) + -1" (pointer_expression "*(int *)(DAT_000dc700 + 0x54)" (* "*") (cast_expression "(int *)(DAT_000dc700 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000dc700 + 0x54)" (( "(") (binary_expression "DAT_000dc700 + 0x54" (identifier "DAT_000dc700") (+ "+") (number_literal "0x54")) () ")")))) (+ "+") (number_literal "-1")) () ")")) (- "-") (binary_expression "iVar3 % *(int *)(DAT_000dc700 + 0x54)" (identifier "iVar3") (% "%") (pointer_expression "*(int *)(DAT_000dc700 + 0x54)" (* "*") (cast_expression "(int *)(DAT_000dc700 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000dc700 + 0x54)" (( "(") (binary_expression "DAT_000dc700 + 0x54" (identifier "DAT_000dc700") (+ "+") (number_literal "0x54")) () ")")))))) () ")")))) (; ";")) (labeled_statement "LAB_000a53c6:\n        iVar3 = iVar3 + 1;" (statement_identifier "LAB_000a53c6") (: ":") (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";"))) (} "}")) (else_clause "else {\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }" (else "else") (compound_statement "{\n        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;\n        iVar3 = iVar3 + 2;\n      }" ({ "{") (if_statement "if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;" (if "if") (parenthesized_expression "((0x1f < bVar1) && (bVar1 != 0x7f))" (( "(") (binary_expression "(0x1f < bVar1) && (bVar1 != 0x7f)" (parenthesized_expression "(0x1f < bVar1)" (( "(") (binary_expression "0x1f < bVar1" (number_literal "0x1f") (< "<") (identifier "bVar1")) () ")")) (&& "&&") (parenthesized_expression "(bVar1 != 0x7f)" (( "(") (binary_expression "bVar1 != 0x7f" (identifier "bVar1") (!= "!=") (number_literal "0x7f")) () ")"))) () ")")) (goto_statement "goto LAB_000a53c6;" (goto "goto") (statement_identifier "LAB_000a53c6") (; ";"))) (expression_statement "iVar3 = iVar3 + 2;" (assignment_expression "iVar3 = iVar3 + 2" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 2" (identifier "iVar3") (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (if_statement "if (param_2 <= iVar3) {\n        return pbVar2 + 1;\n      }" (if "if") (parenthesized_expression "(param_2 <= iVar3)" (( "(") (binary_expression "param_2 <= iVar3" (identifier "param_2") (<= "<=") (identifier "iVar3")) () ")")) (compound_statement "{\n        return pbVar2 + 1;\n      }" ({ "{") (return_statement "return pbVar2 + 1;" (return "return") (binary_expression "pbVar2 + 1" (identifier "pbVar2") (+ "+") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "pbVar2 = pbVar2 + 1;" (assignment_expression "pbVar2 = pbVar2 + 1" (identifier "pbVar2") (= "=") (binary_expression "pbVar2 + 1" (identifier "pbVar2") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {\n        return pbVar2;\n      }" (if "if") (parenthesized_expression "(pbVar2 == *(byte **)(DAT_000dc700 + 4))" (( "(") (binary_expression "pbVar2 == *(byte **)(DAT_000dc700 + 4)" (identifier "pbVar2") (== "==") (pointer_expression "*(byte **)(DAT_000dc700 + 4)" (* "*") (cast_expression "(byte **)(DAT_000dc700 + 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_000dc700 + 4)" (( "(") (binary_expression "DAT_000dc700 + 4" (identifier "DAT_000dc700") (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n        return pbVar2;\n      }" ({ "{") (return_statement "return pbVar2;" (return "return") (identifier "pbVar2") (; ";")) (} "}"))) (expression_statement "bVar1 = *pbVar2;" (assignment_expression "bVar1 = *pbVar2" (identifier "bVar1") (= "=") (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2"))) (; ";")) (} "}"))) (} "}"))) (return_statement "return pbVar2;" (return "return") (identifier "pbVar2") (; ";")) (} "}"))

/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

char * function_1(char *p,int l)

{
}


(translation_unit (ERROR (binary_expression left: (identifier) (ERROR (identifier)) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (ERROR (identifier)) (ERROR (identifier)) (identifier))))) (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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: (pointer_expression argument: (identifier)))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (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: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (binary_expression left: (identifier) 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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))))) (return_statement (identifier))))

/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

byte * __regparm3 MASKED(undefined4 param_1,int param_2)

{
  byte bVar1;
  byte *pbVar2;
  int iVar3;
  
  pbVar2 = (byte *)FUN_000a530e();
  if ((0 < param_2) && (pbVar2 < *(byte **)(DAT_000dc700 + 4))) {
    iVar3 = 0;
    bVar1 = *pbVar2;
    while (bVar1 != 10) {
      if (bVar1 == 9) {
        iVar3 = iVar3 + ((*(int *)(DAT_000dc700 + 0x54) + -1) -
                        iVar3 % *(int *)(DAT_000dc700 + 0x54));
LAB_000a53c6:
        iVar3 = iVar3 + 1;
      }
      else {
        if ((0x1f < bVar1) && (bVar1 != 0x7f)) goto LAB_000a53c6;
        iVar3 = iVar3 + 2;
      }
      if (param_2 <= iVar3) {
        return pbVar2 + 1;
      }
      pbVar2 = pbVar2 + 1;
      if (pbVar2 == *(byte **)(DAT_000dc700 + 4)) {
        return pbVar2;
      }
      bVar1 = *pbVar2;
    }
  }
  return pbVar2;
}

