
/* WARNING: Unknown calling convention */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

_Bool print_stored(COLUMN *p)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  char *pcVar8;
  int unaff_EDI;
  
  __x86_get_pc_thunk_di();
  iVar1 = *(int *)(unaff_EDI + 0x14601);
  *(undefined1 *)(unaff_EDI + 0x14579) = 1;
  iVar6 = p->current_line;
  p->current_line = iVar6 + 1;
  pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);
  iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);
  if (*(char *)(unaff_EDI + 0x145e9) != '\0') {
    print_header();
  }
  if (p->status == FADVISE_RANDOM) {
    iVar3 = *(int *)(unaff_EDI + 0x14605);
    iVar4 = *(int *)(unaff_EDI + 0x144b1);
    if (0 < iVar4) {
      iVar5 = 1;
      iVar7 = iVar3;
      do {
        iVar5 = iVar5 + 1;
        *(undefined4 *)(iVar7 + 8) = 2;
        iVar7 = iVar7 + 0x28;
      } while (iVar5 != iVar4 + 1);
    }
    if (*(int *)(iVar3 + 0x1c) < 1) {
      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {
        return true;
      }
      *(undefined1 *)(unaff_EDI + 0x14579) = 0;
      return true;
    }
  }
  if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {
    pad_across_to(*(int *)(unaff_EDI + 0x1457d) - *(int *)(unaff_EDI + 0x14585));
    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;
  }
  if (*(char *)(unaff_EDI + 0x14589) != '\0') {
    print_sep_string();
  }
  for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {
    print_char(*pcVar8);
  }
  if (*(int *)(unaff_EDI + 0x145d1) == 0) {
    iVar1 = p->start_position;
    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;
    *(int *)(unaff_EDI + 0x145c9) = iVar6;
    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {
      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);
      return true;
    }
  }
  return true;
}



undefined4 FUN_00013c90(int param_1)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  char *pcVar8;
  int unaff_EDI;
  
  FUN_00015f34();
  iVar1 = *(int *)(unaff_EDI + 0x14601);
  *(undefined1 *)(unaff_EDI + 0x14579) = 1;
  iVar6 = *(int *)(param_1 + 0x14);
  *(int *)(param_1 + 0x14) = iVar6 + 1;
  pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);
  iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);
  if (*(char *)(unaff_EDI + 0x145e9) != '\0') {
    FUN_00013890();
  }
  if (*(int *)(param_1 + 8) == 1) {
    iVar3 = *(int *)(unaff_EDI + 0x14605);
    iVar4 = *(int *)(unaff_EDI + 0x144b1);
    if (0 < iVar4) {
      iVar5 = 1;
      iVar7 = iVar3;
      do {
        iVar5 = iVar5 + 1;
        *(undefined4 *)(iVar7 + 8) = 2;
        iVar7 = iVar7 + 0x28;
      } while (iVar5 != iVar4 + 1);
    }
    if (*(int *)(iVar3 + 0x1c) < 1) {
      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {
        return 1;
      }
      *(undefined1 *)(unaff_EDI + 0x14579) = 0;
      return 1;
    }
  }
  if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {
    FUN_00013610();
    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;
  }
  if (*(char *)(unaff_EDI + 0x14589) != '\0') {
    FUN_00013770();
  }
  for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {
    FUN_00013bd0((int)*pcVar8);
  }
  if (*(int *)(unaff_EDI + 0x145d1) == 0) {
    iVar1 = *(int *)(param_1 + 0x20);
    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;
    *(int *)(unaff_EDI + 0x145c9) = iVar6;
    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {
      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);
      return 1;
    }
  }
  return 1;
}


PUSH EBP
PUSH EDI
CALL 0x00015f34
ADD EDI,0x14369
PUSH ESI
PUSH EBX
SUB ESP,0x1c
MOV EAX,dword ptr [ESP + 0x30]
MOV ECX,dword ptr [ESP + 0x30]
MOV ESI,dword ptr [EDI + 0x298]
MOV byte ptr [EDI + 0x210],0x1
MOV EBP,dword ptr [EAX + 0x14]
LEA EAX,[EBP + 0x1]
MOV dword ptr [ECX + 0x14],EAX
MOV EAX,dword ptr [EDI + 0x28c]
MOV EBX,dword ptr [EAX + EBP*0x4]
ADD EBX,ESI
ADD ESI,dword ptr [EAX + EBP*0x4 + 0x4]
CMP byte ptr [EDI + 0x280],0x0
JNZ 0x00013dc8
MOV EAX,dword ptr [ESP + 0x30]
CMP dword ptr [EAX + 0x8],0x1
JZ 0x00013d70
MOV EDX,dword ptr [EDI + 0x21c]
MOV EAX,dword ptr [EDI + 0x214]
CMP EDX,EAX
JL 0x00013de8
CMP byte ptr [EDI + 0x220],0x0
JNZ 0x00013dd8
CMP EBX,ESI
JZ 0x00013d27
NOP
ADD EBX,0x1
MOVSX EAX,byte ptr [EBX + -0x1]
SUB ESP,0xc
PUSH EAX
CALL 0x00013bd0
ADD ESP,0x10
CMP ESI,EBX
JNZ 0x00013d10
MOV EAX,dword ptr [EDI + 0x268]
TEST EAX,EAX
JNZ 0x00013d5f
MOV EDX,dword ptr [EDI + 0x288]
MOV EAX,dword ptr [ESP + 0x30]
MOV ECX,dword ptr [EDX + EBP*0x4]
MOV EAX,dword ptr [EAX + 0x20]
ADD ECX,EAX
MOV EDX,ECX
MOV dword ptr [EDI + 0x260],ECX
MOV ECX,dword ptr [EDI + 0x21c]
SUB EAX,ECX
CMP EAX,dword ptr [EDI + 0x264]
JZ 0x00013e00
ADD ESP,0x1c
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDX,dword ptr [EDI + 0x29c]
MOV ECX,dword ptr [EDI + 0x148]
MOV dword ptr [ESP + 0xc],EDX
TEST ECX,ECX
JLE 0x00013da1
ADD ECX,0x1
MOV EAX,0x1
LEA ESI,[ESI]
ADD EAX,0x1
MOV dword ptr [EDX + 0x8],0x2
ADD EDX,0x28
CMP EAX,ECX
JNZ 0x00013d90
MOV EAX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [EAX + 0x1c]
TEST EDX,EDX
JG 0x00013cea
CMP byte ptr [EDI + 0x165],0x0
JNZ 0x00013d5f
MOV byte ptr [EDI + 0x210],0x0
JMP 0x00013d5f
CALL 0x00013890
JMP 0x00013cdc
CALL 0x00013770
JMP 0x00013d0b
SUB EAX,EDX
CALL 0x00013610
MOV dword ptr [EDI + 0x214],0x0
JMP 0x00013cfe
SUB EDX,ECX
MOV EAX,0x1
MOV dword ptr [EDI + 0x260],EDX
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "undefined4 FUN_00013c90(int param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  int unaff_EDI;\n  \n  FUN_00015f34();\n  iVar1 = *(int *)(unaff_EDI + 0x14601);\n  *(undefined1 *)(unaff_EDI + 0x14579) = 1;\n  iVar6 = *(int *)(param_1 + 0x14);\n  *(int *)(param_1 + 0x14) = iVar6 + 1;\n  pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);\n  iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);\n  if (*(char *)(unaff_EDI + 0x145e9) != '\0') {\n    FUN_00013890();\n  }\n  if (*(int *)(param_1 + 8) == 1) {\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }\n  }\n  if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {\n    FUN_00013610();\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }\n  if (*(char *)(unaff_EDI + 0x14589) != '\0') {\n    FUN_00013770();\n  }\n  for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {\n    FUN_00013bd0((int)*pcVar8);\n  }\n  if (*(int *)(unaff_EDI + 0x145d1) == 0) {\n    iVar1 = *(int *)(param_1 + 0x20);\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }\n  }\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_00013c90(int param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  int unaff_EDI;\n  \n  FUN_00015f34();\n  iVar1 = *(int *)(unaff_EDI + 0x14601);\n  *(undefined1 *)(unaff_EDI + 0x14579) = 1;\n  iVar6 = *(int *)(param_1 + 0x14);\n  *(int *)(param_1 + 0x14) = iVar6 + 1;\n  pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);\n  iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);\n  if (*(char *)(unaff_EDI + 0x145e9) != '\0') {\n    FUN_00013890();\n  }\n  if (*(int *)(param_1 + 8) == 1) {\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }\n  }\n  if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {\n    FUN_00013610();\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }\n  if (*(char *)(unaff_EDI + 0x14589) != '\0') {\n    FUN_00013770();\n  }\n  for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {\n    FUN_00013bd0((int)*pcVar8);\n  }\n  if (*(int *)(unaff_EDI + 0x145d1) == 0) {\n    iVar1 = *(int *)(param_1 + 0x20);\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_00013c90(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  int unaff_EDI;\n  \n  FUN_00015f34();\n  iVar1 = *(int *)(unaff_EDI + 0x14601);\n  *(undefined1 *)(unaff_EDI + 0x14579) = 1;\n  iVar6 = *(int *)(param_1 + 0x14);\n  *(int *)(param_1 + 0x14) = iVar6 + 1;\n  pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);\n  iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);\n  if (*(char *)(unaff_EDI + 0x145e9) != '\0') {\n    FUN_00013890();\n  }\n  if (*(int *)(param_1 + 8) == 1) {\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }\n  }\n  if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {\n    FUN_00013610();\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }\n  if (*(char *)(unaff_EDI + 0x14589) != '\0') {\n    FUN_00013770();\n  }\n  for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {\n    FUN_00013bd0((int)*pcVar8);\n  }\n  if (*(int *)(unaff_EDI + 0x145d1) == 0) {\n    iVar1 = *(int *)(param_1 + 0x20);\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }\n  }\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (expression_statement "FUN_00015f34();" (call_expression "FUN_00015f34()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = *(int *)(unaff_EDI + 0x14601);" (assignment_expression "iVar1 = *(int *)(unaff_EDI + 0x14601)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x14601)" * (cast_expression "(int *)(unaff_EDI + 0x14601)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14601)" ( (binary_expression "unaff_EDI + 0x14601" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(unaff_EDI + 0x14579) = 1;" (assignment_expression "*(undefined1 *)(unaff_EDI + 0x14579) = 1" (pointer_expression "*(undefined1 *)(unaff_EDI + 0x14579)" * (cast_expression "(undefined1 *)(unaff_EDI + 0x14579)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14579)" ( (binary_expression "unaff_EDI + 0x14579" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_1 + 0x14) = iVar6 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar6 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);" (assignment_expression "pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1)" identifier = (cast_expression "(char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1)" ( (binary_expression "*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1" (pointer_expression "*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4)" * (cast_expression "(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4)" ( (binary_expression "*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4" (pointer_expression "*(int *)(unaff_EDI + 0x145f5)" * (cast_expression "(int *)(unaff_EDI + 0x145f5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145f5)" ( (binary_expression "unaff_EDI + 0x145f5" identifier + number_literal) )))) + (binary_expression "iVar6 * 4" identifier * number_literal)) )))) + identifier) )))) ;) (expression_statement "iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);" (assignment_expression "iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4)" * (cast_expression "(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4)" ( (binary_expression "*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4" (binary_expression "*(int *)(unaff_EDI + 0x145f5) + 4" (pointer_expression "*(int *)(unaff_EDI + 0x145f5)" * (cast_expression "(int *)(unaff_EDI + 0x145f5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145f5)" ( (binary_expression "unaff_EDI + 0x145f5" identifier + number_literal) )))) + number_literal) + (binary_expression "iVar6 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (*(char *)(unaff_EDI + 0x145e9) != '\0') {\n    FUN_00013890();\n  }" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x145e9) != '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x145e9) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x145e9)" * (cast_expression "(char *)(unaff_EDI + 0x145e9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145e9)" ( (binary_expression "unaff_EDI + 0x145e9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_00013890();\n  }" { (expression_statement "FUN_00013890();" (call_expression "FUN_00013890()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(param_1 + 8) == 1) {\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }\n  }" if (parenthesized_expression "(*(int *)(param_1 + 8) == 1)" ( (binary_expression "*(int *)(param_1 + 8) == 1" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }\n  }" { (expression_statement "iVar3 = *(int *)(unaff_EDI + 0x14605);" (assignment_expression "iVar3 = *(int *)(unaff_EDI + 0x14605)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x14605)" * (cast_expression "(int *)(unaff_EDI + 0x14605)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14605)" ( (binary_expression "unaff_EDI + 0x14605" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(unaff_EDI + 0x144b1);" (assignment_expression "iVar4 = *(int *)(unaff_EDI + 0x144b1)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x144b1)" * (cast_expression "(int *)(unaff_EDI + 0x144b1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x144b1)" ( (binary_expression "unaff_EDI + 0x144b1" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (expression_statement "iVar7 = iVar3;" (assignment_expression "iVar7 = iVar3" identifier = identifier) ;) (do_statement "do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);" do (compound_statement "{\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar7 + 8) = 2;" (assignment_expression "*(undefined4 *)(iVar7 + 8) = 2" (pointer_expression "*(undefined4 *)(iVar7 + 8)" * (cast_expression "(undefined4 *)(iVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = iVar7 + 0x28;" (assignment_expression "iVar7 = iVar7 + 0x28" identifier = (binary_expression "iVar7 + 0x28" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != iVar4 + 1)" ( (binary_expression "iVar5 != iVar4 + 1" identifier != (binary_expression "iVar4 + 1" identifier + number_literal)) )) ;) })) (if_statement "if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }" if (parenthesized_expression "(*(int *)(iVar3 + 0x1c) < 1)" ( (binary_expression "*(int *)(iVar3 + 0x1c) < 1" (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }" { (if_statement "if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x144ce) != '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x144ce) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x144ce)" * (cast_expression "(char *)(unaff_EDI + 0x144ce)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x144ce)" ( (binary_expression "unaff_EDI + 0x144ce" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "*(undefined1 *)(unaff_EDI + 0x14579) = 0;" (assignment_expression "*(undefined1 *)(unaff_EDI + 0x14579) = 0" (pointer_expression "*(undefined1 *)(unaff_EDI + 0x14579)" * (cast_expression "(undefined1 *)(unaff_EDI + 0x14579)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14579)" ( (binary_expression "unaff_EDI + 0x14579" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) })) (if_statement "if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {\n    FUN_00013610();\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }" if (parenthesized_expression "(*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d))" ( (binary_expression "*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)" (pointer_expression "*(int *)(unaff_EDI + 0x14585)" * (cast_expression "(int *)(unaff_EDI + 0x14585)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14585)" ( (binary_expression "unaff_EDI + 0x14585" identifier + number_literal) )))) < (pointer_expression "*(int *)(unaff_EDI + 0x1457d)" * (cast_expression "(int *)(unaff_EDI + 0x1457d)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1457d)" ( (binary_expression "unaff_EDI + 0x1457d" identifier + number_literal) ))))) )) (compound_statement "{\n    FUN_00013610();\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }" { (expression_statement "FUN_00013610();" (call_expression "FUN_00013610()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(unaff_EDI + 0x1457d) = 0;" (assignment_expression "*(undefined4 *)(unaff_EDI + 0x1457d) = 0" (pointer_expression "*(undefined4 *)(unaff_EDI + 0x1457d)" * (cast_expression "(undefined4 *)(unaff_EDI + 0x1457d)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1457d)" ( (binary_expression "unaff_EDI + 0x1457d" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(char *)(unaff_EDI + 0x14589) != '\0') {\n    FUN_00013770();\n  }" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x14589) != '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x14589) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x14589)" * (cast_expression "(char *)(unaff_EDI + 0x14589)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14589)" ( (binary_expression "unaff_EDI + 0x14589" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_00013770();\n  }" { (expression_statement "FUN_00013770();" (call_expression "FUN_00013770()" identifier (argument_list "()" ( ))) ;) })) (for_statement "for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {\n    FUN_00013bd0((int)*pcVar8);\n  }" for ( ; (binary_expression "pcVar8 != (char *)(iVar1 + iVar2)" identifier != (cast_expression "(char *)(iVar1 + iVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + iVar2)" ( (binary_expression "iVar1 + iVar2" identifier + identifier) )))) ; (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ) (compound_statement "{\n    FUN_00013bd0((int)*pcVar8);\n  }" { (expression_statement "FUN_00013bd0((int)*pcVar8);" (call_expression "FUN_00013bd0((int)*pcVar8)" identifier (argument_list "((int)*pcVar8)" ( (cast_expression "(int)*pcVar8" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar8" * identifier)) ))) ;) })) (if_statement "if (*(int *)(unaff_EDI + 0x145d1) == 0) {\n    iVar1 = *(int *)(param_1 + 0x20);\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }\n  }" if (parenthesized_expression "(*(int *)(unaff_EDI + 0x145d1) == 0)" ( (binary_expression "*(int *)(unaff_EDI + 0x145d1) == 0" (pointer_expression "*(int *)(unaff_EDI + 0x145d1)" * (cast_expression "(int *)(unaff_EDI + 0x145d1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145d1)" ( (binary_expression "unaff_EDI + 0x145d1" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar1 = *(int *)(param_1 + 0x20);\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }\n  }" { (expression_statement "iVar1 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;" (assignment_expression "iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1" identifier = (binary_expression "*(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1" (pointer_expression "*(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4)" * (cast_expression "(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4)" ( (binary_expression "*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4" (pointer_expression "*(int *)(unaff_EDI + 0x145f1)" * (cast_expression "(int *)(unaff_EDI + 0x145f1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145f1)" ( (binary_expression "unaff_EDI + 0x145f1" identifier + number_literal) )))) + (binary_expression "iVar6 * 4" identifier * number_literal)) )))) + identifier)) ;) (expression_statement "*(int *)(unaff_EDI + 0x145c9) = iVar6;" (assignment_expression "*(int *)(unaff_EDI + 0x145c9) = iVar6" (pointer_expression "*(int *)(unaff_EDI + 0x145c9)" * (cast_expression "(int *)(unaff_EDI + 0x145c9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145c9)" ( (binary_expression "unaff_EDI + 0x145c9" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }" if (parenthesized_expression "(iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd))" ( (binary_expression "iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)" (binary_expression "iVar1 - *(int *)(unaff_EDI + 0x14585)" identifier - (pointer_expression "*(int *)(unaff_EDI + 0x14585)" * (cast_expression "(int *)(unaff_EDI + 0x14585)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14585)" ( (binary_expression "unaff_EDI + 0x14585" identifier + number_literal) ))))) == (pointer_expression "*(int *)(unaff_EDI + 0x145cd)" * (cast_expression "(int *)(unaff_EDI + 0x145cd)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145cd)" ( (binary_expression "unaff_EDI + 0x145cd" identifier + number_literal) ))))) )) (compound_statement "{\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }" { (expression_statement "*(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);" (assignment_expression "*(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585)" (pointer_expression "*(int *)(unaff_EDI + 0x145c9)" * (cast_expression "(int *)(unaff_EDI + 0x145c9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145c9)" ( (binary_expression "unaff_EDI + 0x145c9" identifier + number_literal) )))) = (binary_expression "iVar6 - *(int *)(unaff_EDI + 0x14585)" identifier - (pointer_expression "*(int *)(unaff_EDI + 0x14585)" * (cast_expression "(int *)(unaff_EDI + 0x14585)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14585)" ( (binary_expression "unaff_EDI + 0x14585" identifier + number_literal) )))))) ;) (return_statement "return 1;" return number_literal ;) })) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\n_Bool print_stored(COLUMN *p)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  int unaff_EDI;\n  \n  __x86_get_pc_thunk_di();\n  iVar1 = *(int *)(unaff_EDI + 0x14601);\n  *(undefined1 *)(unaff_EDI + 0x14579) = 1;\n  iVar6 = p->current_line;\n  p->current_line = iVar6 + 1;\n  pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);\n  iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);\n  if (*(char *)(unaff_EDI + 0x145e9) != '\0') {\n    print_header();\n  }\n  if (p->status == FADVISE_RANDOM) {\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return true;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return true;\n    }\n  }\n  if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {\n    pad_across_to(*(int *)(unaff_EDI + 0x1457d) - *(int *)(unaff_EDI + 0x14585));\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }\n  if (*(char *)(unaff_EDI + 0x14589) != '\0') {\n    print_sep_string();\n  }\n  for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {\n    print_char(*pcVar8);\n  }\n  if (*(int *)(unaff_EDI + 0x145d1) == 0) {\n    iVar1 = p->start_position;\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return true;\n    }\n  }\n  return true;\n}\n\n" comment comment (function_definition "_Bool print_stored(COLUMN *p)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  int unaff_EDI;\n  \n  __x86_get_pc_thunk_di();\n  iVar1 = *(int *)(unaff_EDI + 0x14601);\n  *(undefined1 *)(unaff_EDI + 0x14579) = 1;\n  iVar6 = p->current_line;\n  p->current_line = iVar6 + 1;\n  pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);\n  iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);\n  if (*(char *)(unaff_EDI + 0x145e9) != '\0') {\n    print_header();\n  }\n  if (p->status == FADVISE_RANDOM) {\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return true;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return true;\n    }\n  }\n  if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {\n    pad_across_to(*(int *)(unaff_EDI + 0x1457d) - *(int *)(unaff_EDI + 0x14585));\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }\n  if (*(char *)(unaff_EDI + 0x14589) != '\0') {\n    print_sep_string();\n  }\n  for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {\n    print_char(*pcVar8);\n  }\n  if (*(int *)(unaff_EDI + 0x145d1) == 0) {\n    iVar1 = p->start_position;\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return true;\n    }\n  }\n  return true;\n}" type_identifier (function_declarator "print_stored(COLUMN *p)" identifier (parameter_list "(COLUMN *p)" ( (parameter_declaration "COLUMN *p" type_identifier (pointer_declarator "*p" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  int unaff_EDI;\n  \n  __x86_get_pc_thunk_di();\n  iVar1 = *(int *)(unaff_EDI + 0x14601);\n  *(undefined1 *)(unaff_EDI + 0x14579) = 1;\n  iVar6 = p->current_line;\n  p->current_line = iVar6 + 1;\n  pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);\n  iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);\n  if (*(char *)(unaff_EDI + 0x145e9) != '\0') {\n    print_header();\n  }\n  if (p->status == FADVISE_RANDOM) {\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return true;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return true;\n    }\n  }\n  if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {\n    pad_across_to(*(int *)(unaff_EDI + 0x1457d) - *(int *)(unaff_EDI + 0x14585));\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }\n  if (*(char *)(unaff_EDI + 0x14589) != '\0') {\n    print_sep_string();\n  }\n  for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {\n    print_char(*pcVar8);\n  }\n  if (*(int *)(unaff_EDI + 0x145d1) == 0) {\n    iVar1 = p->start_position;\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return true;\n    }\n  }\n  return true;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (expression_statement "__x86_get_pc_thunk_di();" (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = *(int *)(unaff_EDI + 0x14601);" (assignment_expression "iVar1 = *(int *)(unaff_EDI + 0x14601)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x14601)" * (cast_expression "(int *)(unaff_EDI + 0x14601)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14601)" ( (binary_expression "unaff_EDI + 0x14601" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(unaff_EDI + 0x14579) = 1;" (assignment_expression "*(undefined1 *)(unaff_EDI + 0x14579) = 1" (pointer_expression "*(undefined1 *)(unaff_EDI + 0x14579)" * (cast_expression "(undefined1 *)(unaff_EDI + 0x14579)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14579)" ( (binary_expression "unaff_EDI + 0x14579" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = p->current_line;" (assignment_expression "iVar6 = p->current_line" identifier = (field_expression "p->current_line" identifier -> field_identifier)) ;) (expression_statement "p->current_line = iVar6 + 1;" (assignment_expression "p->current_line = iVar6 + 1" (field_expression "p->current_line" identifier -> field_identifier) = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);" (assignment_expression "pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1)" identifier = (cast_expression "(char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1)" ( (binary_expression "*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1" (pointer_expression "*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4)" * (cast_expression "(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4)" ( (binary_expression "*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4" (pointer_expression "*(int *)(unaff_EDI + 0x145f5)" * (cast_expression "(int *)(unaff_EDI + 0x145f5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145f5)" ( (binary_expression "unaff_EDI + 0x145f5" identifier + number_literal) )))) + (binary_expression "iVar6 * 4" identifier * number_literal)) )))) + identifier) )))) ;) (expression_statement "iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);" (assignment_expression "iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4)" * (cast_expression "(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4)" ( (binary_expression "*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4" (binary_expression "*(int *)(unaff_EDI + 0x145f5) + 4" (pointer_expression "*(int *)(unaff_EDI + 0x145f5)" * (cast_expression "(int *)(unaff_EDI + 0x145f5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145f5)" ( (binary_expression "unaff_EDI + 0x145f5" identifier + number_literal) )))) + number_literal) + (binary_expression "iVar6 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (*(char *)(unaff_EDI + 0x145e9) != '\0') {\n    print_header();\n  }" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x145e9) != '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x145e9) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x145e9)" * (cast_expression "(char *)(unaff_EDI + 0x145e9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145e9)" ( (binary_expression "unaff_EDI + 0x145e9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    print_header();\n  }" { (expression_statement "print_header();" (call_expression "print_header()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (p->status == FADVISE_RANDOM) {\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return true;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return true;\n    }\n  }" if (parenthesized_expression "(p->status == FADVISE_RANDOM)" ( (binary_expression "p->status == FADVISE_RANDOM" (field_expression "p->status" identifier -> field_identifier) == identifier) )) (compound_statement "{\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return true;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return true;\n    }\n  }" { (expression_statement "iVar3 = *(int *)(unaff_EDI + 0x14605);" (assignment_expression "iVar3 = *(int *)(unaff_EDI + 0x14605)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x14605)" * (cast_expression "(int *)(unaff_EDI + 0x14605)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14605)" ( (binary_expression "unaff_EDI + 0x14605" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(unaff_EDI + 0x144b1);" (assignment_expression "iVar4 = *(int *)(unaff_EDI + 0x144b1)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x144b1)" * (cast_expression "(int *)(unaff_EDI + 0x144b1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x144b1)" ( (binary_expression "unaff_EDI + 0x144b1" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (expression_statement "iVar7 = iVar3;" (assignment_expression "iVar7 = iVar3" identifier = identifier) ;) (do_statement "do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);" do (compound_statement "{\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar7 + 8) = 2;" (assignment_expression "*(undefined4 *)(iVar7 + 8) = 2" (pointer_expression "*(undefined4 *)(iVar7 + 8)" * (cast_expression "(undefined4 *)(iVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = iVar7 + 0x28;" (assignment_expression "iVar7 = iVar7 + 0x28" identifier = (binary_expression "iVar7 + 0x28" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != iVar4 + 1)" ( (binary_expression "iVar5 != iVar4 + 1" identifier != (binary_expression "iVar4 + 1" identifier + number_literal)) )) ;) })) (if_statement "if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return true;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return true;\n    }" if (parenthesized_expression "(*(int *)(iVar3 + 0x1c) < 1)" ( (binary_expression "*(int *)(iVar3 + 0x1c) < 1" (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return true;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return true;\n    }" { (if_statement "if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return true;\n      }" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x144ce) != '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x144ce) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x144ce)" * (cast_expression "(char *)(unaff_EDI + 0x144ce)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x144ce)" ( (binary_expression "unaff_EDI + 0x144ce" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) })) (expression_statement "*(undefined1 *)(unaff_EDI + 0x14579) = 0;" (assignment_expression "*(undefined1 *)(unaff_EDI + 0x14579) = 0" (pointer_expression "*(undefined1 *)(unaff_EDI + 0x14579)" * (cast_expression "(undefined1 *)(unaff_EDI + 0x14579)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14579)" ( (binary_expression "unaff_EDI + 0x14579" identifier + number_literal) )))) = number_literal) ;) (return_statement "return true;" return true ;) })) })) (if_statement "if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {\n    pad_across_to(*(int *)(unaff_EDI + 0x1457d) - *(int *)(unaff_EDI + 0x14585));\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }" if (parenthesized_expression "(*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d))" ( (binary_expression "*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)" (pointer_expression "*(int *)(unaff_EDI + 0x14585)" * (cast_expression "(int *)(unaff_EDI + 0x14585)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14585)" ( (binary_expression "unaff_EDI + 0x14585" identifier + number_literal) )))) < (pointer_expression "*(int *)(unaff_EDI + 0x1457d)" * (cast_expression "(int *)(unaff_EDI + 0x1457d)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1457d)" ( (binary_expression "unaff_EDI + 0x1457d" identifier + number_literal) ))))) )) (compound_statement "{\n    pad_across_to(*(int *)(unaff_EDI + 0x1457d) - *(int *)(unaff_EDI + 0x14585));\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }" { (expression_statement "pad_across_to(*(int *)(unaff_EDI + 0x1457d) - *(int *)(unaff_EDI + 0x14585));" (call_expression "pad_across_to(*(int *)(unaff_EDI + 0x1457d) - *(int *)(unaff_EDI + 0x14585))" identifier (argument_list "(*(int *)(unaff_EDI + 0x1457d) - *(int *)(unaff_EDI + 0x14585))" ( (binary_expression "*(int *)(unaff_EDI + 0x1457d) - *(int *)(unaff_EDI + 0x14585)" (pointer_expression "*(int *)(unaff_EDI + 0x1457d)" * (cast_expression "(int *)(unaff_EDI + 0x1457d)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1457d)" ( (binary_expression "unaff_EDI + 0x1457d" identifier + number_literal) )))) - (pointer_expression "*(int *)(unaff_EDI + 0x14585)" * (cast_expression "(int *)(unaff_EDI + 0x14585)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14585)" ( (binary_expression "unaff_EDI + 0x14585" identifier + number_literal) ))))) ))) ;) (expression_statement "*(undefined4 *)(unaff_EDI + 0x1457d) = 0;" (assignment_expression "*(undefined4 *)(unaff_EDI + 0x1457d) = 0" (pointer_expression "*(undefined4 *)(unaff_EDI + 0x1457d)" * (cast_expression "(undefined4 *)(unaff_EDI + 0x1457d)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1457d)" ( (binary_expression "unaff_EDI + 0x1457d" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(char *)(unaff_EDI + 0x14589) != '\0') {\n    print_sep_string();\n  }" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x14589) != '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x14589) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x14589)" * (cast_expression "(char *)(unaff_EDI + 0x14589)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14589)" ( (binary_expression "unaff_EDI + 0x14589" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    print_sep_string();\n  }" { (expression_statement "print_sep_string();" (call_expression "print_sep_string()" identifier (argument_list "()" ( ))) ;) })) (for_statement "for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {\n    print_char(*pcVar8);\n  }" for ( ; (binary_expression "pcVar8 != (char *)(iVar1 + iVar2)" identifier != (cast_expression "(char *)(iVar1 + iVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + iVar2)" ( (binary_expression "iVar1 + iVar2" identifier + identifier) )))) ; (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ) (compound_statement "{\n    print_char(*pcVar8);\n  }" { (expression_statement "print_char(*pcVar8);" (call_expression "print_char(*pcVar8)" identifier (argument_list "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) ))) ;) })) (if_statement "if (*(int *)(unaff_EDI + 0x145d1) == 0) {\n    iVar1 = p->start_position;\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return true;\n    }\n  }" if (parenthesized_expression "(*(int *)(unaff_EDI + 0x145d1) == 0)" ( (binary_expression "*(int *)(unaff_EDI + 0x145d1) == 0" (pointer_expression "*(int *)(unaff_EDI + 0x145d1)" * (cast_expression "(int *)(unaff_EDI + 0x145d1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145d1)" ( (binary_expression "unaff_EDI + 0x145d1" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar1 = p->start_position;\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return true;\n    }\n  }" { (expression_statement "iVar1 = p->start_position;" (assignment_expression "iVar1 = p->start_position" identifier = (field_expression "p->start_position" identifier -> field_identifier)) ;) (expression_statement "iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;" (assignment_expression "iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1" identifier = (binary_expression "*(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1" (pointer_expression "*(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4)" * (cast_expression "(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4)" ( (binary_expression "*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4" (pointer_expression "*(int *)(unaff_EDI + 0x145f1)" * (cast_expression "(int *)(unaff_EDI + 0x145f1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145f1)" ( (binary_expression "unaff_EDI + 0x145f1" identifier + number_literal) )))) + (binary_expression "iVar6 * 4" identifier * number_literal)) )))) + identifier)) ;) (expression_statement "*(int *)(unaff_EDI + 0x145c9) = iVar6;" (assignment_expression "*(int *)(unaff_EDI + 0x145c9) = iVar6" (pointer_expression "*(int *)(unaff_EDI + 0x145c9)" * (cast_expression "(int *)(unaff_EDI + 0x145c9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145c9)" ( (binary_expression "unaff_EDI + 0x145c9" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return true;\n    }" if (parenthesized_expression "(iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd))" ( (binary_expression "iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)" (binary_expression "iVar1 - *(int *)(unaff_EDI + 0x14585)" identifier - (pointer_expression "*(int *)(unaff_EDI + 0x14585)" * (cast_expression "(int *)(unaff_EDI + 0x14585)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14585)" ( (binary_expression "unaff_EDI + 0x14585" identifier + number_literal) ))))) == (pointer_expression "*(int *)(unaff_EDI + 0x145cd)" * (cast_expression "(int *)(unaff_EDI + 0x145cd)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145cd)" ( (binary_expression "unaff_EDI + 0x145cd" identifier + number_literal) ))))) )) (compound_statement "{\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return true;\n    }" { (expression_statement "*(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);" (assignment_expression "*(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585)" (pointer_expression "*(int *)(unaff_EDI + 0x145c9)" * (cast_expression "(int *)(unaff_EDI + 0x145c9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145c9)" ( (binary_expression "unaff_EDI + 0x145c9" identifier + number_literal) )))) = (binary_expression "iVar6 - *(int *)(unaff_EDI + 0x14585)" identifier - (pointer_expression "*(int *)(unaff_EDI + 0x14585)" * (cast_expression "(int *)(unaff_EDI + 0x14585)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14585)" ( (binary_expression "unaff_EDI + 0x14585" identifier + number_literal) )))))) ;) (return_statement "return true;" return true ;) })) })) (return_statement "return true;" return true ;) })))
(translation_unit "undefined4 FUN_00013c90(int param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  int unaff_EDI;\n  \n  FUN_00015f34();\n  iVar1 = *(int *)(unaff_EDI + 0x14601);\n  *(undefined1 *)(unaff_EDI + 0x14579) = 1;\n  iVar6 = *(int *)(param_1 + 0x14);\n  *(int *)(param_1 + 0x14) = iVar6 + 1;\n  pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);\n  iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);\n  if (*(char *)(unaff_EDI + 0x145e9) != '\0') {\n    FUN_00013890();\n  }\n  if (*(int *)(param_1 + 8) == 1) {\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }\n  }\n  if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {\n    FUN_00013610();\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }\n  if (*(char *)(unaff_EDI + 0x14589) != '\0') {\n    FUN_00013770();\n  }\n  for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {\n    FUN_00013bd0((int)*pcVar8);\n  }\n  if (*(int *)(unaff_EDI + 0x145d1) == 0) {\n    iVar1 = *(int *)(param_1 + 0x20);\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }\n  }\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_00013c90(int param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  int unaff_EDI;\n  \n  FUN_00015f34();\n  iVar1 = *(int *)(unaff_EDI + 0x14601);\n  *(undefined1 *)(unaff_EDI + 0x14579) = 1;\n  iVar6 = *(int *)(param_1 + 0x14);\n  *(int *)(param_1 + 0x14) = iVar6 + 1;\n  pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);\n  iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);\n  if (*(char *)(unaff_EDI + 0x145e9) != '\0') {\n    FUN_00013890();\n  }\n  if (*(int *)(param_1 + 8) == 1) {\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }\n  }\n  if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {\n    FUN_00013610();\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }\n  if (*(char *)(unaff_EDI + 0x14589) != '\0') {\n    FUN_00013770();\n  }\n  for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {\n    FUN_00013bd0((int)*pcVar8);\n  }\n  if (*(int *)(unaff_EDI + 0x145d1) == 0) {\n    iVar1 = *(int *)(param_1 + 0x20);\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_00013c90(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  int unaff_EDI;\n  \n  FUN_00015f34();\n  iVar1 = *(int *)(unaff_EDI + 0x14601);\n  *(undefined1 *)(unaff_EDI + 0x14579) = 1;\n  iVar6 = *(int *)(param_1 + 0x14);\n  *(int *)(param_1 + 0x14) = iVar6 + 1;\n  pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);\n  iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);\n  if (*(char *)(unaff_EDI + 0x145e9) != '\0') {\n    FUN_00013890();\n  }\n  if (*(int *)(param_1 + 8) == 1) {\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }\n  }\n  if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {\n    FUN_00013610();\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }\n  if (*(char *)(unaff_EDI + 0x14589) != '\0') {\n    FUN_00013770();\n  }\n  for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {\n    FUN_00013bd0((int)*pcVar8);\n  }\n  if (*(int *)(unaff_EDI + 0x145d1) == 0) {\n    iVar1 = *(int *)(param_1 + 0x20);\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }\n  }\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (expression_statement "FUN_00015f34();" (call_expression "FUN_00015f34()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = *(int *)(unaff_EDI + 0x14601);" (assignment_expression "iVar1 = *(int *)(unaff_EDI + 0x14601)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x14601)" * (cast_expression "(int *)(unaff_EDI + 0x14601)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14601)" ( (binary_expression "unaff_EDI + 0x14601" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(unaff_EDI + 0x14579) = 1;" (assignment_expression "*(undefined1 *)(unaff_EDI + 0x14579) = 1" (pointer_expression "*(undefined1 *)(unaff_EDI + 0x14579)" * (cast_expression "(undefined1 *)(unaff_EDI + 0x14579)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14579)" ( (binary_expression "unaff_EDI + 0x14579" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_1 + 0x14) = iVar6 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar6 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);" (assignment_expression "pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1)" identifier = (cast_expression "(char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1)" ( (binary_expression "*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1" (pointer_expression "*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4)" * (cast_expression "(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4)" ( (binary_expression "*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4" (pointer_expression "*(int *)(unaff_EDI + 0x145f5)" * (cast_expression "(int *)(unaff_EDI + 0x145f5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145f5)" ( (binary_expression "unaff_EDI + 0x145f5" identifier + number_literal) )))) + (binary_expression "iVar6 * 4" identifier * number_literal)) )))) + identifier) )))) ;) (expression_statement "iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);" (assignment_expression "iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4)" identifier = (pointer_expression "*(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4)" * (cast_expression "(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4)" ( (binary_expression "*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4" (binary_expression "*(int *)(unaff_EDI + 0x145f5) + 4" (pointer_expression "*(int *)(unaff_EDI + 0x145f5)" * (cast_expression "(int *)(unaff_EDI + 0x145f5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145f5)" ( (binary_expression "unaff_EDI + 0x145f5" identifier + number_literal) )))) + number_literal) + (binary_expression "iVar6 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (*(char *)(unaff_EDI + 0x145e9) != '\0') {\n    FUN_00013890();\n  }" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x145e9) != '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x145e9) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x145e9)" * (cast_expression "(char *)(unaff_EDI + 0x145e9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145e9)" ( (binary_expression "unaff_EDI + 0x145e9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_00013890();\n  }" { (expression_statement "FUN_00013890();" (call_expression "FUN_00013890()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(param_1 + 8) == 1) {\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }\n  }" if (parenthesized_expression "(*(int *)(param_1 + 8) == 1)" ( (binary_expression "*(int *)(param_1 + 8) == 1" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }\n  }" { (expression_statement "iVar3 = *(int *)(unaff_EDI + 0x14605);" (assignment_expression "iVar3 = *(int *)(unaff_EDI + 0x14605)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x14605)" * (cast_expression "(int *)(unaff_EDI + 0x14605)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14605)" ( (binary_expression "unaff_EDI + 0x14605" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(unaff_EDI + 0x144b1);" (assignment_expression "iVar4 = *(int *)(unaff_EDI + 0x144b1)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x144b1)" * (cast_expression "(int *)(unaff_EDI + 0x144b1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x144b1)" ( (binary_expression "unaff_EDI + 0x144b1" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (expression_statement "iVar7 = iVar3;" (assignment_expression "iVar7 = iVar3" identifier = identifier) ;) (do_statement "do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);" do (compound_statement "{\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar7 + 8) = 2;" (assignment_expression "*(undefined4 *)(iVar7 + 8) = 2" (pointer_expression "*(undefined4 *)(iVar7 + 8)" * (cast_expression "(undefined4 *)(iVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = iVar7 + 0x28;" (assignment_expression "iVar7 = iVar7 + 0x28" identifier = (binary_expression "iVar7 + 0x28" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != iVar4 + 1)" ( (binary_expression "iVar5 != iVar4 + 1" identifier != (binary_expression "iVar4 + 1" identifier + number_literal)) )) ;) })) (if_statement "if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }" if (parenthesized_expression "(*(int *)(iVar3 + 0x1c) < 1)" ( (binary_expression "*(int *)(iVar3 + 0x1c) < 1" (pointer_expression "*(int *)(iVar3 + 0x1c)" * (cast_expression "(int *)(iVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }" { (if_statement "if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x144ce) != '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x144ce) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x144ce)" * (cast_expression "(char *)(unaff_EDI + 0x144ce)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x144ce)" ( (binary_expression "unaff_EDI + 0x144ce" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "*(undefined1 *)(unaff_EDI + 0x14579) = 0;" (assignment_expression "*(undefined1 *)(unaff_EDI + 0x14579) = 0" (pointer_expression "*(undefined1 *)(unaff_EDI + 0x14579)" * (cast_expression "(undefined1 *)(unaff_EDI + 0x14579)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14579)" ( (binary_expression "unaff_EDI + 0x14579" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) })) (if_statement "if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {\n    FUN_00013610();\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }" if (parenthesized_expression "(*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d))" ( (binary_expression "*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)" (pointer_expression "*(int *)(unaff_EDI + 0x14585)" * (cast_expression "(int *)(unaff_EDI + 0x14585)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14585)" ( (binary_expression "unaff_EDI + 0x14585" identifier + number_literal) )))) < (pointer_expression "*(int *)(unaff_EDI + 0x1457d)" * (cast_expression "(int *)(unaff_EDI + 0x1457d)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1457d)" ( (binary_expression "unaff_EDI + 0x1457d" identifier + number_literal) ))))) )) (compound_statement "{\n    FUN_00013610();\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }" { (expression_statement "FUN_00013610();" (call_expression "FUN_00013610()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(unaff_EDI + 0x1457d) = 0;" (assignment_expression "*(undefined4 *)(unaff_EDI + 0x1457d) = 0" (pointer_expression "*(undefined4 *)(unaff_EDI + 0x1457d)" * (cast_expression "(undefined4 *)(unaff_EDI + 0x1457d)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x1457d)" ( (binary_expression "unaff_EDI + 0x1457d" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(char *)(unaff_EDI + 0x14589) != '\0') {\n    FUN_00013770();\n  }" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x14589) != '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x14589) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x14589)" * (cast_expression "(char *)(unaff_EDI + 0x14589)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14589)" ( (binary_expression "unaff_EDI + 0x14589" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_00013770();\n  }" { (expression_statement "FUN_00013770();" (call_expression "FUN_00013770()" identifier (argument_list "()" ( ))) ;) })) (for_statement "for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {\n    FUN_00013bd0((int)*pcVar8);\n  }" for ( ; (binary_expression "pcVar8 != (char *)(iVar1 + iVar2)" identifier != (cast_expression "(char *)(iVar1 + iVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + iVar2)" ( (binary_expression "iVar1 + iVar2" identifier + identifier) )))) ; (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ) (compound_statement "{\n    FUN_00013bd0((int)*pcVar8);\n  }" { (expression_statement "FUN_00013bd0((int)*pcVar8);" (call_expression "FUN_00013bd0((int)*pcVar8)" identifier (argument_list "((int)*pcVar8)" ( (cast_expression "(int)*pcVar8" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar8" * identifier)) ))) ;) })) (if_statement "if (*(int *)(unaff_EDI + 0x145d1) == 0) {\n    iVar1 = *(int *)(param_1 + 0x20);\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }\n  }" if (parenthesized_expression "(*(int *)(unaff_EDI + 0x145d1) == 0)" ( (binary_expression "*(int *)(unaff_EDI + 0x145d1) == 0" (pointer_expression "*(int *)(unaff_EDI + 0x145d1)" * (cast_expression "(int *)(unaff_EDI + 0x145d1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145d1)" ( (binary_expression "unaff_EDI + 0x145d1" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar1 = *(int *)(param_1 + 0x20);\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }\n  }" { (expression_statement "iVar1 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;" (assignment_expression "iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1" identifier = (binary_expression "*(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1" (pointer_expression "*(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4)" * (cast_expression "(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4)" ( (binary_expression "*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4" (pointer_expression "*(int *)(unaff_EDI + 0x145f1)" * (cast_expression "(int *)(unaff_EDI + 0x145f1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145f1)" ( (binary_expression "unaff_EDI + 0x145f1" identifier + number_literal) )))) + (binary_expression "iVar6 * 4" identifier * number_literal)) )))) + identifier)) ;) (expression_statement "*(int *)(unaff_EDI + 0x145c9) = iVar6;" (assignment_expression "*(int *)(unaff_EDI + 0x145c9) = iVar6" (pointer_expression "*(int *)(unaff_EDI + 0x145c9)" * (cast_expression "(int *)(unaff_EDI + 0x145c9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145c9)" ( (binary_expression "unaff_EDI + 0x145c9" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }" if (parenthesized_expression "(iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd))" ( (binary_expression "iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)" (binary_expression "iVar1 - *(int *)(unaff_EDI + 0x14585)" identifier - (pointer_expression "*(int *)(unaff_EDI + 0x14585)" * (cast_expression "(int *)(unaff_EDI + 0x14585)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14585)" ( (binary_expression "unaff_EDI + 0x14585" identifier + number_literal) ))))) == (pointer_expression "*(int *)(unaff_EDI + 0x145cd)" * (cast_expression "(int *)(unaff_EDI + 0x145cd)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145cd)" ( (binary_expression "unaff_EDI + 0x145cd" identifier + number_literal) ))))) )) (compound_statement "{\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }" { (expression_statement "*(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);" (assignment_expression "*(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585)" (pointer_expression "*(int *)(unaff_EDI + 0x145c9)" * (cast_expression "(int *)(unaff_EDI + 0x145c9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x145c9)" ( (binary_expression "unaff_EDI + 0x145c9" identifier + number_literal) )))) = (binary_expression "iVar6 - *(int *)(unaff_EDI + 0x14585)" identifier - (pointer_expression "*(int *)(unaff_EDI + 0x14585)" * (cast_expression "(int *)(unaff_EDI + 0x14585)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x14585)" ( (binary_expression "unaff_EDI + 0x14585" identifier + number_literal) )))))) ;) (return_statement "return 1;" return number_literal ;) })) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return LIT ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (for_statement for ( ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (return_statement return LIT ;) })) })) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_00013c90(int param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  int unaff_EDI;\n  \n  FUN_00015f34();\n  iVar1 = *(int *)(unaff_EDI + 0x14601);\n  *(undefined1 *)(unaff_EDI + 0x14579) = 1;\n  iVar6 = *(int *)(param_1 + 0x14);\n  *(int *)(param_1 + 0x14) = iVar6 + 1;\n  pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);\n  iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);\n  if (*(char *)(unaff_EDI + 0x145e9) != '\0') {\n    FUN_00013890();\n  }\n  if (*(int *)(param_1 + 8) == 1) {\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }\n  }\n  if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {\n    FUN_00013610();\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }\n  if (*(char *)(unaff_EDI + 0x14589) != '\0') {\n    FUN_00013770();\n  }\n  for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {\n    FUN_00013bd0((int)*pcVar8);\n  }\n  if (*(int *)(unaff_EDI + 0x145d1) == 0) {\n    iVar1 = *(int *)(param_1 + 0x20);\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }\n  }\n  return 1;\n}" (type_identifier "undefined4") (function_declarator "FUN_00013c90(int param_1)" (identifier "FUN_00013c90") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  int unaff_EDI;\n  \n  FUN_00015f34();\n  iVar1 = *(int *)(unaff_EDI + 0x14601);\n  *(undefined1 *)(unaff_EDI + 0x14579) = 1;\n  iVar6 = *(int *)(param_1 + 0x14);\n  *(int *)(param_1 + 0x14) = iVar6 + 1;\n  pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);\n  iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);\n  if (*(char *)(unaff_EDI + 0x145e9) != '\0') {\n    FUN_00013890();\n  }\n  if (*(int *)(param_1 + 8) == 1) {\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }\n  }\n  if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {\n    FUN_00013610();\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }\n  if (*(char *)(unaff_EDI + 0x14589) != '\0') {\n    FUN_00013770();\n  }\n  for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {\n    FUN_00013bd0((int)*pcVar8);\n  }\n  if (*(int *)(unaff_EDI + 0x145d1) == 0) {\n    iVar1 = *(int *)(param_1 + 0x20);\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }\n  }\n  return 1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (expression_statement "FUN_00015f34();" (call_expression "FUN_00015f34()" (identifier "FUN_00015f34") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = *(int *)(unaff_EDI + 0x14601);" (assignment_expression "iVar1 = *(int *)(unaff_EDI + 0x14601)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(unaff_EDI + 0x14601)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x14601)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x14601)" (( "(") (binary_expression "unaff_EDI + 0x14601" (identifier "unaff_EDI") (+ "+") (number_literal "0x14601")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(unaff_EDI + 0x14579) = 1;" (assignment_expression "*(undefined1 *)(unaff_EDI + 0x14579) = 1" (pointer_expression "*(undefined1 *)(unaff_EDI + 0x14579)" (* "*") (cast_expression "(undefined1 *)(unaff_EDI + 0x14579)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x14579)" (( "(") (binary_expression "unaff_EDI + 0x14579" (identifier "unaff_EDI") (+ "+") (number_literal "0x14579")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar6 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x14)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(int *)(param_1 + 0x14) = iVar6 + 1;" (assignment_expression "*(int *)(param_1 + 0x14) = iVar6 + 1" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);" (assignment_expression "pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1)" (identifier "pcVar8") (= "=") (cast_expression "(char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1)" (( "(") (binary_expression "*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1" (pointer_expression "*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4)" (* "*") (cast_expression "(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4)" (( "(") (binary_expression "*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4" (pointer_expression "*(int *)(unaff_EDI + 0x145f5)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x145f5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x145f5)" (( "(") (binary_expression "unaff_EDI + 0x145f5" (identifier "unaff_EDI") (+ "+") (number_literal "0x145f5")) () ")")))) (+ "+") (binary_expression "iVar6 * 4" (identifier "iVar6") (* "*") (number_literal "4"))) () ")")))) (+ "+") (identifier "iVar1")) () ")")))) (; ";")) (expression_statement "iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);" (assignment_expression "iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4)" (* "*") (cast_expression "(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4)" (( "(") (binary_expression "*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4" (binary_expression "*(int *)(unaff_EDI + 0x145f5) + 4" (pointer_expression "*(int *)(unaff_EDI + 0x145f5)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x145f5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x145f5)" (( "(") (binary_expression "unaff_EDI + 0x145f5" (identifier "unaff_EDI") (+ "+") (number_literal "0x145f5")) () ")")))) (+ "+") (number_literal "4")) (+ "+") (binary_expression "iVar6 * 4" (identifier "iVar6") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (*(char *)(unaff_EDI + 0x145e9) != '\0') {\n    FUN_00013890();\n  }" (if "if") (parenthesized_expression "(*(char *)(unaff_EDI + 0x145e9) != '\0')" (( "(") (binary_expression "*(char *)(unaff_EDI + 0x145e9) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x145e9)" (* "*") (cast_expression "(char *)(unaff_EDI + 0x145e9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x145e9)" (( "(") (binary_expression "unaff_EDI + 0x145e9" (identifier "unaff_EDI") (+ "+") (number_literal "0x145e9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    FUN_00013890();\n  }" ({ "{") (expression_statement "FUN_00013890();" (call_expression "FUN_00013890()" (identifier "FUN_00013890") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 8) == 1) {\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 8) == 1)" (( "(") (binary_expression "*(int *)(param_1 + 8) == 1" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    iVar3 = *(int *)(unaff_EDI + 0x14605);\n    iVar4 = *(int *)(unaff_EDI + 0x144b1);\n    if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }\n    if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }\n  }" ({ "{") (expression_statement "iVar3 = *(int *)(unaff_EDI + 0x14605);" (assignment_expression "iVar3 = *(int *)(unaff_EDI + 0x14605)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(unaff_EDI + 0x14605)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x14605)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x14605)" (( "(") (binary_expression "unaff_EDI + 0x14605" (identifier "unaff_EDI") (+ "+") (number_literal "0x14605")) () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)(unaff_EDI + 0x144b1);" (assignment_expression "iVar4 = *(int *)(unaff_EDI + 0x144b1)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(unaff_EDI + 0x144b1)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x144b1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x144b1)" (( "(") (binary_expression "unaff_EDI + 0x144b1" (identifier "unaff_EDI") (+ "+") (number_literal "0x144b1")) () ")"))))) (; ";")) (if_statement "if (0 < iVar4) {\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }" (if "if") (parenthesized_expression "(0 < iVar4)" (( "(") (binary_expression "0 < iVar4" (number_literal "0") (< "<") (identifier "iVar4")) () ")")) (compound_statement "{\n      iVar5 = 1;\n      iVar7 = iVar3;\n      do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);\n    }" ({ "{") (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar7 = iVar3;" (assignment_expression "iVar7 = iVar3" (identifier "iVar7") (= "=") (identifier "iVar3")) (; ";")) (do_statement "do {\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      } while (iVar5 != iVar4 + 1);" (do "do") (compound_statement "{\n        iVar5 = iVar5 + 1;\n        *(undefined4 *)(iVar7 + 8) = 2;\n        iVar7 = iVar7 + 0x28;\n      }" ({ "{") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 8) = 2;" (assignment_expression "*(undefined4 *)(iVar7 + 8) = 2" (pointer_expression "*(undefined4 *)(iVar7 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar7 = iVar7 + 0x28;" (assignment_expression "iVar7 = iVar7 + 0x28" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 0x28" (identifier "iVar7") (+ "+") (number_literal "0x28"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 != iVar4 + 1)" (( "(") (binary_expression "iVar5 != iVar4 + 1" (identifier "iVar5") (!= "!=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) () ")")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar3 + 0x1c) < 1) {\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x1c) < 1)" (( "(") (binary_expression "*(int *)(iVar3 + 0x1c) < 1" (pointer_expression "*(int *)(iVar3 + 0x1c)" (* "*") (cast_expression "(int *)(iVar3 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }\n      *(undefined1 *)(unaff_EDI + 0x14579) = 0;\n      return 1;\n    }" ({ "{") (if_statement "if (*(char *)(unaff_EDI + 0x144ce) != '\0') {\n        return 1;\n      }" (if "if") (parenthesized_expression "(*(char *)(unaff_EDI + 0x144ce) != '\0')" (( "(") (binary_expression "*(char *)(unaff_EDI + 0x144ce) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x144ce)" (* "*") (cast_expression "(char *)(unaff_EDI + 0x144ce)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x144ce)" (( "(") (binary_expression "unaff_EDI + 0x144ce" (identifier "unaff_EDI") (+ "+") (number_literal "0x144ce")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(unaff_EDI + 0x14579) = 0;" (assignment_expression "*(undefined1 *)(unaff_EDI + 0x14579) = 0" (pointer_expression "*(undefined1 *)(unaff_EDI + 0x14579)" (* "*") (cast_expression "(undefined1 *)(unaff_EDI + 0x14579)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x14579)" (( "(") (binary_expression "unaff_EDI + 0x14579" (identifier "unaff_EDI") (+ "+") (number_literal "0x14579")) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}"))) (if_statement "if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {\n    FUN_00013610();\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }" (if "if") (parenthesized_expression "(*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d))" (( "(") (binary_expression "*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)" (pointer_expression "*(int *)(unaff_EDI + 0x14585)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x14585)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x14585)" (( "(") (binary_expression "unaff_EDI + 0x14585" (identifier "unaff_EDI") (+ "+") (number_literal "0x14585")) () ")")))) (< "<") (pointer_expression "*(int *)(unaff_EDI + 0x1457d)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x1457d)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x1457d)" (( "(") (binary_expression "unaff_EDI + 0x1457d" (identifier "unaff_EDI") (+ "+") (number_literal "0x1457d")) () ")"))))) () ")")) (compound_statement "{\n    FUN_00013610();\n    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;\n  }" ({ "{") (expression_statement "FUN_00013610();" (call_expression "FUN_00013610()" (identifier "FUN_00013610") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(unaff_EDI + 0x1457d) = 0;" (assignment_expression "*(undefined4 *)(unaff_EDI + 0x1457d) = 0" (pointer_expression "*(undefined4 *)(unaff_EDI + 0x1457d)" (* "*") (cast_expression "(undefined4 *)(unaff_EDI + 0x1457d)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x1457d)" (( "(") (binary_expression "unaff_EDI + 0x1457d" (identifier "unaff_EDI") (+ "+") (number_literal "0x1457d")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (*(char *)(unaff_EDI + 0x14589) != '\0') {\n    FUN_00013770();\n  }" (if "if") (parenthesized_expression "(*(char *)(unaff_EDI + 0x14589) != '\0')" (( "(") (binary_expression "*(char *)(unaff_EDI + 0x14589) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x14589)" (* "*") (cast_expression "(char *)(unaff_EDI + 0x14589)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x14589)" (( "(") (binary_expression "unaff_EDI + 0x14589" (identifier "unaff_EDI") (+ "+") (number_literal "0x14589")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    FUN_00013770();\n  }" ({ "{") (expression_statement "FUN_00013770();" (call_expression "FUN_00013770()" (identifier "FUN_00013770") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (for_statement "for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {\n    FUN_00013bd0((int)*pcVar8);\n  }" (for "for") (( "(") (; ";") (binary_expression "pcVar8 != (char *)(iVar1 + iVar2)" (identifier "pcVar8") (!= "!=") (cast_expression "(char *)(iVar1 + iVar2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + iVar2)" (( "(") (binary_expression "iVar1 + iVar2" (identifier "iVar1") (+ "+") (identifier "iVar2")) () ")")))) (; ";") (assignment_expression "pcVar8 = pcVar8 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + 1" (identifier "pcVar8") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n    FUN_00013bd0((int)*pcVar8);\n  }" ({ "{") (expression_statement "FUN_00013bd0((int)*pcVar8);" (call_expression "FUN_00013bd0((int)*pcVar8)" (identifier "FUN_00013bd0") (argument_list "((int)*pcVar8)" (( "(") (cast_expression "(int)*pcVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(unaff_EDI + 0x145d1) == 0) {\n    iVar1 = *(int *)(param_1 + 0x20);\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(unaff_EDI + 0x145d1) == 0)" (( "(") (binary_expression "*(int *)(unaff_EDI + 0x145d1) == 0" (pointer_expression "*(int *)(unaff_EDI + 0x145d1)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x145d1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x145d1)" (( "(") (binary_expression "unaff_EDI + 0x145d1" (identifier "unaff_EDI") (+ "+") (number_literal "0x145d1")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar1 = *(int *)(param_1 + 0x20);\n    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;\n    *(int *)(unaff_EDI + 0x145c9) = iVar6;\n    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }\n  }" ({ "{") (expression_statement "iVar1 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x20)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;" (assignment_expression "iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1" (identifier "iVar6") (= "=") (binary_expression "*(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1" (pointer_expression "*(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4)" (* "*") (cast_expression "(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4)" (( "(") (binary_expression "*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4" (pointer_expression "*(int *)(unaff_EDI + 0x145f1)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x145f1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x145f1)" (( "(") (binary_expression "unaff_EDI + 0x145f1" (identifier "unaff_EDI") (+ "+") (number_literal "0x145f1")) () ")")))) (+ "+") (binary_expression "iVar6 * 4" (identifier "iVar6") (* "*") (number_literal "4"))) () ")")))) (+ "+") (identifier "iVar1"))) (; ";")) (expression_statement "*(int *)(unaff_EDI + 0x145c9) = iVar6;" (assignment_expression "*(int *)(unaff_EDI + 0x145c9) = iVar6" (pointer_expression "*(int *)(unaff_EDI + 0x145c9)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x145c9)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x145c9)" (( "(") (binary_expression "unaff_EDI + 0x145c9" (identifier "unaff_EDI") (+ "+") (number_literal "0x145c9")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (if_statement "if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd))" (( "(") (binary_expression "iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)" (binary_expression "iVar1 - *(int *)(unaff_EDI + 0x14585)" (identifier "iVar1") (- "-") (pointer_expression "*(int *)(unaff_EDI + 0x14585)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x14585)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x14585)" (( "(") (binary_expression "unaff_EDI + 0x14585" (identifier "unaff_EDI") (+ "+") (number_literal "0x14585")) () ")"))))) (== "==") (pointer_expression "*(int *)(unaff_EDI + 0x145cd)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x145cd)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x145cd)" (( "(") (binary_expression "unaff_EDI + 0x145cd" (identifier "unaff_EDI") (+ "+") (number_literal "0x145cd")) () ")"))))) () ")")) (compound_statement "{\n      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);\n      return 1;\n    }" ({ "{") (expression_statement "*(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);" (assignment_expression "*(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585)" (pointer_expression "*(int *)(unaff_EDI + 0x145c9)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x145c9)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x145c9)" (( "(") (binary_expression "unaff_EDI + 0x145c9" (identifier "unaff_EDI") (+ "+") (number_literal "0x145c9")) () ")")))) (= "=") (binary_expression "iVar6 - *(int *)(unaff_EDI + 0x14585)" (identifier "iVar6") (- "-") (pointer_expression "*(int *)(unaff_EDI + 0x14585)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x14585)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x14585)" (( "(") (binary_expression "unaff_EDI + 0x14585" (identifier "unaff_EDI") (+ "+") (number_literal "0x14585")) () ")")))))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

/* WARNING: Unknown calling convention */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

type_1 function_1(type_2 *p)

{
  int var_4;
  int var_14;
  int var_10;
  int var_7;
  int var_8;
  int var_3;
  int var_9;
  char *var_13;
  int var_2;
  
  var_1();
  var_4 = *(int *)(var_2 + 0x14601);
  *(type_3 *)(var_2 + 0x14579) = 1;
  var_3 = p->current_line;
  p->current_line = var_3 + 1;
  var_13 = (char *)(*(int *)(*(int *)(var_2 + 0x145f5) + var_3 * 4) + var_4);
  var_14 = *(int *)(*(int *)(var_2 + 0x145f5) + 4 + var_3 * 4);
  if (*(char *)(var_2 + 0x145e9) != '\0') {
    var_5();
  }
  if (p->status == var_6) {
    var_10 = *(int *)(var_2 + 0x14605);
    var_7 = *(int *)(var_2 + 0x144b1);
    if (0 < var_7) {
      var_8 = 1;
      var_9 = var_10;
      do {
        var_8 = var_8 + 1;
        *(type_4 *)(var_9 + 8) = 2;
        var_9 = var_9 + 0x28;
      } while (var_8 != var_7 + 1);
    }
    if (*(int *)(var_10 + 0x1c) < 1) {
      if (*(char *)(var_2 + 0x144ce) != '\0') {
        return true;
      }
      *(type_3 *)(var_2 + 0x14579) = 0;
      return true;
    }
  }
  if (*(int *)(var_2 + 0x14585) < *(int *)(var_2 + 0x1457d)) {
    var_11(*(int *)(var_2 + 0x1457d) - *(int *)(var_2 + 0x14585));
    *(type_4 *)(var_2 + 0x1457d) = 0;
  }
  if (*(char *)(var_2 + 0x14589) != '\0') {
    var_12();
  }
  for (; var_13 != (char *)(var_4 + var_14); var_13 = var_13 + 1) {
    var_15(*var_13);
  }
  if (*(int *)(var_2 + 0x145d1) == 0) {
    var_4 = p->start_position;
    var_3 = *(int *)(*(int *)(var_2 + 0x145f1) + var_3 * 4) + var_4;
    *(int *)(var_2 + 0x145c9) = var_3;
    if (var_4 - *(int *)(var_2 + 0x14585) == *(int *)(var_2 + 0x145cd)) {
      *(int *)(var_2 + 0x145c9) = var_3 - *(int *)(var_2 + 0x14585);
      return true;
    }
  }
  return true;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_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))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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))))))) (expression_statement (assignment_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: (binary_expression left: (identifier) right: (number_literal)))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier)))))) (expression_statement (assignment_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: (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: (number_literal)))))))) (if_statement condition: (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: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (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))) consequence: (compound_statement (expression_statement (assignment_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))))))) (expression_statement (assignment_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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (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))) consequence: (compound_statement (if_statement condition: (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: (char_literal (escape_sequence)))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (return_statement (number_literal)))))) (if_statement condition: (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: (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))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (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: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (for_statement condition: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))))))) (if_statement condition: (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))) consequence: (compound_statement (expression_statement (assignment_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))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier)))) (expression_statement (assignment_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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (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)))))) 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))))))) consequence: (compound_statement (expression_statement (assignment_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: (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)))))))) (return_statement (number_literal)))))) (return_statement (number_literal)))))

undefined4 MASKED(int param_1)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  char *pcVar8;
  int unaff_EDI;
  
  FUN_00015f34();
  iVar1 = *(int *)(unaff_EDI + 0x14601);
  *(undefined1 *)(unaff_EDI + 0x14579) = 1;
  iVar6 = *(int *)(param_1 + 0x14);
  *(int *)(param_1 + 0x14) = iVar6 + 1;
  pcVar8 = (char *)(*(int *)(*(int *)(unaff_EDI + 0x145f5) + iVar6 * 4) + iVar1);
  iVar2 = *(int *)(*(int *)(unaff_EDI + 0x145f5) + 4 + iVar6 * 4);
  if (*(char *)(unaff_EDI + 0x145e9) != '\0') {
    FUN_00013890();
  }
  if (*(int *)(param_1 + 8) == 1) {
    iVar3 = *(int *)(unaff_EDI + 0x14605);
    iVar4 = *(int *)(unaff_EDI + 0x144b1);
    if (0 < iVar4) {
      iVar5 = 1;
      iVar7 = iVar3;
      do {
        iVar5 = iVar5 + 1;
        *(undefined4 *)(iVar7 + 8) = 2;
        iVar7 = iVar7 + 0x28;
      } while (iVar5 != iVar4 + 1);
    }
    if (*(int *)(iVar3 + 0x1c) < 1) {
      if (*(char *)(unaff_EDI + 0x144ce) != '\0') {
        return 1;
      }
      *(undefined1 *)(unaff_EDI + 0x14579) = 0;
      return 1;
    }
  }
  if (*(int *)(unaff_EDI + 0x14585) < *(int *)(unaff_EDI + 0x1457d)) {
    FUN_00013610();
    *(undefined4 *)(unaff_EDI + 0x1457d) = 0;
  }
  if (*(char *)(unaff_EDI + 0x14589) != '\0') {
    FUN_00013770();
  }
  for (; pcVar8 != (char *)(iVar1 + iVar2); pcVar8 = pcVar8 + 1) {
    FUN_00013bd0((int)*pcVar8);
  }
  if (*(int *)(unaff_EDI + 0x145d1) == 0) {
    iVar1 = *(int *)(param_1 + 0x20);
    iVar6 = *(int *)(*(int *)(unaff_EDI + 0x145f1) + iVar6 * 4) + iVar1;
    *(int *)(unaff_EDI + 0x145c9) = iVar6;
    if (iVar1 - *(int *)(unaff_EDI + 0x14585) == *(int *)(unaff_EDI + 0x145cd)) {
      *(int *)(unaff_EDI + 0x145c9) = iVar6 - *(int *)(unaff_EDI + 0x14585);
      return 1;
    }
  }
  return 1;
}

