
char * __regparm3
find_page_code_desc(int page_num,int subpage_num,int scsi_ptype,_Bool encserv,_Bool mchngr,
                   int t_proto)

{
  page_code_desc *ppVar1;
  char *pcVar2;
  int iVar3;
  int in_GS_OFFSET;
  int num;
  int local_20;
  
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (((t_proto != -1) &&
      (ppVar1 = get_mpage_trans_tbl_size(t_proto,&num), ppVar1 != (page_code_desc *)0x0)) &&
     (0 < num)) {
    iVar3 = 0;
    do {
      if (ppVar1->page_code == page_num) {
        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;
      }
      else if (page_num < ppVar1->page_code) break;
      iVar3 = iVar3 + 1;
      ppVar1 = ppVar1 + 1;
    } while (iVar3 != num);
  }
  ppVar1 = get_mpage_tbl_size(scsi_ptype,&num);
  if ((ppVar1 != (page_code_desc *)0x0) && (0 < num)) {
    iVar3 = 0;
    do {
      while (ppVar1->page_code != page_num) {
        if (page_num < ppVar1->page_code) goto LAB_00014890;
        iVar3 = iVar3 + 1;
        ppVar1 = ppVar1 + 1;
        if (iVar3 == num) goto LAB_00014890;
      }
      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;
      iVar3 = iVar3 + 1;
      ppVar1 = ppVar1 + 1;
    } while (iVar3 != num);
  }
LAB_00014890:
  if (((scsi_ptype != 0xd) && (encserv)) &&
     ((ppVar1 = get_mpage_tbl_size(0xd,&num), ppVar1 != (page_code_desc *)0x0 && (0 < num)))) {
    iVar3 = 0;
    do {
      if (ppVar1->page_code == page_num) {
        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;
      }
      else if (page_num < ppVar1->page_code) break;
      iVar3 = iVar3 + 1;
      ppVar1 = ppVar1 + 1;
    } while (iVar3 != num);
  }
  if ((((scsi_ptype != 8) && (mchngr)) &&
      (ppVar1 = get_mpage_tbl_size(8,&num), ppVar1 != (page_code_desc *)0x0)) && (0 < num)) {
    iVar3 = 0;
    do {
      while (ppVar1->page_code != page_num) {
        if (page_num < ppVar1->page_code) goto LAB_000148f8;
        iVar3 = iVar3 + 1;
        ppVar1 = ppVar1 + 1;
        if (iVar3 == num) goto LAB_000148f8;
      }
      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;
      iVar3 = iVar3 + 1;
      ppVar1 = ppVar1 + 1;
    } while (iVar3 != num);
  }
LAB_000148f8:
  ppVar1 = get_mpage_tbl_size(-1,&num);
  if (0 < num) {
    iVar3 = 0;
    do {
      while (ppVar1->page_code != page_num) {
        if (page_num < ppVar1->page_code) goto LAB_00014938;
        iVar3 = iVar3 + 1;
        ppVar1 = ppVar1 + 1;
        if (num == iVar3) goto LAB_00014938;
      }
      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;
      iVar3 = iVar3 + 1;
      ppVar1 = ppVar1 + 1;
    } while (num != iVar3);
  }
LAB_00014938:
  pcVar2 = (char *)0x0;
LAB_0001493a:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return pcVar2;
LAB_00014848:
  pcVar2 = ppVar1->desc;
  goto LAB_0001493a;
}



int __regparm3
FUN_000147e0(int param_1,int param_2,int param_3,char param_4,char param_5,int param_6)

{
  int iVar1;
  int *piVar2;
  int iVar3;
  int in_GS_OFFSET;
  int local_24;
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  if (((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24))
  {
    iVar3 = 0;
    do {
      if (*piVar2 == param_1) {
        if (piVar2[1] == param_2) goto LAB_00014848;
      }
      else if (param_1 < *piVar2) break;
      iVar3 = iVar3 + 1;
      piVar2 = piVar2 + 4;
    } while (iVar3 != local_24);
  }
  piVar2 = (int *)FUN_00014480();
  if ((piVar2 != (int *)0x0) && (0 < local_24)) {
    iVar3 = 0;
    do {
      while (*piVar2 != param_1) {
        if (param_1 < *piVar2) goto LAB_00014890;
        iVar3 = iVar3 + 1;
        piVar2 = piVar2 + 4;
        if (iVar3 == local_24) goto LAB_00014890;
      }
      if (piVar2[1] == param_2) goto LAB_00014848;
      iVar3 = iVar3 + 1;
      piVar2 = piVar2 + 4;
    } while (iVar3 != local_24);
  }
LAB_00014890:
  if (((param_3 != 0xd) && (param_4 != '\0')) &&
     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))) {
    iVar3 = 0;
    do {
      if (*piVar2 == param_1) {
        if (piVar2[1] == param_2) goto LAB_00014848;
      }
      else if (param_1 < *piVar2) break;
      iVar3 = iVar3 + 1;
      piVar2 = piVar2 + 4;
    } while (iVar3 != local_24);
  }
  if ((((param_3 != 8) && (param_5 != '\0')) &&
      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24)) {
    iVar3 = 0;
    do {
      while (*piVar2 != param_1) {
        if (param_1 < *piVar2) goto LAB_000148f8;
        iVar3 = iVar3 + 1;
        piVar2 = piVar2 + 4;
        if (iVar3 == local_24) goto LAB_000148f8;
      }
      if (piVar2[1] == param_2) goto LAB_00014848;
      iVar3 = iVar3 + 1;
      piVar2 = piVar2 + 4;
    } while (iVar3 != local_24);
  }
LAB_000148f8:
  piVar2 = (int *)FUN_00014480();
  if (0 < local_24) {
    iVar3 = 0;
    do {
      while (*piVar2 != param_1) {
        if (param_1 < *piVar2) goto LAB_00014938;
        iVar3 = iVar3 + 1;
        piVar2 = piVar2 + 4;
        if (local_24 == iVar3) goto LAB_00014938;
      }
      if (piVar2[1] == param_2) goto LAB_00014848;
      iVar3 = iVar3 + 1;
      piVar2 = piVar2 + 4;
    } while (local_24 != iVar3);
  }
LAB_00014938:
  iVar3 = 0;
LAB_0001493a:
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00014ea0();
  }
  return iVar3;
LAB_00014848:
  iVar3 = piVar2[3];
  goto LAB_0001493a;
}


PUSH EBP
MOV EBP,ECX
PUSH EDI
PUSH ESI
MOV ESI,EDX
PUSH EBX
MOV EBX,EAX
SUB ESP,0x2c
MOV EAX,dword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x44]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x48]
MOV EDI,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0x1c],EDI
XOR EDI,EDI
LEA EDI,[ESP + 0x18]
CMP EAX,-0x1
JZ 0x00014850
MOV EDX,EDI
CALL 0x000146c0
TEST EAX,EAX
JZ 0x00014850
MOV ECX,dword ptr [ESP + 0x18]
TEST ECX,ECX
JLE 0x00014850
XOR EDX,EDX
JMP 0x0001483c
JG 0x00014850
ADD EDX,0x1
ADD EAX,0x10
CMP EDX,ECX
JZ 0x00014850
CMP dword ptr [EAX],EBX
JNZ 0x00014830
CMP dword ptr [EAX + 0x4],ESI
JNZ 0x00014832
LEA ESI,[ESI]
MOV EAX,dword ptr [EAX + 0xc]
JMP 0x0001493a
MOV EDX,EDI
MOV EAX,EBP
CALL 0x00014480
TEST EAX,EAX
JZ 0x00014890
MOV ECX,dword ptr [ESP + 0x18]
TEST ECX,ECX
JLE 0x00014890
XOR EDX,EDX
JMP 0x0001487c
JG 0x00014890
ADD EDX,0x1
ADD EAX,0x10
CMP EDX,ECX
JZ 0x00014890
CMP dword ptr [EAX],EBX
JNZ 0x00014870
CMP dword ptr [EAX + 0x4],ESI
JZ 0x00014848
ADD EDX,0x1
ADD EAX,0x10
CMP EDX,ECX
JNZ 0x0001487c
NOP
CMP EBP,0xd
JZ 0x000148a0
CMP byte ptr [ESP + 0xc],0x0
JNZ 0x00014950
CMP EBP,0x8
JZ 0x000148f8
CMP byte ptr [ESP + 0x8],0x0
JZ 0x000148f8
MOV EDX,EDI
MOV EAX,0x8
CALL 0x00014480
TEST EAX,EAX
JZ 0x000148f8
MOV ECX,dword ptr [ESP + 0x18]
TEST ECX,ECX
JLE 0x000148f8
XOR EDX,EDX
JMP 0x000148dc
JG 0x000148f8
ADD EDX,0x1
ADD EAX,0x10
CMP EDX,ECX
JZ 0x000148f8
CMP dword ptr [EAX],EBX
JNZ 0x000148d0
CMP dword ptr [EAX + 0x4],ESI
JZ 0x00014848
ADD EDX,0x1
ADD EAX,0x10
CMP EDX,ECX
JNZ 0x000148dc
LEA ESI,[ESI]
NOP
MOV EDX,EDI
MOV EAX,0xffffffff
CALL 0x00014480
MOV ECX,dword ptr [ESP + 0x18]
TEST ECX,ECX
JLE 0x00014938
XOR EDX,EDX
JMP 0x0001491c
JG 0x00014938
ADD EDX,0x1
ADD EAX,0x10
CMP ECX,EDX
JZ 0x00014938
CMP dword ptr [EAX],EBX
JNZ 0x00014910
CMP dword ptr [EAX + 0x4],ESI
JZ 0x00014848
ADD EDX,0x1
ADD EAX,0x10
CMP ECX,EDX
JNZ 0x0001491c
LEA ESI,[ESI]
NOP
XOR EAX,EAX
MOV EDI,dword ptr [ESP + 0x1c]
XOR EDI,dword ptr GS:[0x14]
JNZ 0x0001499a
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDX,EDI
MOV EAX,0xd
CALL 0x00014480
TEST EAX,EAX
JZ 0x000148a0
MOV ECX,dword ptr [ESP + 0x18]
TEST ECX,ECX
JLE 0x000148a0
XOR EDX,EDX
JMP 0x0001498c
JG 0x000148a0
ADD EDX,0x1
ADD EAX,0x10
CMP EDX,ECX
JZ 0x000148a0
CMP dword ptr [EAX],EBX
JNZ 0x00014978
CMP dword ptr [EAX + 0x4],ESI
JNZ 0x0001497e
JMP 0x00014848
CALL 0x00014ea0
(translation_unit "int __regparm3\nFUN_000147e0(int param_1,int param_2,int param_3,char param_4,char param_5,int param_6)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  int local_24;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24))\n  {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\n  piVar2 = (int *)FUN_00014480();\n  if ((piVar2 != (int *)0x0) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\nLAB_00014890:\n  if (((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))) {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\n  if ((((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\nLAB_000148f8:\n  piVar2 = (int *)FUN_00014480();\n  if (0 < local_24) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (local_24 != iVar3);\n  }\nLAB_00014938:\n  iVar3 = 0;\nLAB_0001493a:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00014ea0();\n  }\n  return iVar3;\nLAB_00014848:\n  iVar3 = piVar2[3];\n  goto LAB_0001493a;\n}\n\n" (function_definition "int __regparm3\nFUN_000147e0(int param_1,int param_2,int param_3,char param_4,char param_5,int param_6)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  int local_24;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24))\n  {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\n  piVar2 = (int *)FUN_00014480();\n  if ((piVar2 != (int *)0x0) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\nLAB_00014890:\n  if (((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))) {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\n  if ((((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\nLAB_000148f8:\n  piVar2 = (int *)FUN_00014480();\n  if (0 < local_24) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (local_24 != iVar3);\n  }\nLAB_00014938:\n  iVar3 = 0;\nLAB_0001493a:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00014ea0();\n  }\n  return iVar3;\nLAB_00014848:\n  iVar3 = piVar2[3];\n  goto LAB_0001493a;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000147e0(int param_1,int param_2,int param_3,char param_4,char param_5,int param_6)" identifier (parameter_list "(int param_1,int param_2,int param_3,char param_4,char param_5,int param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "char param_4" primitive_type identifier) , (parameter_declaration "char param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  int local_24;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24))\n  {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\n  piVar2 = (int *)FUN_00014480();\n  if ((piVar2 != (int *)0x0) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\nLAB_00014890:\n  if (((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))) {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\n  if ((((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\nLAB_000148f8:\n  piVar2 = (int *)FUN_00014480();\n  if (0 < local_24) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (local_24 != iVar3);\n  }\nLAB_00014938:\n  iVar3 = 0;\nLAB_0001493a:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00014ea0();\n  }\n  return iVar3;\nLAB_00014848:\n  iVar3 = piVar2[3];\n  goto LAB_0001493a;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24))\n  {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" if (parenthesized_expression "(((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24))" ( (binary_expression "((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24)" (parenthesized_expression "((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0))" ( (binary_expression "(param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)" (parenthesized_expression "(param_6 != -1)" ( (binary_expression "param_6 != -1" identifier != number_literal) )) && (parenthesized_expression "(piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)" ( (comma_expression "piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0" (assignment_expression "piVar2 = (int *)FUN_000146c0()" identifier = (cast_expression "(int *)FUN_000146c0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000146c0()" identifier (argument_list "()" ( ))))) , (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(0 < local_24)" ( (binary_expression "0 < local_24" number_literal < identifier) ))) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);" do (compound_statement "{\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    }" { (if_statement "if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;" if (parenthesized_expression "(*piVar2 == param_1)" ( (binary_expression "*piVar2 == param_1" (pointer_expression "*piVar2" * identifier) == identifier) )) (compound_statement "{\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }" { (if_statement "if (piVar2[1] == param_2) goto LAB_00014848;" if (parenthesized_expression "(piVar2[1] == param_2)" ( (binary_expression "piVar2[1] == param_2" (subscript_expression "piVar2[1]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00014848;" goto statement_identifier ;)) }) (else_clause "else if (param_1 < *piVar2) break;" else (if_statement "if (param_1 < *piVar2) break;" if (parenthesized_expression "(param_1 < *piVar2)" ( (binary_expression "param_1 < *piVar2" identifier < (pointer_expression "*piVar2" * identifier)) )) (break_statement "break;" break ;)))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != local_24)" ( (binary_expression "iVar3 != local_24" identifier != identifier) )) ;) })) (expression_statement "piVar2 = (int *)FUN_00014480();" (assignment_expression "piVar2 = (int *)FUN_00014480()" identifier = (cast_expression "(int *)FUN_00014480()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00014480()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((piVar2 != (int *)0x0) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" if (parenthesized_expression "((piVar2 != (int *)0x0) && (0 < local_24))" ( (binary_expression "(piVar2 != (int *)0x0) && (0 < local_24)" (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < local_24)" ( (binary_expression "0 < local_24" number_literal < identifier) ))) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);" do (compound_statement "{\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    }" { (while_statement "while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }" while (parenthesized_expression "(*piVar2 != param_1)" ( (binary_expression "*piVar2 != param_1" (pointer_expression "*piVar2" * identifier) != identifier) )) (compound_statement "{\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }" { (if_statement "if (param_1 < *piVar2) goto LAB_00014890;" if (parenthesized_expression "(param_1 < *piVar2)" ( (binary_expression "param_1 < *piVar2" identifier < (pointer_expression "*piVar2" * identifier)) )) (goto_statement "goto LAB_00014890;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) (if_statement "if (iVar3 == local_24) goto LAB_00014890;" if (parenthesized_expression "(iVar3 == local_24)" ( (binary_expression "iVar3 == local_24" identifier == identifier) )) (goto_statement "goto LAB_00014890;" goto statement_identifier ;)) })) (if_statement "if (piVar2[1] == param_2) goto LAB_00014848;" if (parenthesized_expression "(piVar2[1] == param_2)" ( (binary_expression "piVar2[1] == param_2" (subscript_expression "piVar2[1]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00014848;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != local_24)" ( (binary_expression "iVar3 != local_24" identifier != identifier) )) ;) })) (labeled_statement "LAB_00014890:\n  if (((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))) {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" statement_identifier : (if_statement "if (((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))) {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" if (parenthesized_expression "(((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24))))" ( (binary_expression "((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))" (parenthesized_expression "((param_3 != 0xd) && (param_4 != '\0'))" ( (binary_expression "(param_3 != 0xd) && (param_4 != '\0')" (parenthesized_expression "(param_3 != 0xd)" ( (binary_expression "param_3 != 0xd" identifier != number_literal) )) && (parenthesized_expression "(param_4 != '\0')" ( (binary_expression "param_4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))" ( (parenthesized_expression "(piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24))" ( (comma_expression "piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)" (assignment_expression "piVar2 = (int *)FUN_00014480()" identifier = (cast_expression "(int *)FUN_00014480()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00014480()" identifier (argument_list "()" ( ))))) , (binary_expression "piVar2 != (int *)0x0 && (0 < local_24)" (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(0 < local_24)" ( (binary_expression "0 < local_24" number_literal < identifier) )))) )) ))) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);" do (compound_statement "{\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    }" { (if_statement "if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;" if (parenthesized_expression "(*piVar2 == param_1)" ( (binary_expression "*piVar2 == param_1" (pointer_expression "*piVar2" * identifier) == identifier) )) (compound_statement "{\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }" { (if_statement "if (piVar2[1] == param_2) goto LAB_00014848;" if (parenthesized_expression "(piVar2[1] == param_2)" ( (binary_expression "piVar2[1] == param_2" (subscript_expression "piVar2[1]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00014848;" goto statement_identifier ;)) }) (else_clause "else if (param_1 < *piVar2) break;" else (if_statement "if (param_1 < *piVar2) break;" if (parenthesized_expression "(param_1 < *piVar2)" ( (binary_expression "param_1 < *piVar2" identifier < (pointer_expression "*piVar2" * identifier)) )) (break_statement "break;" break ;)))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != local_24)" ( (binary_expression "iVar3 != local_24" identifier != identifier) )) ;) }))) (if_statement "if ((((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" if (parenthesized_expression "((((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24))" ( (binary_expression "(((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24)" (parenthesized_expression "(((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0))" ( (binary_expression "((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)" (parenthesized_expression "((param_3 != 8) && (param_5 != '\0'))" ( (binary_expression "(param_3 != 8) && (param_5 != '\0')" (parenthesized_expression "(param_3 != 8)" ( (binary_expression "param_3 != 8" identifier != number_literal) )) && (parenthesized_expression "(param_5 != '\0')" ( (binary_expression "param_5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)" ( (comma_expression "piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0" (assignment_expression "piVar2 = (int *)FUN_00014480()" identifier = (cast_expression "(int *)FUN_00014480()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00014480()" identifier (argument_list "()" ( ))))) , (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(0 < local_24)" ( (binary_expression "0 < local_24" number_literal < identifier) ))) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);" do (compound_statement "{\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    }" { (while_statement "while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }" while (parenthesized_expression "(*piVar2 != param_1)" ( (binary_expression "*piVar2 != param_1" (pointer_expression "*piVar2" * identifier) != identifier) )) (compound_statement "{\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }" { (if_statement "if (param_1 < *piVar2) goto LAB_000148f8;" if (parenthesized_expression "(param_1 < *piVar2)" ( (binary_expression "param_1 < *piVar2" identifier < (pointer_expression "*piVar2" * identifier)) )) (goto_statement "goto LAB_000148f8;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) (if_statement "if (iVar3 == local_24) goto LAB_000148f8;" if (parenthesized_expression "(iVar3 == local_24)" ( (binary_expression "iVar3 == local_24" identifier == identifier) )) (goto_statement "goto LAB_000148f8;" goto statement_identifier ;)) })) (if_statement "if (piVar2[1] == param_2) goto LAB_00014848;" if (parenthesized_expression "(piVar2[1] == param_2)" ( (binary_expression "piVar2[1] == param_2" (subscript_expression "piVar2[1]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00014848;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != local_24)" ( (binary_expression "iVar3 != local_24" identifier != identifier) )) ;) })) (labeled_statement "LAB_000148f8:\n  piVar2 = (int *)FUN_00014480();" statement_identifier : (expression_statement "piVar2 = (int *)FUN_00014480();" (assignment_expression "piVar2 = (int *)FUN_00014480()" identifier = (cast_expression "(int *)FUN_00014480()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00014480()" identifier (argument_list "()" ( ))))) ;)) (if_statement "if (0 < local_24) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (local_24 != iVar3);\n  }" if (parenthesized_expression "(0 < local_24)" ( (binary_expression "0 < local_24" number_literal < identifier) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (local_24 != iVar3);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (local_24 != iVar3);" do (compound_statement "{\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    }" { (while_statement "while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }" while (parenthesized_expression "(*piVar2 != param_1)" ( (binary_expression "*piVar2 != param_1" (pointer_expression "*piVar2" * identifier) != identifier) )) (compound_statement "{\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }" { (if_statement "if (param_1 < *piVar2) goto LAB_00014938;" if (parenthesized_expression "(param_1 < *piVar2)" ( (binary_expression "param_1 < *piVar2" identifier < (pointer_expression "*piVar2" * identifier)) )) (goto_statement "goto LAB_00014938;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) (if_statement "if (local_24 == iVar3) goto LAB_00014938;" if (parenthesized_expression "(local_24 == iVar3)" ( (binary_expression "local_24 == iVar3" identifier == identifier) )) (goto_statement "goto LAB_00014938;" goto statement_identifier ;)) })) (if_statement "if (piVar2[1] == param_2) goto LAB_00014848;" if (parenthesized_expression "(piVar2[1] == param_2)" ( (binary_expression "piVar2[1] == param_2" (subscript_expression "piVar2[1]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00014848;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_24 != iVar3)" ( (binary_expression "local_24 != iVar3" identifier != identifier) )) ;) })) (labeled_statement "LAB_00014938:\n  iVar3 = 0;" statement_identifier : (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0001493a:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00014ea0();\n  }" statement_identifier : (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00014ea0();\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00014ea0();\n  }" { comment (expression_statement "FUN_00014ea0();" (call_expression "FUN_00014ea0()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar3;" return identifier ;) (labeled_statement "LAB_00014848:\n  iVar3 = piVar2[3];" statement_identifier : (expression_statement "iVar3 = piVar2[3];" (assignment_expression "iVar3 = piVar2[3]" identifier = (subscript_expression "piVar2[3]" identifier [ number_literal ])) ;)) (goto_statement "goto LAB_0001493a;" goto statement_identifier ;) })))
(translation_unit "char * __regparm3\nfind_page_code_desc(int page_num,int subpage_num,int scsi_ptype,_Bool encserv,_Bool mchngr,\n                   int t_proto)\n\n{\n  page_code_desc *ppVar1;\n  char *pcVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  int num;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((t_proto != -1) &&\n      (ppVar1 = get_mpage_trans_tbl_size(t_proto,&num), ppVar1 != (page_code_desc *)0x0)) &&\n     (0 < num)) {\n    iVar3 = 0;\n    do {\n      if (ppVar1->page_code == page_num) {\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }\n      else if (page_num < ppVar1->page_code) break;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }\n  ppVar1 = get_mpage_tbl_size(scsi_ptype,&num);\n  if ((ppVar1 != (page_code_desc *)0x0) && (0 < num)) {\n    iVar3 = 0;\n    do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_00014890;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }\nLAB_00014890:\n  if (((scsi_ptype != 0xd) && (encserv)) &&\n     ((ppVar1 = get_mpage_tbl_size(0xd,&num), ppVar1 != (page_code_desc *)0x0 && (0 < num)))) {\n    iVar3 = 0;\n    do {\n      if (ppVar1->page_code == page_num) {\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }\n      else if (page_num < ppVar1->page_code) break;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }\n  if ((((scsi_ptype != 8) && (mchngr)) &&\n      (ppVar1 = get_mpage_tbl_size(8,&num), ppVar1 != (page_code_desc *)0x0)) && (0 < num)) {\n    iVar3 = 0;\n    do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_000148f8;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }\nLAB_000148f8:\n  ppVar1 = get_mpage_tbl_size(-1,&num);\n  if (0 < num) {\n    iVar3 = 0;\n    do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (num == iVar3) goto LAB_00014938;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (num != iVar3);\n  }\nLAB_00014938:\n  pcVar2 = (char *)0x0;\nLAB_0001493a:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return pcVar2;\nLAB_00014848:\n  pcVar2 = ppVar1->desc;\n  goto LAB_0001493a;\n}\n\n" (function_definition "char * __regparm3\nfind_page_code_desc(int page_num,int subpage_num,int scsi_ptype,_Bool encserv,_Bool mchngr,\n                   int t_proto)\n\n{\n  page_code_desc *ppVar1;\n  char *pcVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  int num;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((t_proto != -1) &&\n      (ppVar1 = get_mpage_trans_tbl_size(t_proto,&num), ppVar1 != (page_code_desc *)0x0)) &&\n     (0 < num)) {\n    iVar3 = 0;\n    do {\n      if (ppVar1->page_code == page_num) {\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }\n      else if (page_num < ppVar1->page_code) break;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }\n  ppVar1 = get_mpage_tbl_size(scsi_ptype,&num);\n  if ((ppVar1 != (page_code_desc *)0x0) && (0 < num)) {\n    iVar3 = 0;\n    do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_00014890;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }\nLAB_00014890:\n  if (((scsi_ptype != 0xd) && (encserv)) &&\n     ((ppVar1 = get_mpage_tbl_size(0xd,&num), ppVar1 != (page_code_desc *)0x0 && (0 < num)))) {\n    iVar3 = 0;\n    do {\n      if (ppVar1->page_code == page_num) {\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }\n      else if (page_num < ppVar1->page_code) break;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }\n  if ((((scsi_ptype != 8) && (mchngr)) &&\n      (ppVar1 = get_mpage_tbl_size(8,&num), ppVar1 != (page_code_desc *)0x0)) && (0 < num)) {\n    iVar3 = 0;\n    do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_000148f8;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }\nLAB_000148f8:\n  ppVar1 = get_mpage_tbl_size(-1,&num);\n  if (0 < num) {\n    iVar3 = 0;\n    do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (num == iVar3) goto LAB_00014938;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (num != iVar3);\n  }\nLAB_00014938:\n  pcVar2 = (char *)0x0;\nLAB_0001493a:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return pcVar2;\nLAB_00014848:\n  pcVar2 = ppVar1->desc;\n  goto LAB_0001493a;\n}" primitive_type (pointer_declarator "* __regparm3\nfind_page_code_desc(int page_num,int subpage_num,int scsi_ptype,_Bool encserv,_Bool mchngr,\n                   int t_proto)" * (ERROR "__regparm3" identifier) (function_declarator "find_page_code_desc(int page_num,int subpage_num,int scsi_ptype,_Bool encserv,_Bool mchngr,\n                   int t_proto)" identifier (parameter_list "(int page_num,int subpage_num,int scsi_ptype,_Bool encserv,_Bool mchngr,\n                   int t_proto)" ( (parameter_declaration "int page_num" primitive_type identifier) , (parameter_declaration "int subpage_num" primitive_type identifier) , (parameter_declaration "int scsi_ptype" primitive_type identifier) , (parameter_declaration "_Bool encserv" type_identifier identifier) , (parameter_declaration "_Bool mchngr" type_identifier identifier) , (parameter_declaration "int t_proto" primitive_type identifier) )))) (compound_statement "{\n  page_code_desc *ppVar1;\n  char *pcVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  int num;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((t_proto != -1) &&\n      (ppVar1 = get_mpage_trans_tbl_size(t_proto,&num), ppVar1 != (page_code_desc *)0x0)) &&\n     (0 < num)) {\n    iVar3 = 0;\n    do {\n      if (ppVar1->page_code == page_num) {\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }\n      else if (page_num < ppVar1->page_code) break;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }\n  ppVar1 = get_mpage_tbl_size(scsi_ptype,&num);\n  if ((ppVar1 != (page_code_desc *)0x0) && (0 < num)) {\n    iVar3 = 0;\n    do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_00014890;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }\nLAB_00014890:\n  if (((scsi_ptype != 0xd) && (encserv)) &&\n     ((ppVar1 = get_mpage_tbl_size(0xd,&num), ppVar1 != (page_code_desc *)0x0 && (0 < num)))) {\n    iVar3 = 0;\n    do {\n      if (ppVar1->page_code == page_num) {\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }\n      else if (page_num < ppVar1->page_code) break;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }\n  if ((((scsi_ptype != 8) && (mchngr)) &&\n      (ppVar1 = get_mpage_tbl_size(8,&num), ppVar1 != (page_code_desc *)0x0)) && (0 < num)) {\n    iVar3 = 0;\n    do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_000148f8;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }\nLAB_000148f8:\n  ppVar1 = get_mpage_tbl_size(-1,&num);\n  if (0 < num) {\n    iVar3 = 0;\n    do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (num == iVar3) goto LAB_00014938;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (num != iVar3);\n  }\nLAB_00014938:\n  pcVar2 = (char *)0x0;\nLAB_0001493a:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return pcVar2;\nLAB_00014848:\n  pcVar2 = ppVar1->desc;\n  goto LAB_0001493a;\n}" { (declaration "page_code_desc *ppVar1;" type_identifier (pointer_declarator "*ppVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int num;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (((t_proto != -1) &&\n      (ppVar1 = get_mpage_trans_tbl_size(t_proto,&num), ppVar1 != (page_code_desc *)0x0)) &&\n     (0 < num)) {\n    iVar3 = 0;\n    do {\n      if (ppVar1->page_code == page_num) {\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }\n      else if (page_num < ppVar1->page_code) break;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }" if (parenthesized_expression "(((t_proto != -1) &&\n      (ppVar1 = get_mpage_trans_tbl_size(t_proto,&num), ppVar1 != (page_code_desc *)0x0)) &&\n     (0 < num))" ( (binary_expression "((t_proto != -1) &&\n      (ppVar1 = get_mpage_trans_tbl_size(t_proto,&num), ppVar1 != (page_code_desc *)0x0)) &&\n     (0 < num)" (parenthesized_expression "((t_proto != -1) &&\n      (ppVar1 = get_mpage_trans_tbl_size(t_proto,&num), ppVar1 != (page_code_desc *)0x0))" ( (binary_expression "(t_proto != -1) &&\n      (ppVar1 = get_mpage_trans_tbl_size(t_proto,&num), ppVar1 != (page_code_desc *)0x0)" (parenthesized_expression "(t_proto != -1)" ( (binary_expression "t_proto != -1" identifier != number_literal) )) && (parenthesized_expression "(ppVar1 = get_mpage_trans_tbl_size(t_proto,&num), ppVar1 != (page_code_desc *)0x0)" ( (comma_expression "ppVar1 = get_mpage_trans_tbl_size(t_proto,&num), ppVar1 != (page_code_desc *)0x0" (assignment_expression "ppVar1 = get_mpage_trans_tbl_size(t_proto,&num)" identifier = (call_expression "get_mpage_trans_tbl_size(t_proto,&num)" identifier (argument_list "(t_proto,&num)" ( identifier , (pointer_expression "&num" & identifier) )))) , (binary_expression "ppVar1 != (page_code_desc *)0x0" identifier != (cast_expression "(page_code_desc *)0x0" ( (type_descriptor "page_code_desc *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(0 < num)" ( (binary_expression "0 < num" number_literal < identifier) ))) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      if (ppVar1->page_code == page_num) {\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }\n      else if (page_num < ppVar1->page_code) break;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      if (ppVar1->page_code == page_num) {\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }\n      else if (page_num < ppVar1->page_code) break;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);" do (compound_statement "{\n      if (ppVar1->page_code == page_num) {\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }\n      else if (page_num < ppVar1->page_code) break;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    }" { (if_statement "if (ppVar1->page_code == page_num) {\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }\n      else if (page_num < ppVar1->page_code) break;" if (parenthesized_expression "(ppVar1->page_code == page_num)" ( (binary_expression "ppVar1->page_code == page_num" (field_expression "ppVar1->page_code" identifier -> field_identifier) == identifier) )) (compound_statement "{\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }" { (if_statement "if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;" if (parenthesized_expression "(ppVar1->subpage_code == subpage_num)" ( (binary_expression "ppVar1->subpage_code == subpage_num" (field_expression "ppVar1->subpage_code" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_00014848;" goto statement_identifier ;)) }) (else_clause "else if (page_num < ppVar1->page_code) break;" else (if_statement "if (page_num < ppVar1->page_code) break;" if (parenthesized_expression "(page_num < ppVar1->page_code)" ( (binary_expression "page_num < ppVar1->page_code" identifier < (field_expression "ppVar1->page_code" identifier -> field_identifier)) )) (break_statement "break;" break ;)))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "ppVar1 = ppVar1 + 1;" (assignment_expression "ppVar1 = ppVar1 + 1" identifier = (binary_expression "ppVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != num)" ( (binary_expression "iVar3 != num" identifier != identifier) )) ;) })) (expression_statement "ppVar1 = get_mpage_tbl_size(scsi_ptype,&num);" (assignment_expression "ppVar1 = get_mpage_tbl_size(scsi_ptype,&num)" identifier = (call_expression "get_mpage_tbl_size(scsi_ptype,&num)" identifier (argument_list "(scsi_ptype,&num)" ( identifier , (pointer_expression "&num" & identifier) )))) ;) (if_statement "if ((ppVar1 != (page_code_desc *)0x0) && (0 < num)) {\n    iVar3 = 0;\n    do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_00014890;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }" if (parenthesized_expression "((ppVar1 != (page_code_desc *)0x0) && (0 < num))" ( (binary_expression "(ppVar1 != (page_code_desc *)0x0) && (0 < num)" (parenthesized_expression "(ppVar1 != (page_code_desc *)0x0)" ( (binary_expression "ppVar1 != (page_code_desc *)0x0" identifier != (cast_expression "(page_code_desc *)0x0" ( (type_descriptor "page_code_desc *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < num)" ( (binary_expression "0 < num" number_literal < identifier) ))) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_00014890;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_00014890;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);" do (compound_statement "{\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_00014890;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    }" { (while_statement "while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_00014890;\n      }" while (parenthesized_expression "(ppVar1->page_code != page_num)" ( (binary_expression "ppVar1->page_code != page_num" (field_expression "ppVar1->page_code" identifier -> field_identifier) != identifier) )) (compound_statement "{\n        if (page_num < ppVar1->page_code) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_00014890;\n      }" { (if_statement "if (page_num < ppVar1->page_code) goto LAB_00014890;" if (parenthesized_expression "(page_num < ppVar1->page_code)" ( (binary_expression "page_num < ppVar1->page_code" identifier < (field_expression "ppVar1->page_code" identifier -> field_identifier)) )) (goto_statement "goto LAB_00014890;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "ppVar1 = ppVar1 + 1;" (assignment_expression "ppVar1 = ppVar1 + 1" identifier = (binary_expression "ppVar1 + 1" identifier + number_literal)) ;) (if_statement "if (iVar3 == num) goto LAB_00014890;" if (parenthesized_expression "(iVar3 == num)" ( (binary_expression "iVar3 == num" identifier == identifier) )) (goto_statement "goto LAB_00014890;" goto statement_identifier ;)) })) (if_statement "if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;" if (parenthesized_expression "(ppVar1->subpage_code == subpage_num)" ( (binary_expression "ppVar1->subpage_code == subpage_num" (field_expression "ppVar1->subpage_code" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_00014848;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "ppVar1 = ppVar1 + 1;" (assignment_expression "ppVar1 = ppVar1 + 1" identifier = (binary_expression "ppVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != num)" ( (binary_expression "iVar3 != num" identifier != identifier) )) ;) })) (labeled_statement "LAB_00014890:\n  if (((scsi_ptype != 0xd) && (encserv)) &&\n     ((ppVar1 = get_mpage_tbl_size(0xd,&num), ppVar1 != (page_code_desc *)0x0 && (0 < num)))) {\n    iVar3 = 0;\n    do {\n      if (ppVar1->page_code == page_num) {\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }\n      else if (page_num < ppVar1->page_code) break;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }" statement_identifier : (if_statement "if (((scsi_ptype != 0xd) && (encserv)) &&\n     ((ppVar1 = get_mpage_tbl_size(0xd,&num), ppVar1 != (page_code_desc *)0x0 && (0 < num)))) {\n    iVar3 = 0;\n    do {\n      if (ppVar1->page_code == page_num) {\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }\n      else if (page_num < ppVar1->page_code) break;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }" if (parenthesized_expression "(((scsi_ptype != 0xd) && (encserv)) &&\n     ((ppVar1 = get_mpage_tbl_size(0xd,&num), ppVar1 != (page_code_desc *)0x0 && (0 < num))))" ( (binary_expression "((scsi_ptype != 0xd) && (encserv)) &&\n     ((ppVar1 = get_mpage_tbl_size(0xd,&num), ppVar1 != (page_code_desc *)0x0 && (0 < num)))" (parenthesized_expression "((scsi_ptype != 0xd) && (encserv))" ( (binary_expression "(scsi_ptype != 0xd) && (encserv)" (parenthesized_expression "(scsi_ptype != 0xd)" ( (binary_expression "scsi_ptype != 0xd" identifier != number_literal) )) && (parenthesized_expression "(encserv)" ( identifier ))) )) && (parenthesized_expression "((ppVar1 = get_mpage_tbl_size(0xd,&num), ppVar1 != (page_code_desc *)0x0 && (0 < num)))" ( (parenthesized_expression "(ppVar1 = get_mpage_tbl_size(0xd,&num), ppVar1 != (page_code_desc *)0x0 && (0 < num))" ( (comma_expression "ppVar1 = get_mpage_tbl_size(0xd,&num), ppVar1 != (page_code_desc *)0x0 && (0 < num)" (assignment_expression "ppVar1 = get_mpage_tbl_size(0xd,&num)" identifier = (call_expression "get_mpage_tbl_size(0xd,&num)" identifier (argument_list "(0xd,&num)" ( number_literal , (pointer_expression "&num" & identifier) )))) , (binary_expression "ppVar1 != (page_code_desc *)0x0 && (0 < num)" (binary_expression "ppVar1 != (page_code_desc *)0x0" identifier != (cast_expression "(page_code_desc *)0x0" ( (type_descriptor "page_code_desc *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(0 < num)" ( (binary_expression "0 < num" number_literal < identifier) )))) )) ))) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      if (ppVar1->page_code == page_num) {\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }\n      else if (page_num < ppVar1->page_code) break;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      if (ppVar1->page_code == page_num) {\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }\n      else if (page_num < ppVar1->page_code) break;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);" do (compound_statement "{\n      if (ppVar1->page_code == page_num) {\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }\n      else if (page_num < ppVar1->page_code) break;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    }" { (if_statement "if (ppVar1->page_code == page_num) {\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }\n      else if (page_num < ppVar1->page_code) break;" if (parenthesized_expression "(ppVar1->page_code == page_num)" ( (binary_expression "ppVar1->page_code == page_num" (field_expression "ppVar1->page_code" identifier -> field_identifier) == identifier) )) (compound_statement "{\n        if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      }" { (if_statement "if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;" if (parenthesized_expression "(ppVar1->subpage_code == subpage_num)" ( (binary_expression "ppVar1->subpage_code == subpage_num" (field_expression "ppVar1->subpage_code" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_00014848;" goto statement_identifier ;)) }) (else_clause "else if (page_num < ppVar1->page_code) break;" else (if_statement "if (page_num < ppVar1->page_code) break;" if (parenthesized_expression "(page_num < ppVar1->page_code)" ( (binary_expression "page_num < ppVar1->page_code" identifier < (field_expression "ppVar1->page_code" identifier -> field_identifier)) )) (break_statement "break;" break ;)))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "ppVar1 = ppVar1 + 1;" (assignment_expression "ppVar1 = ppVar1 + 1" identifier = (binary_expression "ppVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != num)" ( (binary_expression "iVar3 != num" identifier != identifier) )) ;) }))) (if_statement "if ((((scsi_ptype != 8) && (mchngr)) &&\n      (ppVar1 = get_mpage_tbl_size(8,&num), ppVar1 != (page_code_desc *)0x0)) && (0 < num)) {\n    iVar3 = 0;\n    do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_000148f8;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }" if (parenthesized_expression "((((scsi_ptype != 8) && (mchngr)) &&\n      (ppVar1 = get_mpage_tbl_size(8,&num), ppVar1 != (page_code_desc *)0x0)) && (0 < num))" ( (binary_expression "(((scsi_ptype != 8) && (mchngr)) &&\n      (ppVar1 = get_mpage_tbl_size(8,&num), ppVar1 != (page_code_desc *)0x0)) && (0 < num)" (parenthesized_expression "(((scsi_ptype != 8) && (mchngr)) &&\n      (ppVar1 = get_mpage_tbl_size(8,&num), ppVar1 != (page_code_desc *)0x0))" ( (binary_expression "((scsi_ptype != 8) && (mchngr)) &&\n      (ppVar1 = get_mpage_tbl_size(8,&num), ppVar1 != (page_code_desc *)0x0)" (parenthesized_expression "((scsi_ptype != 8) && (mchngr))" ( (binary_expression "(scsi_ptype != 8) && (mchngr)" (parenthesized_expression "(scsi_ptype != 8)" ( (binary_expression "scsi_ptype != 8" identifier != number_literal) )) && (parenthesized_expression "(mchngr)" ( identifier ))) )) && (parenthesized_expression "(ppVar1 = get_mpage_tbl_size(8,&num), ppVar1 != (page_code_desc *)0x0)" ( (comma_expression "ppVar1 = get_mpage_tbl_size(8,&num), ppVar1 != (page_code_desc *)0x0" (assignment_expression "ppVar1 = get_mpage_tbl_size(8,&num)" identifier = (call_expression "get_mpage_tbl_size(8,&num)" identifier (argument_list "(8,&num)" ( number_literal , (pointer_expression "&num" & identifier) )))) , (binary_expression "ppVar1 != (page_code_desc *)0x0" identifier != (cast_expression "(page_code_desc *)0x0" ( (type_descriptor "page_code_desc *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(0 < num)" ( (binary_expression "0 < num" number_literal < identifier) ))) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_000148f8;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_000148f8;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (iVar3 != num);" do (compound_statement "{\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_000148f8;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    }" { (while_statement "while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_000148f8;\n      }" while (parenthesized_expression "(ppVar1->page_code != page_num)" ( (binary_expression "ppVar1->page_code != page_num" (field_expression "ppVar1->page_code" identifier -> field_identifier) != identifier) )) (compound_statement "{\n        if (page_num < ppVar1->page_code) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (iVar3 == num) goto LAB_000148f8;\n      }" { (if_statement "if (page_num < ppVar1->page_code) goto LAB_000148f8;" if (parenthesized_expression "(page_num < ppVar1->page_code)" ( (binary_expression "page_num < ppVar1->page_code" identifier < (field_expression "ppVar1->page_code" identifier -> field_identifier)) )) (goto_statement "goto LAB_000148f8;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "ppVar1 = ppVar1 + 1;" (assignment_expression "ppVar1 = ppVar1 + 1" identifier = (binary_expression "ppVar1 + 1" identifier + number_literal)) ;) (if_statement "if (iVar3 == num) goto LAB_000148f8;" if (parenthesized_expression "(iVar3 == num)" ( (binary_expression "iVar3 == num" identifier == identifier) )) (goto_statement "goto LAB_000148f8;" goto statement_identifier ;)) })) (if_statement "if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;" if (parenthesized_expression "(ppVar1->subpage_code == subpage_num)" ( (binary_expression "ppVar1->subpage_code == subpage_num" (field_expression "ppVar1->subpage_code" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_00014848;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "ppVar1 = ppVar1 + 1;" (assignment_expression "ppVar1 = ppVar1 + 1" identifier = (binary_expression "ppVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != num)" ( (binary_expression "iVar3 != num" identifier != identifier) )) ;) })) (labeled_statement "LAB_000148f8:\n  ppVar1 = get_mpage_tbl_size(-1,&num);" statement_identifier : (expression_statement "ppVar1 = get_mpage_tbl_size(-1,&num);" (assignment_expression "ppVar1 = get_mpage_tbl_size(-1,&num)" identifier = (call_expression "get_mpage_tbl_size(-1,&num)" identifier (argument_list "(-1,&num)" ( number_literal , (pointer_expression "&num" & identifier) )))) ;)) (if_statement "if (0 < num) {\n    iVar3 = 0;\n    do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (num == iVar3) goto LAB_00014938;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (num != iVar3);\n  }" if (parenthesized_expression "(0 < num)" ( (binary_expression "0 < num" number_literal < identifier) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (num == iVar3) goto LAB_00014938;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (num != iVar3);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (num == iVar3) goto LAB_00014938;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    } while (num != iVar3);" do (compound_statement "{\n      while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (num == iVar3) goto LAB_00014938;\n      }\n      if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      ppVar1 = ppVar1 + 1;\n    }" { (while_statement "while (ppVar1->page_code != page_num) {\n        if (page_num < ppVar1->page_code) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (num == iVar3) goto LAB_00014938;\n      }" while (parenthesized_expression "(ppVar1->page_code != page_num)" ( (binary_expression "ppVar1->page_code != page_num" (field_expression "ppVar1->page_code" identifier -> field_identifier) != identifier) )) (compound_statement "{\n        if (page_num < ppVar1->page_code) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        ppVar1 = ppVar1 + 1;\n        if (num == iVar3) goto LAB_00014938;\n      }" { (if_statement "if (page_num < ppVar1->page_code) goto LAB_00014938;" if (parenthesized_expression "(page_num < ppVar1->page_code)" ( (binary_expression "page_num < ppVar1->page_code" identifier < (field_expression "ppVar1->page_code" identifier -> field_identifier)) )) (goto_statement "goto LAB_00014938;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "ppVar1 = ppVar1 + 1;" (assignment_expression "ppVar1 = ppVar1 + 1" identifier = (binary_expression "ppVar1 + 1" identifier + number_literal)) ;) (if_statement "if (num == iVar3) goto LAB_00014938;" if (parenthesized_expression "(num == iVar3)" ( (binary_expression "num == iVar3" identifier == identifier) )) (goto_statement "goto LAB_00014938;" goto statement_identifier ;)) })) (if_statement "if (ppVar1->subpage_code == subpage_num) goto LAB_00014848;" if (parenthesized_expression "(ppVar1->subpage_code == subpage_num)" ( (binary_expression "ppVar1->subpage_code == subpage_num" (field_expression "ppVar1->subpage_code" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_00014848;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "ppVar1 = ppVar1 + 1;" (assignment_expression "ppVar1 = ppVar1 + 1" identifier = (binary_expression "ppVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(num != iVar3)" ( (binary_expression "num != iVar3" identifier != identifier) )) ;) })) (labeled_statement "LAB_00014938:\n  pcVar2 = (char *)0x0;" statement_identifier : (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_0001493a:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return pcVar2;" return identifier ;) (labeled_statement "LAB_00014848:\n  pcVar2 = ppVar1->desc;" statement_identifier : (expression_statement "pcVar2 = ppVar1->desc;" (assignment_expression "pcVar2 = ppVar1->desc" identifier = (field_expression "ppVar1->desc" identifier -> field_identifier)) ;)) (goto_statement "goto LAB_0001493a;" goto statement_identifier ;) })))
(translation_unit "int __regparm3\nFUN_000147e0(int param_1,int param_2,int param_3,char param_4,char param_5,int param_6)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  int local_24;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24))\n  {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\n  piVar2 = (int *)FUN_00014480();\n  if ((piVar2 != (int *)0x0) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\nLAB_00014890:\n  if (((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))) {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\n  if ((((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\nLAB_000148f8:\n  piVar2 = (int *)FUN_00014480();\n  if (0 < local_24) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (local_24 != iVar3);\n  }\nLAB_00014938:\n  iVar3 = 0;\nLAB_0001493a:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00014ea0();\n  }\n  return iVar3;\nLAB_00014848:\n  iVar3 = piVar2[3];\n  goto LAB_0001493a;\n}\n\n" (function_definition "int __regparm3\nFUN_000147e0(int param_1,int param_2,int param_3,char param_4,char param_5,int param_6)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  int local_24;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24))\n  {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\n  piVar2 = (int *)FUN_00014480();\n  if ((piVar2 != (int *)0x0) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\nLAB_00014890:\n  if (((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))) {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\n  if ((((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\nLAB_000148f8:\n  piVar2 = (int *)FUN_00014480();\n  if (0 < local_24) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (local_24 != iVar3);\n  }\nLAB_00014938:\n  iVar3 = 0;\nLAB_0001493a:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00014ea0();\n  }\n  return iVar3;\nLAB_00014848:\n  iVar3 = piVar2[3];\n  goto LAB_0001493a;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000147e0(int param_1,int param_2,int param_3,char param_4,char param_5,int param_6)" identifier (parameter_list "(int param_1,int param_2,int param_3,char param_4,char param_5,int param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "char param_4" primitive_type identifier) , (parameter_declaration "char param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  int local_24;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24))\n  {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\n  piVar2 = (int *)FUN_00014480();\n  if ((piVar2 != (int *)0x0) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\nLAB_00014890:\n  if (((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))) {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\n  if ((((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\nLAB_000148f8:\n  piVar2 = (int *)FUN_00014480();\n  if (0 < local_24) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (local_24 != iVar3);\n  }\nLAB_00014938:\n  iVar3 = 0;\nLAB_0001493a:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00014ea0();\n  }\n  return iVar3;\nLAB_00014848:\n  iVar3 = piVar2[3];\n  goto LAB_0001493a;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24))\n  {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" if (parenthesized_expression "(((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24))" ( (binary_expression "((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24)" (parenthesized_expression "((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0))" ( (binary_expression "(param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)" (parenthesized_expression "(param_6 != -1)" ( (binary_expression "param_6 != -1" identifier != number_literal) )) && (parenthesized_expression "(piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)" ( (comma_expression "piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0" (assignment_expression "piVar2 = (int *)FUN_000146c0()" identifier = (cast_expression "(int *)FUN_000146c0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000146c0()" identifier (argument_list "()" ( ))))) , (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(0 < local_24)" ( (binary_expression "0 < local_24" number_literal < identifier) ))) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);" do (compound_statement "{\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    }" { (if_statement "if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;" if (parenthesized_expression "(*piVar2 == param_1)" ( (binary_expression "*piVar2 == param_1" (pointer_expression "*piVar2" * identifier) == identifier) )) (compound_statement "{\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }" { (if_statement "if (piVar2[1] == param_2) goto LAB_00014848;" if (parenthesized_expression "(piVar2[1] == param_2)" ( (binary_expression "piVar2[1] == param_2" (subscript_expression "piVar2[1]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00014848;" goto statement_identifier ;)) }) (else_clause "else if (param_1 < *piVar2) break;" else (if_statement "if (param_1 < *piVar2) break;" if (parenthesized_expression "(param_1 < *piVar2)" ( (binary_expression "param_1 < *piVar2" identifier < (pointer_expression "*piVar2" * identifier)) )) (break_statement "break;" break ;)))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != local_24)" ( (binary_expression "iVar3 != local_24" identifier != identifier) )) ;) })) (expression_statement "piVar2 = (int *)FUN_00014480();" (assignment_expression "piVar2 = (int *)FUN_00014480()" identifier = (cast_expression "(int *)FUN_00014480()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00014480()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((piVar2 != (int *)0x0) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" if (parenthesized_expression "((piVar2 != (int *)0x0) && (0 < local_24))" ( (binary_expression "(piVar2 != (int *)0x0) && (0 < local_24)" (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < local_24)" ( (binary_expression "0 < local_24" number_literal < identifier) ))) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);" do (compound_statement "{\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    }" { (while_statement "while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }" while (parenthesized_expression "(*piVar2 != param_1)" ( (binary_expression "*piVar2 != param_1" (pointer_expression "*piVar2" * identifier) != identifier) )) (compound_statement "{\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }" { (if_statement "if (param_1 < *piVar2) goto LAB_00014890;" if (parenthesized_expression "(param_1 < *piVar2)" ( (binary_expression "param_1 < *piVar2" identifier < (pointer_expression "*piVar2" * identifier)) )) (goto_statement "goto LAB_00014890;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) (if_statement "if (iVar3 == local_24) goto LAB_00014890;" if (parenthesized_expression "(iVar3 == local_24)" ( (binary_expression "iVar3 == local_24" identifier == identifier) )) (goto_statement "goto LAB_00014890;" goto statement_identifier ;)) })) (if_statement "if (piVar2[1] == param_2) goto LAB_00014848;" if (parenthesized_expression "(piVar2[1] == param_2)" ( (binary_expression "piVar2[1] == param_2" (subscript_expression "piVar2[1]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00014848;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != local_24)" ( (binary_expression "iVar3 != local_24" identifier != identifier) )) ;) })) (labeled_statement "LAB_00014890:\n  if (((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))) {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" statement_identifier : (if_statement "if (((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))) {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" if (parenthesized_expression "(((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24))))" ( (binary_expression "((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))" (parenthesized_expression "((param_3 != 0xd) && (param_4 != '\0'))" ( (binary_expression "(param_3 != 0xd) && (param_4 != '\0')" (parenthesized_expression "(param_3 != 0xd)" ( (binary_expression "param_3 != 0xd" identifier != number_literal) )) && (parenthesized_expression "(param_4 != '\0')" ( (binary_expression "param_4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))" ( (parenthesized_expression "(piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24))" ( (comma_expression "piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)" (assignment_expression "piVar2 = (int *)FUN_00014480()" identifier = (cast_expression "(int *)FUN_00014480()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00014480()" identifier (argument_list "()" ( ))))) , (binary_expression "piVar2 != (int *)0x0 && (0 < local_24)" (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(0 < local_24)" ( (binary_expression "0 < local_24" number_literal < identifier) )))) )) ))) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);" do (compound_statement "{\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    }" { (if_statement "if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;" if (parenthesized_expression "(*piVar2 == param_1)" ( (binary_expression "*piVar2 == param_1" (pointer_expression "*piVar2" * identifier) == identifier) )) (compound_statement "{\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }" { (if_statement "if (piVar2[1] == param_2) goto LAB_00014848;" if (parenthesized_expression "(piVar2[1] == param_2)" ( (binary_expression "piVar2[1] == param_2" (subscript_expression "piVar2[1]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00014848;" goto statement_identifier ;)) }) (else_clause "else if (param_1 < *piVar2) break;" else (if_statement "if (param_1 < *piVar2) break;" if (parenthesized_expression "(param_1 < *piVar2)" ( (binary_expression "param_1 < *piVar2" identifier < (pointer_expression "*piVar2" * identifier)) )) (break_statement "break;" break ;)))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != local_24)" ( (binary_expression "iVar3 != local_24" identifier != identifier) )) ;) }))) (if_statement "if ((((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" if (parenthesized_expression "((((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24))" ( (binary_expression "(((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24)" (parenthesized_expression "(((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0))" ( (binary_expression "((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)" (parenthesized_expression "((param_3 != 8) && (param_5 != '\0'))" ( (binary_expression "(param_3 != 8) && (param_5 != '\0')" (parenthesized_expression "(param_3 != 8)" ( (binary_expression "param_3 != 8" identifier != number_literal) )) && (parenthesized_expression "(param_5 != '\0')" ( (binary_expression "param_5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)" ( (comma_expression "piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0" (assignment_expression "piVar2 = (int *)FUN_00014480()" identifier = (cast_expression "(int *)FUN_00014480()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00014480()" identifier (argument_list "()" ( ))))) , (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(0 < local_24)" ( (binary_expression "0 < local_24" number_literal < identifier) ))) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);" do (compound_statement "{\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    }" { (while_statement "while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }" while (parenthesized_expression "(*piVar2 != param_1)" ( (binary_expression "*piVar2 != param_1" (pointer_expression "*piVar2" * identifier) != identifier) )) (compound_statement "{\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }" { (if_statement "if (param_1 < *piVar2) goto LAB_000148f8;" if (parenthesized_expression "(param_1 < *piVar2)" ( (binary_expression "param_1 < *piVar2" identifier < (pointer_expression "*piVar2" * identifier)) )) (goto_statement "goto LAB_000148f8;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) (if_statement "if (iVar3 == local_24) goto LAB_000148f8;" if (parenthesized_expression "(iVar3 == local_24)" ( (binary_expression "iVar3 == local_24" identifier == identifier) )) (goto_statement "goto LAB_000148f8;" goto statement_identifier ;)) })) (if_statement "if (piVar2[1] == param_2) goto LAB_00014848;" if (parenthesized_expression "(piVar2[1] == param_2)" ( (binary_expression "piVar2[1] == param_2" (subscript_expression "piVar2[1]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00014848;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != local_24)" ( (binary_expression "iVar3 != local_24" identifier != identifier) )) ;) })) (labeled_statement "LAB_000148f8:\n  piVar2 = (int *)FUN_00014480();" statement_identifier : (expression_statement "piVar2 = (int *)FUN_00014480();" (assignment_expression "piVar2 = (int *)FUN_00014480()" identifier = (cast_expression "(int *)FUN_00014480()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00014480()" identifier (argument_list "()" ( ))))) ;)) (if_statement "if (0 < local_24) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (local_24 != iVar3);\n  }" if (parenthesized_expression "(0 < local_24)" ( (binary_expression "0 < local_24" number_literal < identifier) )) (compound_statement "{\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (local_24 != iVar3);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (local_24 != iVar3);" do (compound_statement "{\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    }" { (while_statement "while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }" while (parenthesized_expression "(*piVar2 != param_1)" ( (binary_expression "*piVar2 != param_1" (pointer_expression "*piVar2" * identifier) != identifier) )) (compound_statement "{\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }" { (if_statement "if (param_1 < *piVar2) goto LAB_00014938;" if (parenthesized_expression "(param_1 < *piVar2)" ( (binary_expression "param_1 < *piVar2" identifier < (pointer_expression "*piVar2" * identifier)) )) (goto_statement "goto LAB_00014938;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) (if_statement "if (local_24 == iVar3) goto LAB_00014938;" if (parenthesized_expression "(local_24 == iVar3)" ( (binary_expression "local_24 == iVar3" identifier == identifier) )) (goto_statement "goto LAB_00014938;" goto statement_identifier ;)) })) (if_statement "if (piVar2[1] == param_2) goto LAB_00014848;" if (parenthesized_expression "(piVar2[1] == param_2)" ( (binary_expression "piVar2[1] == param_2" (subscript_expression "piVar2[1]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00014848;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_24 != iVar3)" ( (binary_expression "local_24 != iVar3" identifier != identifier) )) ;) })) (labeled_statement "LAB_00014938:\n  iVar3 = 0;" statement_identifier : (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0001493a:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00014ea0();\n  }" statement_identifier : (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00014ea0();\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_00014ea0();\n  }" { (expression_statement "FUN_00014ea0();" (call_expression "FUN_00014ea0()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar3;" return identifier ;) (labeled_statement "LAB_00014848:\n  iVar3 = piVar2[3];" statement_identifier : (expression_statement "iVar3 = piVar2[3];" (assignment_expression "iVar3 = piVar2[3]" identifier = (subscript_expression "piVar2[3]" identifier [ number_literal ])) ;)) (goto_statement "goto LAB_0001493a;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * IDENT)) )) (break_statement break ;)))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) , (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (parenthesized_expression ( (binary_expression LIT < IDENT) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * IDENT)) )) (break_statement break ;)))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (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 ( ))) ;) }))) (return_statement return IDENT ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "int __regparm3\nFUN_000147e0(int param_1,int param_2,int param_3,char param_4,char param_5,int param_6)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  int local_24;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24))\n  {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\n  piVar2 = (int *)FUN_00014480();\n  if ((piVar2 != (int *)0x0) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\nLAB_00014890:\n  if (((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))) {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\n  if ((((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\nLAB_000148f8:\n  piVar2 = (int *)FUN_00014480();\n  if (0 < local_24) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (local_24 != iVar3);\n  }\nLAB_00014938:\n  iVar3 = 0;\nLAB_0001493a:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00014ea0();\n  }\n  return iVar3;\nLAB_00014848:\n  iVar3 = piVar2[3];\n  goto LAB_0001493a;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000147e0(int param_1,int param_2,int param_3,char param_4,char param_5,int param_6)" (identifier "FUN_000147e0") (parameter_list "(int param_1,int param_2,int param_3,char param_4,char param_5,int param_6)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "char param_4" (primitive_type "char") (identifier "param_4")) (, ",") (parameter_declaration "char param_5" (primitive_type "char") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) () ")"))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int in_GS_OFFSET;\n  int local_24;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24))\n  {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\n  piVar2 = (int *)FUN_00014480();\n  if ((piVar2 != (int *)0x0) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\nLAB_00014890:\n  if (((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))) {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\n  if ((((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }\nLAB_000148f8:\n  piVar2 = (int *)FUN_00014480();\n  if (0 < local_24) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (local_24 != iVar3);\n  }\nLAB_00014938:\n  iVar3 = 0;\nLAB_0001493a:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00014ea0();\n  }\n  return iVar3;\nLAB_00014848:\n  iVar3 = piVar2[3];\n  goto LAB_0001493a;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24))\n  {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" (if "if") (parenthesized_expression "(((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24))" (( "(") (binary_expression "((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24)" (parenthesized_expression "((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0))" (( "(") (binary_expression "(param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)" (parenthesized_expression "(param_6 != -1)" (( "(") (binary_expression "param_6 != -1" (identifier "param_6") (!= "!=") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)" (( "(") (comma_expression "piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0" (assignment_expression "piVar2 = (int *)FUN_000146c0()" (identifier "piVar2") (= "=") (cast_expression "(int *)FUN_000146c0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000146c0()" (identifier "FUN_000146c0") (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "piVar2 != (int *)0x0" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(0 < local_24)" (( "(") (binary_expression "0 < local_24" (number_literal "0") (< "<") (identifier "local_24")) () ")"))) () ")")) (compound_statement "{\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);" (do "do") (compound_statement "{\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    }" ({ "{") (if_statement "if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;" (if "if") (parenthesized_expression "(*piVar2 == param_1)" (( "(") (binary_expression "*piVar2 == param_1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }" ({ "{") (if_statement "if (piVar2[1] == param_2) goto LAB_00014848;" (if "if") (parenthesized_expression "(piVar2[1] == param_2)" (( "(") (binary_expression "piVar2[1] == param_2" (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "param_2")) () ")")) (goto_statement "goto LAB_00014848;" (goto "goto") (statement_identifier "LAB_00014848") (; ";"))) (} "}")) (else_clause "else if (param_1 < *piVar2) break;" (else "else") (if_statement "if (param_1 < *piVar2) break;" (if "if") (parenthesized_expression "(param_1 < *piVar2)" (( "(") (binary_expression "param_1 < *piVar2" (identifier "param_1") (< "<") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) () ")")) (break_statement "break;" (break "break") (; ";"))))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" (identifier "piVar2") (= "=") (binary_expression "piVar2 + 4" (identifier "piVar2") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != local_24)" (( "(") (binary_expression "iVar3 != local_24" (identifier "iVar3") (!= "!=") (identifier "local_24")) () ")")) (; ";")) (} "}"))) (expression_statement "piVar2 = (int *)FUN_00014480();" (assignment_expression "piVar2 = (int *)FUN_00014480()" (identifier "piVar2") (= "=") (cast_expression "(int *)FUN_00014480()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00014480()" (identifier "FUN_00014480") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((piVar2 != (int *)0x0) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" (if "if") (parenthesized_expression "((piVar2 != (int *)0x0) && (0 < local_24))" (( "(") (binary_expression "(piVar2 != (int *)0x0) && (0 < local_24)" (parenthesized_expression "(piVar2 != (int *)0x0)" (( "(") (binary_expression "piVar2 != (int *)0x0" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(0 < local_24)" (( "(") (binary_expression "0 < local_24" (number_literal "0") (< "<") (identifier "local_24")) () ")"))) () ")")) (compound_statement "{\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);" (do "do") (compound_statement "{\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    }" ({ "{") (while_statement "while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }" (while "while") (parenthesized_expression "(*piVar2 != param_1)" (( "(") (binary_expression "*piVar2 != param_1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (!= "!=") (identifier "param_1")) () ")")) (compound_statement "{\n        if (param_1 < *piVar2) goto LAB_00014890;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_00014890;\n      }" ({ "{") (if_statement "if (param_1 < *piVar2) goto LAB_00014890;" (if "if") (parenthesized_expression "(param_1 < *piVar2)" (( "(") (binary_expression "param_1 < *piVar2" (identifier "param_1") (< "<") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) () ")")) (goto_statement "goto LAB_00014890;" (goto "goto") (statement_identifier "LAB_00014890") (; ";"))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" (identifier "piVar2") (= "=") (binary_expression "piVar2 + 4" (identifier "piVar2") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (iVar3 == local_24) goto LAB_00014890;" (if "if") (parenthesized_expression "(iVar3 == local_24)" (( "(") (binary_expression "iVar3 == local_24" (identifier "iVar3") (== "==") (identifier "local_24")) () ")")) (goto_statement "goto LAB_00014890;" (goto "goto") (statement_identifier "LAB_00014890") (; ";"))) (} "}"))) (if_statement "if (piVar2[1] == param_2) goto LAB_00014848;" (if "if") (parenthesized_expression "(piVar2[1] == param_2)" (( "(") (binary_expression "piVar2[1] == param_2" (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "param_2")) () ")")) (goto_statement "goto LAB_00014848;" (goto "goto") (statement_identifier "LAB_00014848") (; ";"))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" (identifier "piVar2") (= "=") (binary_expression "piVar2 + 4" (identifier "piVar2") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != local_24)" (( "(") (binary_expression "iVar3 != local_24" (identifier "iVar3") (!= "!=") (identifier "local_24")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00014890:\n  if (((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))) {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" (statement_identifier "LAB_00014890") (: ":") (if_statement "if (((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))) {\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" (if "if") (parenthesized_expression "(((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24))))" (( "(") (binary_expression "((param_3 != 0xd) && (param_4 != '\0')) &&\n     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))" (parenthesized_expression "((param_3 != 0xd) && (param_4 != '\0'))" (( "(") (binary_expression "(param_3 != 0xd) && (param_4 != '\0')" (parenthesized_expression "(param_3 != 0xd)" (( "(") (binary_expression "param_3 != 0xd" (identifier "param_3") (!= "!=") (number_literal "0xd")) () ")")) (&& "&&") (parenthesized_expression "(param_4 != '\0')" (( "(") (binary_expression "param_4 != '\0'" (identifier "param_4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))" (( "(") (parenthesized_expression "(piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24))" (( "(") (comma_expression "piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)" (assignment_expression "piVar2 = (int *)FUN_00014480()" (identifier "piVar2") (= "=") (cast_expression "(int *)FUN_00014480()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00014480()" (identifier "FUN_00014480") (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "piVar2 != (int *)0x0 && (0 < local_24)" (binary_expression "piVar2 != (int *)0x0" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "(0 < local_24)" (( "(") (binary_expression "0 < local_24" (number_literal "0") (< "<") (identifier "local_24")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n    iVar3 = 0;\n    do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);" (do "do") (compound_statement "{\n      if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    }" ({ "{") (if_statement "if (*piVar2 == param_1) {\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }\n      else if (param_1 < *piVar2) break;" (if "if") (parenthesized_expression "(*piVar2 == param_1)" (( "(") (binary_expression "*piVar2 == param_1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n        if (piVar2[1] == param_2) goto LAB_00014848;\n      }" ({ "{") (if_statement "if (piVar2[1] == param_2) goto LAB_00014848;" (if "if") (parenthesized_expression "(piVar2[1] == param_2)" (( "(") (binary_expression "piVar2[1] == param_2" (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "param_2")) () ")")) (goto_statement "goto LAB_00014848;" (goto "goto") (statement_identifier "LAB_00014848") (; ";"))) (} "}")) (else_clause "else if (param_1 < *piVar2) break;" (else "else") (if_statement "if (param_1 < *piVar2) break;" (if "if") (parenthesized_expression "(param_1 < *piVar2)" (( "(") (binary_expression "param_1 < *piVar2" (identifier "param_1") (< "<") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) () ")")) (break_statement "break;" (break "break") (; ";"))))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" (identifier "piVar2") (= "=") (binary_expression "piVar2 + 4" (identifier "piVar2") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != local_24)" (( "(") (binary_expression "iVar3 != local_24" (identifier "iVar3") (!= "!=") (identifier "local_24")) () ")")) (; ";")) (} "}")))) (if_statement "if ((((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24)) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" (if "if") (parenthesized_expression "((((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24))" (( "(") (binary_expression "(((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24)" (parenthesized_expression "(((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0))" (( "(") (binary_expression "((param_3 != 8) && (param_5 != '\0')) &&\n      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)" (parenthesized_expression "((param_3 != 8) && (param_5 != '\0'))" (( "(") (binary_expression "(param_3 != 8) && (param_5 != '\0')" (parenthesized_expression "(param_3 != 8)" (( "(") (binary_expression "param_3 != 8" (identifier "param_3") (!= "!=") (number_literal "8")) () ")")) (&& "&&") (parenthesized_expression "(param_5 != '\0')" (( "(") (binary_expression "param_5 != '\0'" (identifier "param_5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)" (( "(") (comma_expression "piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0" (assignment_expression "piVar2 = (int *)FUN_00014480()" (identifier "piVar2") (= "=") (cast_expression "(int *)FUN_00014480()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00014480()" (identifier "FUN_00014480") (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "piVar2 != (int *)0x0" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(0 < local_24)" (( "(") (binary_expression "0 < local_24" (number_literal "0") (< "<") (identifier "local_24")) () ")"))) () ")")) (compound_statement "{\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);\n  }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (iVar3 != local_24);" (do "do") (compound_statement "{\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    }" ({ "{") (while_statement "while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }" (while "while") (parenthesized_expression "(*piVar2 != param_1)" (( "(") (binary_expression "*piVar2 != param_1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (!= "!=") (identifier "param_1")) () ")")) (compound_statement "{\n        if (param_1 < *piVar2) goto LAB_000148f8;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (iVar3 == local_24) goto LAB_000148f8;\n      }" ({ "{") (if_statement "if (param_1 < *piVar2) goto LAB_000148f8;" (if "if") (parenthesized_expression "(param_1 < *piVar2)" (( "(") (binary_expression "param_1 < *piVar2" (identifier "param_1") (< "<") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) () ")")) (goto_statement "goto LAB_000148f8;" (goto "goto") (statement_identifier "LAB_000148f8") (; ";"))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" (identifier "piVar2") (= "=") (binary_expression "piVar2 + 4" (identifier "piVar2") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (iVar3 == local_24) goto LAB_000148f8;" (if "if") (parenthesized_expression "(iVar3 == local_24)" (( "(") (binary_expression "iVar3 == local_24" (identifier "iVar3") (== "==") (identifier "local_24")) () ")")) (goto_statement "goto LAB_000148f8;" (goto "goto") (statement_identifier "LAB_000148f8") (; ";"))) (} "}"))) (if_statement "if (piVar2[1] == param_2) goto LAB_00014848;" (if "if") (parenthesized_expression "(piVar2[1] == param_2)" (( "(") (binary_expression "piVar2[1] == param_2" (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "param_2")) () ")")) (goto_statement "goto LAB_00014848;" (goto "goto") (statement_identifier "LAB_00014848") (; ";"))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" (identifier "piVar2") (= "=") (binary_expression "piVar2 + 4" (identifier "piVar2") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != local_24)" (( "(") (binary_expression "iVar3 != local_24" (identifier "iVar3") (!= "!=") (identifier "local_24")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_000148f8:\n  piVar2 = (int *)FUN_00014480();" (statement_identifier "LAB_000148f8") (: ":") (expression_statement "piVar2 = (int *)FUN_00014480();" (assignment_expression "piVar2 = (int *)FUN_00014480()" (identifier "piVar2") (= "=") (cast_expression "(int *)FUN_00014480()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00014480()" (identifier "FUN_00014480") (argument_list "()" (( "(") () ")"))))) (; ";"))) (if_statement "if (0 < local_24) {\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (local_24 != iVar3);\n  }" (if "if") (parenthesized_expression "(0 < local_24)" (( "(") (binary_expression "0 < local_24" (number_literal "0") (< "<") (identifier "local_24")) () ")")) (compound_statement "{\n    iVar3 = 0;\n    do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (local_24 != iVar3);\n  }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    } while (local_24 != iVar3);" (do "do") (compound_statement "{\n      while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }\n      if (piVar2[1] == param_2) goto LAB_00014848;\n      iVar3 = iVar3 + 1;\n      piVar2 = piVar2 + 4;\n    }" ({ "{") (while_statement "while (*piVar2 != param_1) {\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }" (while "while") (parenthesized_expression "(*piVar2 != param_1)" (( "(") (binary_expression "*piVar2 != param_1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (!= "!=") (identifier "param_1")) () ")")) (compound_statement "{\n        if (param_1 < *piVar2) goto LAB_00014938;\n        iVar3 = iVar3 + 1;\n        piVar2 = piVar2 + 4;\n        if (local_24 == iVar3) goto LAB_00014938;\n      }" ({ "{") (if_statement "if (param_1 < *piVar2) goto LAB_00014938;" (if "if") (parenthesized_expression "(param_1 < *piVar2)" (( "(") (binary_expression "param_1 < *piVar2" (identifier "param_1") (< "<") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) () ")")) (goto_statement "goto LAB_00014938;" (goto "goto") (statement_identifier "LAB_00014938") (; ";"))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" (identifier "piVar2") (= "=") (binary_expression "piVar2 + 4" (identifier "piVar2") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (local_24 == iVar3) goto LAB_00014938;" (if "if") (parenthesized_expression "(local_24 == iVar3)" (( "(") (binary_expression "local_24 == iVar3" (identifier "local_24") (== "==") (identifier "iVar3")) () ")")) (goto_statement "goto LAB_00014938;" (goto "goto") (statement_identifier "LAB_00014938") (; ";"))) (} "}"))) (if_statement "if (piVar2[1] == param_2) goto LAB_00014848;" (if "if") (parenthesized_expression "(piVar2[1] == param_2)" (( "(") (binary_expression "piVar2[1] == param_2" (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "param_2")) () ")")) (goto_statement "goto LAB_00014848;" (goto "goto") (statement_identifier "LAB_00014848") (; ";"))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" (identifier "piVar2") (= "=") (binary_expression "piVar2 + 4" (identifier "piVar2") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_24 != iVar3)" (( "(") (binary_expression "local_24 != iVar3" (identifier "local_24") (!= "!=") (identifier "iVar3")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00014938:\n  iVar3 = 0;" (statement_identifier "LAB_00014938") (: ":") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_0001493a:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00014ea0();\n  }" (statement_identifier "LAB_0001493a") (: ":") (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00014ea0();\n  }" (if "if") (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "iVar1 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "iVar1") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_00014ea0();\n  }" ({ "{") (expression_statement "FUN_00014ea0();" (call_expression "FUN_00014ea0()" (identifier "FUN_00014ea0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (labeled_statement "LAB_00014848:\n  iVar3 = piVar2[3];" (statement_identifier "LAB_00014848") (: ":") (expression_statement "iVar3 = piVar2[3];" (assignment_expression "iVar3 = piVar2[3]" (identifier "iVar3") (= "=") (subscript_expression "piVar2[3]" (identifier "piVar2") ([ "[") (number_literal "3") (] "]"))) (; ";"))) (goto_statement "goto LAB_0001493a;" (goto "goto") (statement_identifier "LAB_0001493a") (; ";")) (} "}")))

char * __regparm3
function_1(int var_6,int var_7,int var_10,type_1 encserv,type_1 mchngr,
                   int var_2)

{
  type_2 *var_4;
  char *pcVar2;
  int var_8;
  int var_1;
  int var_5;
  int var_11;
  
  var_11 = *(int *)(var_1 + 0x14);
  if (((var_2 != -1) &&
      (var_4 = var_3(var_2,&var_5), var_4 != (type_2 *)0x0)) &&
     (0 < var_5)) {
    var_8 = 0;
    do {
      if (var_4->page_code == var_6) {
        if (var_4->subpage_code == var_7) goto LAB_00014848;
      }
      else if (var_6 < var_4->page_code) break;
      var_8 = var_8 + 1;
      var_4 = var_4 + 1;
    } while (var_8 != var_5);
  }
  var_4 = var_9(var_10,&var_5);
  if ((var_4 != (type_2 *)0x0) && (0 < var_5)) {
    var_8 = 0;
    do {
      while (var_4->page_code != var_6) {
        if (var_6 < var_4->page_code) goto LAB_00014890;
        var_8 = var_8 + 1;
        var_4 = var_4 + 1;
        if (var_8 == var_5) goto LAB_00014890;
      }
      if (var_4->subpage_code == var_7) goto LAB_00014848;
      var_8 = var_8 + 1;
      var_4 = var_4 + 1;
    } while (var_8 != var_5);
  }
LAB_00014890:
  if (((var_10 != 0xd) && (encserv)) &&
     ((var_4 = var_9(0xd,&var_5), var_4 != (type_2 *)0x0 && (0 < var_5)))) {
    var_8 = 0;
    do {
      if (var_4->page_code == var_6) {
        if (var_4->subpage_code == var_7) goto LAB_00014848;
      }
      else if (var_6 < var_4->page_code) break;
      var_8 = var_8 + 1;
      var_4 = var_4 + 1;
    } while (var_8 != var_5);
  }
  if ((((var_10 != 8) && (mchngr)) &&
      (var_4 = var_9(8,&var_5), var_4 != (type_2 *)0x0)) && (0 < var_5)) {
    var_8 = 0;
    do {
      while (var_4->page_code != var_6) {
        if (var_6 < var_4->page_code) goto LAB_000148f8;
        var_8 = var_8 + 1;
        var_4 = var_4 + 1;
        if (var_8 == var_5) goto LAB_000148f8;
      }
      if (var_4->subpage_code == var_7) goto LAB_00014848;
      var_8 = var_8 + 1;
      var_4 = var_4 + 1;
    } while (var_8 != var_5);
  }
LAB_000148f8:
  var_4 = var_9(-1,&var_5);
  if (0 < var_5) {
    var_8 = 0;
    do {
      while (var_4->page_code != var_6) {
        if (var_6 < var_4->page_code) goto LAB_00014938;
        var_8 = var_8 + 1;
        var_4 = var_4 + 1;
        if (var_5 == var_8) goto LAB_00014938;
      }
      if (var_4->subpage_code == var_7) goto LAB_00014848;
      var_8 = var_8 + 1;
      var_4 = var_4 + 1;
    } while (var_5 != var_8);
  }
LAB_00014938:
  pcVar2 = (char *)0x0;
LAB_0001493a:
  if (var_11 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_12();
  }
  return pcVar2;
LAB_00014848:
  pcVar2 = var_4->desc;
  goto LAB_0001493a;
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (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: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list)))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (break_statement)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) 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: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) 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: (identifier)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list)))) right: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (break_statement)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) 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: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list)))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) 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: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) 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: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (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))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (return_statement (identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier)))))

int __regparm3
MASKED(int param_1,int param_2,int param_3,char param_4,char param_5,int param_6)

{
  int iVar1;
  int *piVar2;
  int iVar3;
  int in_GS_OFFSET;
  int local_24;
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  if (((param_6 != -1) && (piVar2 = (int *)FUN_000146c0(), piVar2 != (int *)0x0)) && (0 < local_24))
  {
    iVar3 = 0;
    do {
      if (*piVar2 == param_1) {
        if (piVar2[1] == param_2) goto LAB_00014848;
      }
      else if (param_1 < *piVar2) break;
      iVar3 = iVar3 + 1;
      piVar2 = piVar2 + 4;
    } while (iVar3 != local_24);
  }
  piVar2 = (int *)FUN_00014480();
  if ((piVar2 != (int *)0x0) && (0 < local_24)) {
    iVar3 = 0;
    do {
      while (*piVar2 != param_1) {
        if (param_1 < *piVar2) goto LAB_00014890;
        iVar3 = iVar3 + 1;
        piVar2 = piVar2 + 4;
        if (iVar3 == local_24) goto LAB_00014890;
      }
      if (piVar2[1] == param_2) goto LAB_00014848;
      iVar3 = iVar3 + 1;
      piVar2 = piVar2 + 4;
    } while (iVar3 != local_24);
  }
LAB_00014890:
  if (((param_3 != 0xd) && (param_4 != '\0')) &&
     ((piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0 && (0 < local_24)))) {
    iVar3 = 0;
    do {
      if (*piVar2 == param_1) {
        if (piVar2[1] == param_2) goto LAB_00014848;
      }
      else if (param_1 < *piVar2) break;
      iVar3 = iVar3 + 1;
      piVar2 = piVar2 + 4;
    } while (iVar3 != local_24);
  }
  if ((((param_3 != 8) && (param_5 != '\0')) &&
      (piVar2 = (int *)FUN_00014480(), piVar2 != (int *)0x0)) && (0 < local_24)) {
    iVar3 = 0;
    do {
      while (*piVar2 != param_1) {
        if (param_1 < *piVar2) goto LAB_000148f8;
        iVar3 = iVar3 + 1;
        piVar2 = piVar2 + 4;
        if (iVar3 == local_24) goto LAB_000148f8;
      }
      if (piVar2[1] == param_2) goto LAB_00014848;
      iVar3 = iVar3 + 1;
      piVar2 = piVar2 + 4;
    } while (iVar3 != local_24);
  }
LAB_000148f8:
  piVar2 = (int *)FUN_00014480();
  if (0 < local_24) {
    iVar3 = 0;
    do {
      while (*piVar2 != param_1) {
        if (param_1 < *piVar2) goto LAB_00014938;
        iVar3 = iVar3 + 1;
        piVar2 = piVar2 + 4;
        if (local_24 == iVar3) goto LAB_00014938;
      }
      if (piVar2[1] == param_2) goto LAB_00014848;
      iVar3 = iVar3 + 1;
      piVar2 = piVar2 + 4;
    } while (local_24 != iVar3);
  }
LAB_00014938:
  iVar3 = 0;
LAB_0001493a:
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00014ea0();
  }
  return iVar3;
LAB_00014848:
  iVar3 = piVar2[3];
  goto LAB_0001493a;
}

