
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void md_begin(void)

{
  byte bVar1;
  char cVar2;
  ushort uVar3;
  undefined4 uVar4;
  undefined *puVar5;
  undefined *puVar6;
  char cVar7;
  undefined4 *puVar8;
  int iVar9;
  char *pcVar10;
  char *pcVar11;
  int *piVar12;
  
  lex_type[0x7b] = 2;
  op_hash = hash_new();
  puVar8 = (undefined4 *)xmalloc(8);
  piVar12 = (int *)PTR_i386_optab_0007ff88;
  *puVar8 = PTR_i386_optab_0007ff88;
  do {
    pcVar10 = (char *)piVar12[0x16];
    pcVar11 = (char *)*piVar12;
    piVar12 = piVar12 + 0x16;
    while ((pcVar10 == (char *)0x0 || (iVar9 = strcmp(pcVar10,pcVar11), iVar9 != 0))) {
      puVar8[1] = piVar12;
      pcVar10 = hash_insert(op_hash,pcVar11,puVar8);
      if (pcVar10 != (char *)0x0) {
        iVar9 = piVar12[-0x16];
        pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);
                    /* WARNING: Subroutine does not return */
        as_fatal(pcVar11,iVar9,pcVar10);
      }
      if (*piVar12 == 0) {
        reg_hash = hash_new();
        iVar9 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;
        puVar8 = (undefined4 *)PTR_i386_regtab_0007ff5c;
        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {
          do {
            pcVar10 = hash_insert(reg_hash,(char *)*puVar8,puVar8);
            if (pcVar10 != (char *)0x0) {
              uVar4 = *puVar8;
              pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);
                    /* WARNING: Subroutine does not return */
              as_fatal(pcVar11,uVar4,pcVar10);
            }
            iVar9 = iVar9 + -1;
            puVar8 = puVar8 + 4;
          } while (iVar9 != -1);
        }
        puVar6 = PTR__sch_tolower_0007ffd0;
        puVar5 = PTR__sch_istable_0007ff74;
        iVar9 = 0;
        do {
          uVar3 = *(ushort *)(puVar5 + iVar9 * 2);
          cVar7 = (char)iVar9;
          if ((uVar3 & 4) == 0) {
            if ((uVar3 & 8) == 0) {
              if ((uVar3 & 0x80) == 0) {
                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {
                  mnemonic_chars[iVar9] = cVar7;
                  operand_chars[iVar9] = cVar7;
                }
              }
              else {
                cVar2 = puVar6[iVar9];
                operand_chars[iVar9] = cVar7;
                mnemonic_chars[iVar9] = cVar2;
                register_chars[iVar9] = cVar2;
              }
            }
            else {
              mnemonic_chars[iVar9] = cVar7;
              register_chars[iVar9] = cVar7;
              operand_chars[iVar9] = cVar7;
            }
          }
          else {
            digit_chars[iVar9] = cVar7;
            mnemonic_chars[iVar9] = cVar7;
            register_chars[iVar9] = cVar7;
            operand_chars[iVar9] = cVar7;
          }
          if ((uVar3 & 0x8c) == 0) {
            if (0x7f < iVar9) {
              identifier_chars[iVar9] = cVar7;
              operand_chars[iVar9] = cVar7;
            }
          }
          else {
            identifier_chars[iVar9] = cVar7;
          }
          iVar9 = iVar9 + 1;
        } while (iVar9 != 0x100);
        digit_chars[0x2d] = '-';
        pcVar10 = operand_special_chars;
        mnemonic_chars[0x2d] = '-';
        mnemonic_chars[0x2e] = '.';
        mnemonic_chars[0x5f] = '_';
        identifier_chars[0x5f] = '_';
        identifier_chars[0x2e] = '.';
        bVar1 = operand_special_chars[0];
        while (bVar1 != 0) {
          pcVar10 = (char *)((byte *)pcVar10 + 1);
          operand_chars[bVar1] = bVar1;
          bVar1 = *pcVar10;
        }
        if (flag_code == CODE_64BIT) {
          x86_dwarf2_return_column = 0x10;
          x86_cie_data_alignment = -8;
          return;
        }
        x86_dwarf2_return_column = 8;
        x86_cie_data_alignment = -4;
        return;
      }
      puVar8 = (undefined4 *)xmalloc(8);
      *puVar8 = piVar12;
      pcVar11 = (char *)*piVar12;
      pcVar10 = (char *)piVar12[0x16];
      piVar12 = piVar12 + 0x16;
    }
  } while( true );
}



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

void FUN_0004e400(void)

{
  byte bVar1;
  undefined1 uVar2;
  ushort uVar3;
  char *__s1;
  char *__s2;
  undefined *puVar4;
  undefined *puVar5;
  undefined1 uVar6;
  undefined4 *puVar7;
  int iVar8;
  int iVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  byte *pbVar12;
  int *piVar13;
  
  DAT_0008043b = 2;
  DAT_00088e84 = FUN_00025210();
  puVar7 = (undefined4 *)xmalloc(8);
  piVar13 = (int *)PTR_i386_optab_0007ff88;
  *puVar7 = PTR_i386_optab_0007ff88;
  do {
    __s1 = (char *)piVar13[0x16];
    __s2 = (char *)*piVar13;
    piVar13 = piVar13 + 0x16;
    while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {
      puVar7[1] = piVar13;
      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);
      if (iVar8 != 0) {
        iVar9 = piVar13[-0x16];
        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);
                    /* WARNING: Subroutine does not return */
        FUN_0002be00(uVar11,iVar9,iVar8);
      }
      if (*piVar13 == 0) {
        DAT_00088e80 = FUN_00025210();
        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;
        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;
        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {
          do {
            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);
            if (iVar9 != 0) {
              uVar11 = *puVar7;
              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);
                    /* WARNING: Subroutine does not return */
              FUN_0002be00(uVar10,uVar11,iVar9);
            }
            iVar8 = iVar8 + -1;
            puVar7 = puVar7 + 4;
          } while (iVar8 != -1);
        }
        puVar5 = PTR__sch_tolower_0007ffd0;
        puVar4 = PTR__sch_istable_0007ff74;
        iVar8 = 0;
        do {
          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);
          uVar6 = (undefined1)iVar8;
          if ((uVar3 & 4) == 0) {
            if ((uVar3 & 8) == 0) {
              if ((uVar3 & 0x80) == 0) {
                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {
                  (&DAT_00089520)[iVar8] = uVar6;
                  (&DAT_00089320)[iVar8] = uVar6;
                }
              }
              else {
                uVar2 = puVar5[iVar8];
                (&DAT_00089320)[iVar8] = uVar6;
                (&DAT_00089520)[iVar8] = uVar2;
                (&DAT_00089420)[iVar8] = uVar2;
              }
            }
            else {
              (&DAT_00089520)[iVar8] = uVar6;
              (&DAT_00089420)[iVar8] = uVar6;
              (&DAT_00089320)[iVar8] = uVar6;
            }
          }
          else {
            (&DAT_00089120)[iVar8] = uVar6;
            (&DAT_00089520)[iVar8] = uVar6;
            (&DAT_00089420)[iVar8] = uVar6;
            (&DAT_00089320)[iVar8] = uVar6;
          }
          if ((uVar3 & 0x8c) == 0) {
            if (0x7f < iVar8) {
              (&DAT_00089220)[iVar8] = uVar6;
              (&DAT_00089320)[iVar8] = uVar6;
            }
          }
          else {
            (&DAT_00089220)[iVar8] = uVar6;
          }
          iVar8 = iVar8 + 1;
        } while (iVar8 != 0x100);
        DAT_0008914d = 0x2d;
        pbVar12 = &DAT_0008055c;
        DAT_0008954d = 0x2e2d;
        DAT_0008957f = 0x5f;
        DAT_0008927f = 0x5f;
        DAT_0008924e = 0x2e;
        bVar1 = DAT_0008055c;
        while (bVar1 != 0) {
          pbVar12 = pbVar12 + 1;
          (&DAT_00089320)[bVar1] = bVar1;
          bVar1 = *pbVar12;
        }
        if (DAT_00088f0c == 2) {
          DAT_00089af0 = 0x10;
          DAT_00089b04 = 0xfffffff8;
          return;
        }
        DAT_00089af0 = 8;
        DAT_00089b04 = 0xfffffffc;
        return;
      }
      puVar7 = (undefined4 *)xmalloc(8);
      *puVar7 = piVar13;
      __s2 = (char *)*piVar13;
      __s1 = (char *)piVar13[0x16];
      piVar13 = piVar13 + 0x16;
    }
  } while( true );
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016000
ADD EBX,0x31bf7
SUB ESP,0xc
LEA EAX,[EBX + 0x3c0]
MOV byte ptr [EAX + 0x7b],0x2
CALL 0x00025210
SUB ESP,0xc
PUSH 0x8
MOV dword ptr [EBX + 0x8e84],EAX
CALL 0x00014790
MOV ESI,dword ptr [EBX + 0xffffff88]
ADD ESP,0x10
MOV EDI,EAX
MOV dword ptr [EAX],ESI
NOP
ADD ESI,0x58
MOV EAX,dword ptr [ESI]
MOV EBP,dword ptr [ESI + -0x58]
TEST EAX,EAX
JZ 0x0004e45d
SUB ESP,0x8
PUSH EBP
PUSH EAX
CALL 0x00014090
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004e440
SUB ESP,0x4
MOV dword ptr [EDI + 0x4],ESI
PUSH EDI
PUSH EBP
PUSH dword ptr [EBX + 0x8e84]
CALL 0x00025260
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JNZ 0x0004e697
MOV EDX,dword ptr [ESI]
TEST EDX,EDX
JZ 0x0004e4a8
SUB ESP,0xc
PUSH 0x8
CALL 0x00014790
ADD ESP,0x10
MOV dword ptr [EAX],ESI
ADD ESI,0x58
MOV EDI,EAX
MOV EBP,dword ptr [ESI + -0x58]
MOV EAX,dword ptr [ESI]
TEST EAX,EAX
JNZ 0x0004e44c
JMP 0x0004e45d
CALL 0x00025210
MOV EDX,dword ptr [EBX + 0xffffff4c]
MOV dword ptr [EBX + 0x8e80],EAX
MOV EDX,dword ptr [EDX]
LEA EDI,[EDX + -0x1]
TEST EDX,EDX
JZ 0x0004e4fa
MOV ESI,dword ptr [EBX + 0xffffff5c]
JMP 0x0004e4d6
MOV EAX,dword ptr [EBX + 0x8e80]
SUB ESP,0x4
PUSH ESI
PUSH dword ptr [ESI]
PUSH EAX
CALL 0x00025260
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JNZ 0x0004e677
SUB EDI,0x1
ADD ESI,0x10
CMP EDI,-0x1
JNZ 0x0004e4d0
XOR EAX,EAX
MOV EBP,dword ptr [EBX + 0xffffff74]
MOV EDI,dword ptr [EBX + 0xffffffd0]
JMP 0x0004e521
MOV byte ptr [EAX + EBX*0x1 + 0x9220],AL
ADD EAX,0x1
CMP EAX,0x100
JZ 0x0004e570
MOVZX EDX,word ptr [EBP + EAX*0x2]
TEST DL,0x4
JZ 0x0004e5f0
MOV byte ptr [EAX + EBX*0x1 + 0x9120],AL
MOV byte ptr [EAX + EBX*0x1 + 0x9520],AL
MOV byte ptr [EAX + EBX*0x1 + 0x9420],AL
MOV byte ptr [EAX + EBX*0x1 + 0x9320],AL
AND EDX,0x8c
JNZ 0x0004e510
CMP EAX,0x7f
JLE 0x0004e517
MOV byte ptr [EAX + EBX*0x1 + 0x9220],AL
MOV byte ptr [EAX + EBX*0x1 + 0x9320],AL
ADD EAX,0x1
CMP EAX,0x100
JNZ 0x0004e521
MOV EAX,0x2e2d
MOV byte ptr [EBX + 0x914d],0x2d
LEA EDX,[EBX + 0x55c]
LEA ESI,[EBX + 0x9320]
MOV word ptr [EBX + 0x954d],AX
MOVZX EAX,byte ptr [EBX + 0x55c]
MOV byte ptr [EBX + 0x957f],0x5f
MOV byte ptr [EBX + 0x927f],0x5f
MOV byte ptr [EBX + 0x924e],0x2e
TEST AL,AL
JZ 0x0004e5c0
NOP
MOVZX ECX,AL
ADD EDX,0x1
MOV byte ptr [ESI + ECX*0x1],AL
MOVZX EAX,byte ptr [EDX]
TEST AL,AL
JNZ 0x0004e5b0
CMP dword ptr [EBX + 0x8f0c],0x2
JZ 0x0004e657
LEA EAX,[EBX + 0x9af0]
MOV dword ptr [EAX],0x8
LEA EAX,[EBX + 0x9b04]
MOV dword ptr [EAX],0xfffffffc
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST DL,0x8
JZ 0x0004e610
MOV byte ptr [EAX + EBX*0x1 + 0x9520],AL
MOV byte ptr [EAX + EBX*0x1 + 0x9420],AL
MOV byte ptr [EAX + EBX*0x1 + 0x9320],AL
JMP 0x0004e54b
TEST DL,0x80
JZ 0x0004e638
MOVZX ESI,byte ptr [EAX + EDI*0x1]
MOV byte ptr [EAX + EBX*0x1 + 0x9320],AL
MOV ECX,ESI
MOV byte ptr [EAX + EBX*0x1 + 0x9520],CL
MOV byte ptr [EAX + EBX*0x1 + 0x9420],CL
JMP 0x0004e54b
LEA ESI,[EAX + -0x7b]
AND ESI,0xfffffffd
JNZ 0x0004e54b
MOV byte ptr [EAX + EBX*0x1 + 0x9520],AL
MOV byte ptr [EAX + EBX*0x1 + 0x9320],AL
JMP 0x0004e54b
LEA EAX,[EBX + 0x9af0]
MOV dword ptr [EAX],0x10
LEA EAX,[EBX + 0x9b04]
MOV dword ptr [EAX],0xfffffff8
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe3fbf]
MOV ESI,dword ptr [ESI]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
ADD ESP,0xc
PUSH EBP
PUSH ESI
PUSH EAX
CALL 0x0002be00
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe3fbf]
MOV ESI,dword ptr [ESI + -0x58]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
ADD ESP,0xc
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x0002be00
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0004e400(void)\n\n{\n  byte bVar1;\n  undefined1 uVar2;\n  ushort uVar3;\n  char *__s1;\n  char *__s2;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined1 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  int *piVar13;\n  \n  DAT_0008043b = 2;\n  DAT_00088e84 = FUN_00025210();\n  puVar7 = (undefined4 *)xmalloc(8);\n  piVar13 = (int *)PTR_i386_optab_0007ff88;\n  *puVar7 = PTR_i386_optab_0007ff88;\n  do {\n    __s1 = (char *)piVar13[0x16];\n    __s2 = (char *)*piVar13;\n    piVar13 = piVar13 + 0x16;\n    while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }\n  } while( true );\n}\n\n" comment (function_definition "void FUN_0004e400(void)\n\n{\n  byte bVar1;\n  undefined1 uVar2;\n  ushort uVar3;\n  char *__s1;\n  char *__s2;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined1 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  int *piVar13;\n  \n  DAT_0008043b = 2;\n  DAT_00088e84 = FUN_00025210();\n  puVar7 = (undefined4 *)xmalloc(8);\n  piVar13 = (int *)PTR_i386_optab_0007ff88;\n  *puVar7 = PTR_i386_optab_0007ff88;\n  do {\n    __s1 = (char *)piVar13[0x16];\n    __s2 = (char *)*piVar13;\n    piVar13 = piVar13 + 0x16;\n    while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_0004e400(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  undefined1 uVar2;\n  ushort uVar3;\n  char *__s1;\n  char *__s2;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined1 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  int *piVar13;\n  \n  DAT_0008043b = 2;\n  DAT_00088e84 = FUN_00025210();\n  puVar7 = (undefined4 *)xmalloc(8);\n  piVar13 = (int *)PTR_i386_optab_0007ff88;\n  *puVar7 = PTR_i386_optab_0007ff88;\n  do {\n    __s1 = (char *)piVar13[0x16];\n    __s2 = (char *)*piVar13;\n    piVar13 = piVar13 + 0x16;\n    while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }\n  } while( true );\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "char *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined1 uVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (expression_statement "DAT_0008043b = 2;" (assignment_expression "DAT_0008043b = 2" identifier = number_literal) ;) (expression_statement "DAT_00088e84 = FUN_00025210();" (assignment_expression "DAT_00088e84 = FUN_00025210()" identifier = (call_expression "FUN_00025210()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar7 = (undefined4 *)xmalloc(8);" (assignment_expression "puVar7 = (undefined4 *)xmalloc(8)" identifier = (cast_expression "(undefined4 *)xmalloc(8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(8)" identifier (argument_list "(8)" ( number_literal ))))) ;) (expression_statement "piVar13 = (int *)PTR_i386_optab_0007ff88;" (assignment_expression "piVar13 = (int *)PTR_i386_optab_0007ff88" identifier = (cast_expression "(int *)PTR_i386_optab_0007ff88" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*puVar7 = PTR_i386_optab_0007ff88;" (assignment_expression "*puVar7 = PTR_i386_optab_0007ff88" (pointer_expression "*puVar7" * identifier) = identifier) ;) (do_statement "do {\n    __s1 = (char *)piVar13[0x16];\n    __s2 = (char *)*piVar13;\n    piVar13 = piVar13 + 0x16;\n    while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }\n  } while( true );" do (compound_statement "{\n    __s1 = (char *)piVar13[0x16];\n    __s2 = (char *)*piVar13;\n    piVar13 = piVar13 + 0x16;\n    while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }\n  }" { (expression_statement "__s1 = (char *)piVar13[0x16];" (assignment_expression "__s1 = (char *)piVar13[0x16]" identifier = (cast_expression "(char *)piVar13[0x16]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[0x16]" identifier [ number_literal ]))) ;) (expression_statement "__s2 = (char *)*piVar13;" (assignment_expression "__s2 = (char *)*piVar13" identifier = (cast_expression "(char *)*piVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) (expression_statement "piVar13 = piVar13 + 0x16;" (assignment_expression "piVar13 = piVar13 + 0x16" identifier = (binary_expression "piVar13 + 0x16" identifier + number_literal)) ;) (while_statement "while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }" while (parenthesized_expression "((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0)))" ( (parenthesized_expression "(__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))" ( (binary_expression "__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0)" (binary_expression "__s1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar8 = strcmp(__s1,__s2), iVar8 != 0)" ( (comma_expression "iVar8 = strcmp(__s1,__s2), iVar8 != 0" (assignment_expression "iVar8 = strcmp(__s1,__s2)" identifier = (call_expression "strcmp(__s1,__s2)" identifier (argument_list "(__s1,__s2)" ( identifier , identifier )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) )) (compound_statement "{\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }" { (expression_statement "puVar7[1] = piVar13;" (assignment_expression "puVar7[1] = piVar13" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);" (assignment_expression "iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7)" identifier = (call_expression "FUN_00025260(DAT_00088e84,__s2,puVar7)" identifier (argument_list "(DAT_00088e84,__s2,puVar7)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }" { (expression_statement "iVar9 = piVar13[-0x16];" (assignment_expression "iVar9 = piVar13[-0x16]" identifier = (subscript_expression "piVar13[-0x16]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = dcgettext(0,"can\'t hash %s: %s",5);" (assignment_expression "uVar11 = dcgettext(0,"can\'t hash %s: %s",5)" identifier = (call_expression "dcgettext(0,"can\'t hash %s: %s",5)" identifier (argument_list "(0,"can\'t hash %s: %s",5)" ( number_literal , (string_literal ""can\'t hash %s: %s"" " string_content escape_sequence string_content ") , number_literal )))) ;) comment (expression_statement "FUN_0002be00(uVar11,iVar9,iVar8);" (call_expression "FUN_0002be00(uVar11,iVar9,iVar8)" identifier (argument_list "(uVar11,iVar9,iVar8)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }" if (parenthesized_expression "(*piVar13 == 0)" ( (binary_expression "*piVar13 == 0" (pointer_expression "*piVar13" * identifier) == number_literal) )) (compound_statement "{\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }" { (expression_statement "DAT_00088e80 = FUN_00025210();" (assignment_expression "DAT_00088e80 = FUN_00025210()" identifier = (call_expression "FUN_00025210()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;" (assignment_expression "iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1" identifier = (binary_expression "*(int *)PTR_i386_regtab_size_0007ff4c + -1" (pointer_expression "*(int *)PTR_i386_regtab_size_0007ff4c" * (cast_expression "(int *)PTR_i386_regtab_size_0007ff4c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) ;) (expression_statement "puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;" (assignment_expression "puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c" identifier = (cast_expression "(undefined4 *)PTR_i386_regtab_0007ff5c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }" if (parenthesized_expression "(*(int *)PTR_i386_regtab_size_0007ff4c != 0)" ( (binary_expression "*(int *)PTR_i386_regtab_size_0007ff4c != 0" (pointer_expression "*(int *)PTR_i386_regtab_size_0007ff4c" * (cast_expression "(int *)PTR_i386_regtab_size_0007ff4c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }" { (do_statement "do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);" do (compound_statement "{\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          }" { (expression_statement "iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);" (assignment_expression "iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7)" identifier = (call_expression "FUN_00025260(DAT_00088e80,*puVar7,puVar7)" identifier (argument_list "(DAT_00088e80,*puVar7,puVar7)" ( identifier , (pointer_expression "*puVar7" * identifier) , identifier )))) ;) (if_statement "if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }" { (expression_statement "uVar11 = *puVar7;" (assignment_expression "uVar11 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "uVar10 = dcgettext(0,"can\'t hash %s: %s",5);" (assignment_expression "uVar10 = dcgettext(0,"can\'t hash %s: %s",5)" identifier = (call_expression "dcgettext(0,"can\'t hash %s: %s",5)" identifier (argument_list "(0,"can\'t hash %s: %s",5)" ( number_literal , (string_literal ""can\'t hash %s: %s"" " string_content escape_sequence string_content ") , number_literal )))) ;) comment (expression_statement "FUN_0002be00(uVar10,uVar11,iVar9);" (call_expression "FUN_0002be00(uVar10,uVar11,iVar9)" identifier (argument_list "(uVar10,uVar11,iVar9)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "puVar7 = puVar7 + 4;" (assignment_expression "puVar7 = puVar7 + 4" identifier = (binary_expression "puVar7 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 != -1)" ( (binary_expression "iVar8 != -1" identifier != number_literal) )) ;) })) (expression_statement "puVar5 = PTR__sch_tolower_0007ffd0;" (assignment_expression "puVar5 = PTR__sch_tolower_0007ffd0" identifier = identifier) ;) (expression_statement "puVar4 = PTR__sch_istable_0007ff74;" (assignment_expression "puVar4 = PTR__sch_istable_0007ff74" identifier = identifier) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);" do (compound_statement "{\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        }" { (expression_statement "uVar3 = *(ushort *)(puVar4 + iVar8 * 2);" (assignment_expression "uVar3 = *(ushort *)(puVar4 + iVar8 * 2)" identifier = (pointer_expression "*(ushort *)(puVar4 + iVar8 * 2)" * (cast_expression "(ushort *)(puVar4 + iVar8 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar8 * 2)" ( (binary_expression "puVar4 + iVar8 * 2" identifier + (binary_expression "iVar8 * 2" identifier * number_literal)) ))))) ;) (expression_statement "uVar6 = (undefined1)iVar8;" (assignment_expression "uVar6 = (undefined1)iVar8" identifier = (cast_expression "(undefined1)iVar8" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }" if (parenthesized_expression "((uVar3 & 4) == 0)" ( (binary_expression "(uVar3 & 4) == 0" (parenthesized_expression "(uVar3 & 4)" ( (binary_expression "uVar3 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }" { (if_statement "if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }" if (parenthesized_expression "((uVar3 & 8) == 0)" ( (binary_expression "(uVar3 & 8) == 0" (parenthesized_expression "(uVar3 & 8)" ( (binary_expression "uVar3 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }" { (if_statement "if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }" if (parenthesized_expression "((uVar3 & 0x80) == 0)" ( (binary_expression "(uVar3 & 0x80) == 0" (parenthesized_expression "(uVar3 & 0x80)" ( (binary_expression "uVar3 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }" { (if_statement "if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }" if (parenthesized_expression "((iVar8 - 0x7bU & 0xfffffffd) == 0)" ( (binary_expression "(iVar8 - 0x7bU & 0xfffffffd) == 0" (parenthesized_expression "(iVar8 - 0x7bU & 0xfffffffd)" ( (binary_expression "iVar8 - 0x7bU & 0xfffffffd" (binary_expression "iVar8 - 0x7bU" identifier - number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }" { (expression_statement "(&DAT_00089520)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089520)[iVar8] = uVar6" (subscript_expression "(&DAT_00089520)[iVar8]" (parenthesized_expression "(&DAT_00089520)" ( (pointer_expression "&DAT_00089520" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089320)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089320)[iVar8] = uVar6" (subscript_expression "(&DAT_00089320)[iVar8]" (parenthesized_expression "(&DAT_00089320)" ( (pointer_expression "&DAT_00089320" & identifier) )) [ identifier ]) = identifier) ;) })) }) (else_clause "else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }" else (compound_statement "{\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }" { (expression_statement "uVar2 = puVar5[iVar8];" (assignment_expression "uVar2 = puVar5[iVar8]" identifier = (subscript_expression "puVar5[iVar8]" identifier [ identifier ])) ;) (expression_statement "(&DAT_00089320)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089320)[iVar8] = uVar6" (subscript_expression "(&DAT_00089320)[iVar8]" (parenthesized_expression "(&DAT_00089320)" ( (pointer_expression "&DAT_00089320" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089520)[iVar8] = uVar2;" (assignment_expression "(&DAT_00089520)[iVar8] = uVar2" (subscript_expression "(&DAT_00089520)[iVar8]" (parenthesized_expression "(&DAT_00089520)" ( (pointer_expression "&DAT_00089520" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089420)[iVar8] = uVar2;" (assignment_expression "(&DAT_00089420)[iVar8] = uVar2" (subscript_expression "(&DAT_00089420)[iVar8]" (parenthesized_expression "(&DAT_00089420)" ( (pointer_expression "&DAT_00089420" & identifier) )) [ identifier ]) = identifier) ;) }))) }) (else_clause "else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }" else (compound_statement "{\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }" { (expression_statement "(&DAT_00089520)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089520)[iVar8] = uVar6" (subscript_expression "(&DAT_00089520)[iVar8]" (parenthesized_expression "(&DAT_00089520)" ( (pointer_expression "&DAT_00089520" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089420)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089420)[iVar8] = uVar6" (subscript_expression "(&DAT_00089420)[iVar8]" (parenthesized_expression "(&DAT_00089420)" ( (pointer_expression "&DAT_00089420" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089320)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089320)[iVar8] = uVar6" (subscript_expression "(&DAT_00089320)[iVar8]" (parenthesized_expression "(&DAT_00089320)" ( (pointer_expression "&DAT_00089320" & identifier) )) [ identifier ]) = identifier) ;) }))) }) (else_clause "else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }" else (compound_statement "{\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }" { (expression_statement "(&DAT_00089120)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089120)[iVar8] = uVar6" (subscript_expression "(&DAT_00089120)[iVar8]" (parenthesized_expression "(&DAT_00089120)" ( (pointer_expression "&DAT_00089120" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089520)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089520)[iVar8] = uVar6" (subscript_expression "(&DAT_00089520)[iVar8]" (parenthesized_expression "(&DAT_00089520)" ( (pointer_expression "&DAT_00089520" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089420)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089420)[iVar8] = uVar6" (subscript_expression "(&DAT_00089420)[iVar8]" (parenthesized_expression "(&DAT_00089420)" ( (pointer_expression "&DAT_00089420" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089320)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089320)[iVar8] = uVar6" (subscript_expression "(&DAT_00089320)[iVar8]" (parenthesized_expression "(&DAT_00089320)" ( (pointer_expression "&DAT_00089320" & identifier) )) [ identifier ]) = identifier) ;) }))) (if_statement "if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }" if (parenthesized_expression "((uVar3 & 0x8c) == 0)" ( (binary_expression "(uVar3 & 0x8c) == 0" (parenthesized_expression "(uVar3 & 0x8c)" ( (binary_expression "uVar3 & 0x8c" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }" { (if_statement "if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }" if (parenthesized_expression "(0x7f < iVar8)" ( (binary_expression "0x7f < iVar8" number_literal < identifier) )) (compound_statement "{\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }" { (expression_statement "(&DAT_00089220)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089220)[iVar8] = uVar6" (subscript_expression "(&DAT_00089220)[iVar8]" (parenthesized_expression "(&DAT_00089220)" ( (pointer_expression "&DAT_00089220" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089320)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089320)[iVar8] = uVar6" (subscript_expression "(&DAT_00089320)[iVar8]" (parenthesized_expression "(&DAT_00089320)" ( (pointer_expression "&DAT_00089320" & identifier) )) [ identifier ]) = identifier) ;) })) }) (else_clause "else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }" else (compound_statement "{\n            (&DAT_00089220)[iVar8] = uVar6;\n          }" { (expression_statement "(&DAT_00089220)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089220)[iVar8] = uVar6" (subscript_expression "(&DAT_00089220)[iVar8]" (parenthesized_expression "(&DAT_00089220)" ( (pointer_expression "&DAT_00089220" & identifier) )) [ identifier ]) = identifier) ;) }))) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 != 0x100)" ( (binary_expression "iVar8 != 0x100" identifier != number_literal) )) ;) (expression_statement "DAT_0008914d = 0x2d;" (assignment_expression "DAT_0008914d = 0x2d" identifier = number_literal) ;) (expression_statement "pbVar12 = &DAT_0008055c;" (assignment_expression "pbVar12 = &DAT_0008055c" identifier = (pointer_expression "&DAT_0008055c" & identifier)) ;) (expression_statement "DAT_0008954d = 0x2e2d;" (assignment_expression "DAT_0008954d = 0x2e2d" identifier = number_literal) ;) (expression_statement "DAT_0008957f = 0x5f;" (assignment_expression "DAT_0008957f = 0x5f" identifier = number_literal) ;) (expression_statement "DAT_0008927f = 0x5f;" (assignment_expression "DAT_0008927f = 0x5f" identifier = number_literal) ;) (expression_statement "DAT_0008924e = 0x2e;" (assignment_expression "DAT_0008924e = 0x2e" identifier = number_literal) ;) (expression_statement "bVar1 = DAT_0008055c;" (assignment_expression "bVar1 = DAT_0008055c" identifier = identifier) ;) (while_statement "while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }" while (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "(&DAT_00089320)[bVar1] = bVar1;" (assignment_expression "(&DAT_00089320)[bVar1] = bVar1" (subscript_expression "(&DAT_00089320)[bVar1]" (parenthesized_expression "(&DAT_00089320)" ( (pointer_expression "&DAT_00089320" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "bVar1 = *pbVar12;" (assignment_expression "bVar1 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) })) (if_statement "if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }" if (parenthesized_expression "(DAT_00088f0c == 2)" ( (binary_expression "DAT_00088f0c == 2" identifier == number_literal) )) (compound_statement "{\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }" { (expression_statement "DAT_00089af0 = 0x10;" (assignment_expression "DAT_00089af0 = 0x10" identifier = number_literal) ;) (expression_statement "DAT_00089b04 = 0xfffffff8;" (assignment_expression "DAT_00089b04 = 0xfffffff8" identifier = number_literal) ;) (return_statement "return;" return ;) })) (expression_statement "DAT_00089af0 = 8;" (assignment_expression "DAT_00089af0 = 8" identifier = number_literal) ;) (expression_statement "DAT_00089b04 = 0xfffffffc;" (assignment_expression "DAT_00089b04 = 0xfffffffc" identifier = number_literal) ;) (return_statement "return;" return ;) })) (expression_statement "puVar7 = (undefined4 *)xmalloc(8);" (assignment_expression "puVar7 = (undefined4 *)xmalloc(8)" identifier = (cast_expression "(undefined4 *)xmalloc(8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(8)" identifier (argument_list "(8)" ( number_literal ))))) ;) (expression_statement "*puVar7 = piVar13;" (assignment_expression "*puVar7 = piVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "__s2 = (char *)*piVar13;" (assignment_expression "__s2 = (char *)*piVar13" identifier = (cast_expression "(char *)*piVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) (expression_statement "__s1 = (char *)piVar13[0x16];" (assignment_expression "__s1 = (char *)piVar13[0x16]" identifier = (cast_expression "(char *)piVar13[0x16]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[0x16]" identifier [ number_literal ]))) ;) (expression_statement "piVar13 = piVar13 + 0x16;" (assignment_expression "piVar13 = piVar13 + 0x16" identifier = (binary_expression "piVar13 + 0x16" identifier + number_literal)) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid md_begin(void)\n\n{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  undefined4 uVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char cVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  char *pcVar10;\n  char *pcVar11;\n  int *piVar12;\n  \n  lex_type[0x7b] = 2;\n  op_hash = hash_new();\n  puVar8 = (undefined4 *)xmalloc(8);\n  piVar12 = (int *)PTR_i386_optab_0007ff88;\n  *puVar8 = PTR_i386_optab_0007ff88;\n  do {\n    pcVar10 = (char *)piVar12[0x16];\n    pcVar11 = (char *)*piVar12;\n    piVar12 = piVar12 + 0x16;\n    while ((pcVar10 == (char *)0x0 || (iVar9 = strcmp(pcVar10,pcVar11), iVar9 != 0))) {\n      puVar8[1] = piVar12;\n      pcVar10 = hash_insert(op_hash,pcVar11,puVar8);\n      if (pcVar10 != (char *)0x0) {\n        iVar9 = piVar12[-0x16];\n        pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        as_fatal(pcVar11,iVar9,pcVar10);\n      }\n      if (*piVar12 == 0) {\n        reg_hash = hash_new();\n        iVar9 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar8 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            pcVar10 = hash_insert(reg_hash,(char *)*puVar8,puVar8);\n            if (pcVar10 != (char *)0x0) {\n              uVar4 = *puVar8;\n              pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar11,uVar4,pcVar10);\n            }\n            iVar9 = iVar9 + -1;\n            puVar8 = puVar8 + 4;\n          } while (iVar9 != -1);\n        }\n        puVar6 = PTR__sch_tolower_0007ffd0;\n        puVar5 = PTR__sch_istable_0007ff74;\n        iVar9 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar5 + iVar9 * 2);\n          cVar7 = (char)iVar9;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }\n              }\n              else {\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }\n            }\n            else {\n              mnemonic_chars[iVar9] = cVar7;\n              register_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            digit_chars[iVar9] = cVar7;\n            mnemonic_chars[iVar9] = cVar7;\n            register_chars[iVar9] = cVar7;\n            operand_chars[iVar9] = cVar7;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar9) {\n              identifier_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            identifier_chars[iVar9] = cVar7;\n          }\n          iVar9 = iVar9 + 1;\n        } while (iVar9 != 0x100);\n        digit_chars[0x2d] = '-';\n        pcVar10 = operand_special_chars;\n        mnemonic_chars[0x2d] = '-';\n        mnemonic_chars[0x2e] = '.';\n        mnemonic_chars[0x5f] = '_';\n        identifier_chars[0x5f] = '_';\n        identifier_chars[0x2e] = '.';\n        bVar1 = operand_special_chars[0];\n        while (bVar1 != 0) {\n          pcVar10 = (char *)((byte *)pcVar10 + 1);\n          operand_chars[bVar1] = bVar1;\n          bVar1 = *pcVar10;\n        }\n        if (flag_code == CODE_64BIT) {\n          x86_dwarf2_return_column = 0x10;\n          x86_cie_data_alignment = -8;\n          return;\n        }\n        x86_dwarf2_return_column = 8;\n        x86_cie_data_alignment = -4;\n        return;\n      }\n      puVar8 = (undefined4 *)xmalloc(8);\n      *puVar8 = piVar12;\n      pcVar11 = (char *)*piVar12;\n      pcVar10 = (char *)piVar12[0x16];\n      piVar12 = piVar12 + 0x16;\n    }\n  } while( true );\n}\n\n" comment comment (function_definition "void md_begin(void)\n\n{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  undefined4 uVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char cVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  char *pcVar10;\n  char *pcVar11;\n  int *piVar12;\n  \n  lex_type[0x7b] = 2;\n  op_hash = hash_new();\n  puVar8 = (undefined4 *)xmalloc(8);\n  piVar12 = (int *)PTR_i386_optab_0007ff88;\n  *puVar8 = PTR_i386_optab_0007ff88;\n  do {\n    pcVar10 = (char *)piVar12[0x16];\n    pcVar11 = (char *)*piVar12;\n    piVar12 = piVar12 + 0x16;\n    while ((pcVar10 == (char *)0x0 || (iVar9 = strcmp(pcVar10,pcVar11), iVar9 != 0))) {\n      puVar8[1] = piVar12;\n      pcVar10 = hash_insert(op_hash,pcVar11,puVar8);\n      if (pcVar10 != (char *)0x0) {\n        iVar9 = piVar12[-0x16];\n        pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        as_fatal(pcVar11,iVar9,pcVar10);\n      }\n      if (*piVar12 == 0) {\n        reg_hash = hash_new();\n        iVar9 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar8 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            pcVar10 = hash_insert(reg_hash,(char *)*puVar8,puVar8);\n            if (pcVar10 != (char *)0x0) {\n              uVar4 = *puVar8;\n              pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar11,uVar4,pcVar10);\n            }\n            iVar9 = iVar9 + -1;\n            puVar8 = puVar8 + 4;\n          } while (iVar9 != -1);\n        }\n        puVar6 = PTR__sch_tolower_0007ffd0;\n        puVar5 = PTR__sch_istable_0007ff74;\n        iVar9 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar5 + iVar9 * 2);\n          cVar7 = (char)iVar9;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }\n              }\n              else {\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }\n            }\n            else {\n              mnemonic_chars[iVar9] = cVar7;\n              register_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            digit_chars[iVar9] = cVar7;\n            mnemonic_chars[iVar9] = cVar7;\n            register_chars[iVar9] = cVar7;\n            operand_chars[iVar9] = cVar7;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar9) {\n              identifier_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            identifier_chars[iVar9] = cVar7;\n          }\n          iVar9 = iVar9 + 1;\n        } while (iVar9 != 0x100);\n        digit_chars[0x2d] = '-';\n        pcVar10 = operand_special_chars;\n        mnemonic_chars[0x2d] = '-';\n        mnemonic_chars[0x2e] = '.';\n        mnemonic_chars[0x5f] = '_';\n        identifier_chars[0x5f] = '_';\n        identifier_chars[0x2e] = '.';\n        bVar1 = operand_special_chars[0];\n        while (bVar1 != 0) {\n          pcVar10 = (char *)((byte *)pcVar10 + 1);\n          operand_chars[bVar1] = bVar1;\n          bVar1 = *pcVar10;\n        }\n        if (flag_code == CODE_64BIT) {\n          x86_dwarf2_return_column = 0x10;\n          x86_cie_data_alignment = -8;\n          return;\n        }\n        x86_dwarf2_return_column = 8;\n        x86_cie_data_alignment = -4;\n        return;\n      }\n      puVar8 = (undefined4 *)xmalloc(8);\n      *puVar8 = piVar12;\n      pcVar11 = (char *)*piVar12;\n      pcVar10 = (char *)piVar12[0x16];\n      piVar12 = piVar12 + 0x16;\n    }\n  } while( true );\n}" primitive_type (function_declarator "md_begin(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  ushort uVar3;\n  undefined4 uVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char cVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  char *pcVar10;\n  char *pcVar11;\n  int *piVar12;\n  \n  lex_type[0x7b] = 2;\n  op_hash = hash_new();\n  puVar8 = (undefined4 *)xmalloc(8);\n  piVar12 = (int *)PTR_i386_optab_0007ff88;\n  *puVar8 = PTR_i386_optab_0007ff88;\n  do {\n    pcVar10 = (char *)piVar12[0x16];\n    pcVar11 = (char *)*piVar12;\n    piVar12 = piVar12 + 0x16;\n    while ((pcVar10 == (char *)0x0 || (iVar9 = strcmp(pcVar10,pcVar11), iVar9 != 0))) {\n      puVar8[1] = piVar12;\n      pcVar10 = hash_insert(op_hash,pcVar11,puVar8);\n      if (pcVar10 != (char *)0x0) {\n        iVar9 = piVar12[-0x16];\n        pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        as_fatal(pcVar11,iVar9,pcVar10);\n      }\n      if (*piVar12 == 0) {\n        reg_hash = hash_new();\n        iVar9 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar8 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            pcVar10 = hash_insert(reg_hash,(char *)*puVar8,puVar8);\n            if (pcVar10 != (char *)0x0) {\n              uVar4 = *puVar8;\n              pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar11,uVar4,pcVar10);\n            }\n            iVar9 = iVar9 + -1;\n            puVar8 = puVar8 + 4;\n          } while (iVar9 != -1);\n        }\n        puVar6 = PTR__sch_tolower_0007ffd0;\n        puVar5 = PTR__sch_istable_0007ff74;\n        iVar9 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar5 + iVar9 * 2);\n          cVar7 = (char)iVar9;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }\n              }\n              else {\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }\n            }\n            else {\n              mnemonic_chars[iVar9] = cVar7;\n              register_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            digit_chars[iVar9] = cVar7;\n            mnemonic_chars[iVar9] = cVar7;\n            register_chars[iVar9] = cVar7;\n            operand_chars[iVar9] = cVar7;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar9) {\n              identifier_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            identifier_chars[iVar9] = cVar7;\n          }\n          iVar9 = iVar9 + 1;\n        } while (iVar9 != 0x100);\n        digit_chars[0x2d] = '-';\n        pcVar10 = operand_special_chars;\n        mnemonic_chars[0x2d] = '-';\n        mnemonic_chars[0x2e] = '.';\n        mnemonic_chars[0x5f] = '_';\n        identifier_chars[0x5f] = '_';\n        identifier_chars[0x2e] = '.';\n        bVar1 = operand_special_chars[0];\n        while (bVar1 != 0) {\n          pcVar10 = (char *)((byte *)pcVar10 + 1);\n          operand_chars[bVar1] = bVar1;\n          bVar1 = *pcVar10;\n        }\n        if (flag_code == CODE_64BIT) {\n          x86_dwarf2_return_column = 0x10;\n          x86_cie_data_alignment = -8;\n          return;\n        }\n        x86_dwarf2_return_column = 8;\n        x86_cie_data_alignment = -4;\n        return;\n      }\n      puVar8 = (undefined4 *)xmalloc(8);\n      *puVar8 = piVar12;\n      pcVar11 = (char *)*piVar12;\n      pcVar10 = (char *)piVar12[0x16];\n      piVar12 = piVar12 + 0x16;\n    }\n  } while( true );\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (expression_statement "lex_type[0x7b] = 2;" (assignment_expression "lex_type[0x7b] = 2" (subscript_expression "lex_type[0x7b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "op_hash = hash_new();" (assignment_expression "op_hash = hash_new()" identifier = (call_expression "hash_new()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar8 = (undefined4 *)xmalloc(8);" (assignment_expression "puVar8 = (undefined4 *)xmalloc(8)" identifier = (cast_expression "(undefined4 *)xmalloc(8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(8)" identifier (argument_list "(8)" ( number_literal ))))) ;) (expression_statement "piVar12 = (int *)PTR_i386_optab_0007ff88;" (assignment_expression "piVar12 = (int *)PTR_i386_optab_0007ff88" identifier = (cast_expression "(int *)PTR_i386_optab_0007ff88" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*puVar8 = PTR_i386_optab_0007ff88;" (assignment_expression "*puVar8 = PTR_i386_optab_0007ff88" (pointer_expression "*puVar8" * identifier) = identifier) ;) (do_statement "do {\n    pcVar10 = (char *)piVar12[0x16];\n    pcVar11 = (char *)*piVar12;\n    piVar12 = piVar12 + 0x16;\n    while ((pcVar10 == (char *)0x0 || (iVar9 = strcmp(pcVar10,pcVar11), iVar9 != 0))) {\n      puVar8[1] = piVar12;\n      pcVar10 = hash_insert(op_hash,pcVar11,puVar8);\n      if (pcVar10 != (char *)0x0) {\n        iVar9 = piVar12[-0x16];\n        pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        as_fatal(pcVar11,iVar9,pcVar10);\n      }\n      if (*piVar12 == 0) {\n        reg_hash = hash_new();\n        iVar9 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar8 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            pcVar10 = hash_insert(reg_hash,(char *)*puVar8,puVar8);\n            if (pcVar10 != (char *)0x0) {\n              uVar4 = *puVar8;\n              pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar11,uVar4,pcVar10);\n            }\n            iVar9 = iVar9 + -1;\n            puVar8 = puVar8 + 4;\n          } while (iVar9 != -1);\n        }\n        puVar6 = PTR__sch_tolower_0007ffd0;\n        puVar5 = PTR__sch_istable_0007ff74;\n        iVar9 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar5 + iVar9 * 2);\n          cVar7 = (char)iVar9;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }\n              }\n              else {\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }\n            }\n            else {\n              mnemonic_chars[iVar9] = cVar7;\n              register_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            digit_chars[iVar9] = cVar7;\n            mnemonic_chars[iVar9] = cVar7;\n            register_chars[iVar9] = cVar7;\n            operand_chars[iVar9] = cVar7;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar9) {\n              identifier_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            identifier_chars[iVar9] = cVar7;\n          }\n          iVar9 = iVar9 + 1;\n        } while (iVar9 != 0x100);\n        digit_chars[0x2d] = '-';\n        pcVar10 = operand_special_chars;\n        mnemonic_chars[0x2d] = '-';\n        mnemonic_chars[0x2e] = '.';\n        mnemonic_chars[0x5f] = '_';\n        identifier_chars[0x5f] = '_';\n        identifier_chars[0x2e] = '.';\n        bVar1 = operand_special_chars[0];\n        while (bVar1 != 0) {\n          pcVar10 = (char *)((byte *)pcVar10 + 1);\n          operand_chars[bVar1] = bVar1;\n          bVar1 = *pcVar10;\n        }\n        if (flag_code == CODE_64BIT) {\n          x86_dwarf2_return_column = 0x10;\n          x86_cie_data_alignment = -8;\n          return;\n        }\n        x86_dwarf2_return_column = 8;\n        x86_cie_data_alignment = -4;\n        return;\n      }\n      puVar8 = (undefined4 *)xmalloc(8);\n      *puVar8 = piVar12;\n      pcVar11 = (char *)*piVar12;\n      pcVar10 = (char *)piVar12[0x16];\n      piVar12 = piVar12 + 0x16;\n    }\n  } while( true );" do (compound_statement "{\n    pcVar10 = (char *)piVar12[0x16];\n    pcVar11 = (char *)*piVar12;\n    piVar12 = piVar12 + 0x16;\n    while ((pcVar10 == (char *)0x0 || (iVar9 = strcmp(pcVar10,pcVar11), iVar9 != 0))) {\n      puVar8[1] = piVar12;\n      pcVar10 = hash_insert(op_hash,pcVar11,puVar8);\n      if (pcVar10 != (char *)0x0) {\n        iVar9 = piVar12[-0x16];\n        pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        as_fatal(pcVar11,iVar9,pcVar10);\n      }\n      if (*piVar12 == 0) {\n        reg_hash = hash_new();\n        iVar9 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar8 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            pcVar10 = hash_insert(reg_hash,(char *)*puVar8,puVar8);\n            if (pcVar10 != (char *)0x0) {\n              uVar4 = *puVar8;\n              pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar11,uVar4,pcVar10);\n            }\n            iVar9 = iVar9 + -1;\n            puVar8 = puVar8 + 4;\n          } while (iVar9 != -1);\n        }\n        puVar6 = PTR__sch_tolower_0007ffd0;\n        puVar5 = PTR__sch_istable_0007ff74;\n        iVar9 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar5 + iVar9 * 2);\n          cVar7 = (char)iVar9;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }\n              }\n              else {\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }\n            }\n            else {\n              mnemonic_chars[iVar9] = cVar7;\n              register_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            digit_chars[iVar9] = cVar7;\n            mnemonic_chars[iVar9] = cVar7;\n            register_chars[iVar9] = cVar7;\n            operand_chars[iVar9] = cVar7;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar9) {\n              identifier_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            identifier_chars[iVar9] = cVar7;\n          }\n          iVar9 = iVar9 + 1;\n        } while (iVar9 != 0x100);\n        digit_chars[0x2d] = '-';\n        pcVar10 = operand_special_chars;\n        mnemonic_chars[0x2d] = '-';\n        mnemonic_chars[0x2e] = '.';\n        mnemonic_chars[0x5f] = '_';\n        identifier_chars[0x5f] = '_';\n        identifier_chars[0x2e] = '.';\n        bVar1 = operand_special_chars[0];\n        while (bVar1 != 0) {\n          pcVar10 = (char *)((byte *)pcVar10 + 1);\n          operand_chars[bVar1] = bVar1;\n          bVar1 = *pcVar10;\n        }\n        if (flag_code == CODE_64BIT) {\n          x86_dwarf2_return_column = 0x10;\n          x86_cie_data_alignment = -8;\n          return;\n        }\n        x86_dwarf2_return_column = 8;\n        x86_cie_data_alignment = -4;\n        return;\n      }\n      puVar8 = (undefined4 *)xmalloc(8);\n      *puVar8 = piVar12;\n      pcVar11 = (char *)*piVar12;\n      pcVar10 = (char *)piVar12[0x16];\n      piVar12 = piVar12 + 0x16;\n    }\n  }" { (expression_statement "pcVar10 = (char *)piVar12[0x16];" (assignment_expression "pcVar10 = (char *)piVar12[0x16]" identifier = (cast_expression "(char *)piVar12[0x16]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x16]" identifier [ number_literal ]))) ;) (expression_statement "pcVar11 = (char *)*piVar12;" (assignment_expression "pcVar11 = (char *)*piVar12" identifier = (cast_expression "(char *)*piVar12" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (expression_statement "piVar12 = piVar12 + 0x16;" (assignment_expression "piVar12 = piVar12 + 0x16" identifier = (binary_expression "piVar12 + 0x16" identifier + number_literal)) ;) (while_statement "while ((pcVar10 == (char *)0x0 || (iVar9 = strcmp(pcVar10,pcVar11), iVar9 != 0))) {\n      puVar8[1] = piVar12;\n      pcVar10 = hash_insert(op_hash,pcVar11,puVar8);\n      if (pcVar10 != (char *)0x0) {\n        iVar9 = piVar12[-0x16];\n        pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        as_fatal(pcVar11,iVar9,pcVar10);\n      }\n      if (*piVar12 == 0) {\n        reg_hash = hash_new();\n        iVar9 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar8 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            pcVar10 = hash_insert(reg_hash,(char *)*puVar8,puVar8);\n            if (pcVar10 != (char *)0x0) {\n              uVar4 = *puVar8;\n              pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar11,uVar4,pcVar10);\n            }\n            iVar9 = iVar9 + -1;\n            puVar8 = puVar8 + 4;\n          } while (iVar9 != -1);\n        }\n        puVar6 = PTR__sch_tolower_0007ffd0;\n        puVar5 = PTR__sch_istable_0007ff74;\n        iVar9 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar5 + iVar9 * 2);\n          cVar7 = (char)iVar9;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }\n              }\n              else {\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }\n            }\n            else {\n              mnemonic_chars[iVar9] = cVar7;\n              register_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            digit_chars[iVar9] = cVar7;\n            mnemonic_chars[iVar9] = cVar7;\n            register_chars[iVar9] = cVar7;\n            operand_chars[iVar9] = cVar7;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar9) {\n              identifier_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            identifier_chars[iVar9] = cVar7;\n          }\n          iVar9 = iVar9 + 1;\n        } while (iVar9 != 0x100);\n        digit_chars[0x2d] = '-';\n        pcVar10 = operand_special_chars;\n        mnemonic_chars[0x2d] = '-';\n        mnemonic_chars[0x2e] = '.';\n        mnemonic_chars[0x5f] = '_';\n        identifier_chars[0x5f] = '_';\n        identifier_chars[0x2e] = '.';\n        bVar1 = operand_special_chars[0];\n        while (bVar1 != 0) {\n          pcVar10 = (char *)((byte *)pcVar10 + 1);\n          operand_chars[bVar1] = bVar1;\n          bVar1 = *pcVar10;\n        }\n        if (flag_code == CODE_64BIT) {\n          x86_dwarf2_return_column = 0x10;\n          x86_cie_data_alignment = -8;\n          return;\n        }\n        x86_dwarf2_return_column = 8;\n        x86_cie_data_alignment = -4;\n        return;\n      }\n      puVar8 = (undefined4 *)xmalloc(8);\n      *puVar8 = piVar12;\n      pcVar11 = (char *)*piVar12;\n      pcVar10 = (char *)piVar12[0x16];\n      piVar12 = piVar12 + 0x16;\n    }" while (parenthesized_expression "((pcVar10 == (char *)0x0 || (iVar9 = strcmp(pcVar10,pcVar11), iVar9 != 0)))" ( (parenthesized_expression "(pcVar10 == (char *)0x0 || (iVar9 = strcmp(pcVar10,pcVar11), iVar9 != 0))" ( (binary_expression "pcVar10 == (char *)0x0 || (iVar9 = strcmp(pcVar10,pcVar11), iVar9 != 0)" (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar9 = strcmp(pcVar10,pcVar11), iVar9 != 0)" ( (comma_expression "iVar9 = strcmp(pcVar10,pcVar11), iVar9 != 0" (assignment_expression "iVar9 = strcmp(pcVar10,pcVar11)" identifier = (call_expression "strcmp(pcVar10,pcVar11)" identifier (argument_list "(pcVar10,pcVar11)" ( identifier , identifier )))) , (binary_expression "iVar9 != 0" identifier != number_literal)) ))) )) )) (compound_statement "{\n      puVar8[1] = piVar12;\n      pcVar10 = hash_insert(op_hash,pcVar11,puVar8);\n      if (pcVar10 != (char *)0x0) {\n        iVar9 = piVar12[-0x16];\n        pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        as_fatal(pcVar11,iVar9,pcVar10);\n      }\n      if (*piVar12 == 0) {\n        reg_hash = hash_new();\n        iVar9 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar8 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            pcVar10 = hash_insert(reg_hash,(char *)*puVar8,puVar8);\n            if (pcVar10 != (char *)0x0) {\n              uVar4 = *puVar8;\n              pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar11,uVar4,pcVar10);\n            }\n            iVar9 = iVar9 + -1;\n            puVar8 = puVar8 + 4;\n          } while (iVar9 != -1);\n        }\n        puVar6 = PTR__sch_tolower_0007ffd0;\n        puVar5 = PTR__sch_istable_0007ff74;\n        iVar9 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar5 + iVar9 * 2);\n          cVar7 = (char)iVar9;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }\n              }\n              else {\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }\n            }\n            else {\n              mnemonic_chars[iVar9] = cVar7;\n              register_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            digit_chars[iVar9] = cVar7;\n            mnemonic_chars[iVar9] = cVar7;\n            register_chars[iVar9] = cVar7;\n            operand_chars[iVar9] = cVar7;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar9) {\n              identifier_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            identifier_chars[iVar9] = cVar7;\n          }\n          iVar9 = iVar9 + 1;\n        } while (iVar9 != 0x100);\n        digit_chars[0x2d] = '-';\n        pcVar10 = operand_special_chars;\n        mnemonic_chars[0x2d] = '-';\n        mnemonic_chars[0x2e] = '.';\n        mnemonic_chars[0x5f] = '_';\n        identifier_chars[0x5f] = '_';\n        identifier_chars[0x2e] = '.';\n        bVar1 = operand_special_chars[0];\n        while (bVar1 != 0) {\n          pcVar10 = (char *)((byte *)pcVar10 + 1);\n          operand_chars[bVar1] = bVar1;\n          bVar1 = *pcVar10;\n        }\n        if (flag_code == CODE_64BIT) {\n          x86_dwarf2_return_column = 0x10;\n          x86_cie_data_alignment = -8;\n          return;\n        }\n        x86_dwarf2_return_column = 8;\n        x86_cie_data_alignment = -4;\n        return;\n      }\n      puVar8 = (undefined4 *)xmalloc(8);\n      *puVar8 = piVar12;\n      pcVar11 = (char *)*piVar12;\n      pcVar10 = (char *)piVar12[0x16];\n      piVar12 = piVar12 + 0x16;\n    }" { (expression_statement "puVar8[1] = piVar12;" (assignment_expression "puVar8[1] = piVar12" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar10 = hash_insert(op_hash,pcVar11,puVar8);" (assignment_expression "pcVar10 = hash_insert(op_hash,pcVar11,puVar8)" identifier = (call_expression "hash_insert(op_hash,pcVar11,puVar8)" identifier (argument_list "(op_hash,pcVar11,puVar8)" ( identifier , identifier , identifier )))) ;) (if_statement "if (pcVar10 != (char *)0x0) {\n        iVar9 = piVar12[-0x16];\n        pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        as_fatal(pcVar11,iVar9,pcVar10);\n      }" if (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar9 = piVar12[-0x16];\n        pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n        as_fatal(pcVar11,iVar9,pcVar10);\n      }" { (expression_statement "iVar9 = piVar12[-0x16];" (assignment_expression "iVar9 = piVar12[-0x16]" identifier = (subscript_expression "piVar12[-0x16]" identifier [ number_literal ])) ;) (expression_statement "pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);" (assignment_expression "pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"can\'t hash %s: %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"can\'t hash %s: %s",5)" identifier (argument_list "(0,"can\'t hash %s: %s",5)" ( number_literal , (string_literal ""can\'t hash %s: %s"" " string_content escape_sequence string_content ") , number_literal ))))) ;) comment (expression_statement "as_fatal(pcVar11,iVar9,pcVar10);" (call_expression "as_fatal(pcVar11,iVar9,pcVar10)" identifier (argument_list "(pcVar11,iVar9,pcVar10)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (*piVar12 == 0) {\n        reg_hash = hash_new();\n        iVar9 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar8 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            pcVar10 = hash_insert(reg_hash,(char *)*puVar8,puVar8);\n            if (pcVar10 != (char *)0x0) {\n              uVar4 = *puVar8;\n              pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar11,uVar4,pcVar10);\n            }\n            iVar9 = iVar9 + -1;\n            puVar8 = puVar8 + 4;\n          } while (iVar9 != -1);\n        }\n        puVar6 = PTR__sch_tolower_0007ffd0;\n        puVar5 = PTR__sch_istable_0007ff74;\n        iVar9 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar5 + iVar9 * 2);\n          cVar7 = (char)iVar9;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }\n              }\n              else {\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }\n            }\n            else {\n              mnemonic_chars[iVar9] = cVar7;\n              register_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            digit_chars[iVar9] = cVar7;\n            mnemonic_chars[iVar9] = cVar7;\n            register_chars[iVar9] = cVar7;\n            operand_chars[iVar9] = cVar7;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar9) {\n              identifier_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            identifier_chars[iVar9] = cVar7;\n          }\n          iVar9 = iVar9 + 1;\n        } while (iVar9 != 0x100);\n        digit_chars[0x2d] = '-';\n        pcVar10 = operand_special_chars;\n        mnemonic_chars[0x2d] = '-';\n        mnemonic_chars[0x2e] = '.';\n        mnemonic_chars[0x5f] = '_';\n        identifier_chars[0x5f] = '_';\n        identifier_chars[0x2e] = '.';\n        bVar1 = operand_special_chars[0];\n        while (bVar1 != 0) {\n          pcVar10 = (char *)((byte *)pcVar10 + 1);\n          operand_chars[bVar1] = bVar1;\n          bVar1 = *pcVar10;\n        }\n        if (flag_code == CODE_64BIT) {\n          x86_dwarf2_return_column = 0x10;\n          x86_cie_data_alignment = -8;\n          return;\n        }\n        x86_dwarf2_return_column = 8;\n        x86_cie_data_alignment = -4;\n        return;\n      }" if (parenthesized_expression "(*piVar12 == 0)" ( (binary_expression "*piVar12 == 0" (pointer_expression "*piVar12" * identifier) == number_literal) )) (compound_statement "{\n        reg_hash = hash_new();\n        iVar9 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar8 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            pcVar10 = hash_insert(reg_hash,(char *)*puVar8,puVar8);\n            if (pcVar10 != (char *)0x0) {\n              uVar4 = *puVar8;\n              pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar11,uVar4,pcVar10);\n            }\n            iVar9 = iVar9 + -1;\n            puVar8 = puVar8 + 4;\n          } while (iVar9 != -1);\n        }\n        puVar6 = PTR__sch_tolower_0007ffd0;\n        puVar5 = PTR__sch_istable_0007ff74;\n        iVar9 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar5 + iVar9 * 2);\n          cVar7 = (char)iVar9;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }\n              }\n              else {\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }\n            }\n            else {\n              mnemonic_chars[iVar9] = cVar7;\n              register_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            digit_chars[iVar9] = cVar7;\n            mnemonic_chars[iVar9] = cVar7;\n            register_chars[iVar9] = cVar7;\n            operand_chars[iVar9] = cVar7;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar9) {\n              identifier_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            identifier_chars[iVar9] = cVar7;\n          }\n          iVar9 = iVar9 + 1;\n        } while (iVar9 != 0x100);\n        digit_chars[0x2d] = '-';\n        pcVar10 = operand_special_chars;\n        mnemonic_chars[0x2d] = '-';\n        mnemonic_chars[0x2e] = '.';\n        mnemonic_chars[0x5f] = '_';\n        identifier_chars[0x5f] = '_';\n        identifier_chars[0x2e] = '.';\n        bVar1 = operand_special_chars[0];\n        while (bVar1 != 0) {\n          pcVar10 = (char *)((byte *)pcVar10 + 1);\n          operand_chars[bVar1] = bVar1;\n          bVar1 = *pcVar10;\n        }\n        if (flag_code == CODE_64BIT) {\n          x86_dwarf2_return_column = 0x10;\n          x86_cie_data_alignment = -8;\n          return;\n        }\n        x86_dwarf2_return_column = 8;\n        x86_cie_data_alignment = -4;\n        return;\n      }" { (expression_statement "reg_hash = hash_new();" (assignment_expression "reg_hash = hash_new()" identifier = (call_expression "hash_new()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar9 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;" (assignment_expression "iVar9 = *(int *)PTR_i386_regtab_size_0007ff4c + -1" identifier = (binary_expression "*(int *)PTR_i386_regtab_size_0007ff4c + -1" (pointer_expression "*(int *)PTR_i386_regtab_size_0007ff4c" * (cast_expression "(int *)PTR_i386_regtab_size_0007ff4c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) ;) (expression_statement "puVar8 = (undefined4 *)PTR_i386_regtab_0007ff5c;" (assignment_expression "puVar8 = (undefined4 *)PTR_i386_regtab_0007ff5c" identifier = (cast_expression "(undefined4 *)PTR_i386_regtab_0007ff5c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            pcVar10 = hash_insert(reg_hash,(char *)*puVar8,puVar8);\n            if (pcVar10 != (char *)0x0) {\n              uVar4 = *puVar8;\n              pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar11,uVar4,pcVar10);\n            }\n            iVar9 = iVar9 + -1;\n            puVar8 = puVar8 + 4;\n          } while (iVar9 != -1);\n        }" if (parenthesized_expression "(*(int *)PTR_i386_regtab_size_0007ff4c != 0)" ( (binary_expression "*(int *)PTR_i386_regtab_size_0007ff4c != 0" (pointer_expression "*(int *)PTR_i386_regtab_size_0007ff4c" * (cast_expression "(int *)PTR_i386_regtab_size_0007ff4c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n          do {\n            pcVar10 = hash_insert(reg_hash,(char *)*puVar8,puVar8);\n            if (pcVar10 != (char *)0x0) {\n              uVar4 = *puVar8;\n              pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar11,uVar4,pcVar10);\n            }\n            iVar9 = iVar9 + -1;\n            puVar8 = puVar8 + 4;\n          } while (iVar9 != -1);\n        }" { (do_statement "do {\n            pcVar10 = hash_insert(reg_hash,(char *)*puVar8,puVar8);\n            if (pcVar10 != (char *)0x0) {\n              uVar4 = *puVar8;\n              pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar11,uVar4,pcVar10);\n            }\n            iVar9 = iVar9 + -1;\n            puVar8 = puVar8 + 4;\n          } while (iVar9 != -1);" do (compound_statement "{\n            pcVar10 = hash_insert(reg_hash,(char *)*puVar8,puVar8);\n            if (pcVar10 != (char *)0x0) {\n              uVar4 = *puVar8;\n              pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar11,uVar4,pcVar10);\n            }\n            iVar9 = iVar9 + -1;\n            puVar8 = puVar8 + 4;\n          }" { (expression_statement "pcVar10 = hash_insert(reg_hash,(char *)*puVar8,puVar8);" (assignment_expression "pcVar10 = hash_insert(reg_hash,(char *)*puVar8,puVar8)" identifier = (call_expression "hash_insert(reg_hash,(char *)*puVar8,puVar8)" identifier (argument_list "(reg_hash,(char *)*puVar8,puVar8)" ( identifier , (cast_expression "(char *)*puVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier)) , identifier )))) ;) (if_statement "if (pcVar10 != (char *)0x0) {\n              uVar4 = *puVar8;\n              pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar11,uVar4,pcVar10);\n            }" if (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar4 = *puVar8;\n              pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);\n                    /* WARNING: Subroutine does not return */\n              as_fatal(pcVar11,uVar4,pcVar10);\n            }" { (expression_statement "uVar4 = *puVar8;" (assignment_expression "uVar4 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5);" (assignment_expression "pcVar11 = (char *)dcgettext(0,"can\'t hash %s: %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"can\'t hash %s: %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"can\'t hash %s: %s",5)" identifier (argument_list "(0,"can\'t hash %s: %s",5)" ( number_literal , (string_literal ""can\'t hash %s: %s"" " string_content escape_sequence string_content ") , number_literal ))))) ;) comment (expression_statement "as_fatal(pcVar11,uVar4,pcVar10);" (call_expression "as_fatal(pcVar11,uVar4,pcVar10)" identifier (argument_list "(pcVar11,uVar4,pcVar10)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + 4;" (assignment_expression "puVar8 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 != -1)" ( (binary_expression "iVar9 != -1" identifier != number_literal) )) ;) })) (expression_statement "puVar6 = PTR__sch_tolower_0007ffd0;" (assignment_expression "puVar6 = PTR__sch_tolower_0007ffd0" identifier = identifier) ;) (expression_statement "puVar5 = PTR__sch_istable_0007ff74;" (assignment_expression "puVar5 = PTR__sch_istable_0007ff74" identifier = identifier) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar3 = *(ushort *)(puVar5 + iVar9 * 2);\n          cVar7 = (char)iVar9;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }\n              }\n              else {\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }\n            }\n            else {\n              mnemonic_chars[iVar9] = cVar7;\n              register_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            digit_chars[iVar9] = cVar7;\n            mnemonic_chars[iVar9] = cVar7;\n            register_chars[iVar9] = cVar7;\n            operand_chars[iVar9] = cVar7;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar9) {\n              identifier_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            identifier_chars[iVar9] = cVar7;\n          }\n          iVar9 = iVar9 + 1;\n        } while (iVar9 != 0x100);" do (compound_statement "{\n          uVar3 = *(ushort *)(puVar5 + iVar9 * 2);\n          cVar7 = (char)iVar9;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }\n              }\n              else {\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }\n            }\n            else {\n              mnemonic_chars[iVar9] = cVar7;\n              register_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            digit_chars[iVar9] = cVar7;\n            mnemonic_chars[iVar9] = cVar7;\n            register_chars[iVar9] = cVar7;\n            operand_chars[iVar9] = cVar7;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar9) {\n              identifier_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            identifier_chars[iVar9] = cVar7;\n          }\n          iVar9 = iVar9 + 1;\n        }" { (expression_statement "uVar3 = *(ushort *)(puVar5 + iVar9 * 2);" (assignment_expression "uVar3 = *(ushort *)(puVar5 + iVar9 * 2)" identifier = (pointer_expression "*(ushort *)(puVar5 + iVar9 * 2)" * (cast_expression "(ushort *)(puVar5 + iVar9 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + iVar9 * 2)" ( (binary_expression "puVar5 + iVar9 * 2" identifier + (binary_expression "iVar9 * 2" identifier * number_literal)) ))))) ;) (expression_statement "cVar7 = (char)iVar9;" (assignment_expression "cVar7 = (char)iVar9" identifier = (cast_expression "(char)iVar9" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }\n              }\n              else {\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }\n            }\n            else {\n              mnemonic_chars[iVar9] = cVar7;\n              register_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            digit_chars[iVar9] = cVar7;\n            mnemonic_chars[iVar9] = cVar7;\n            register_chars[iVar9] = cVar7;\n            operand_chars[iVar9] = cVar7;\n          }" if (parenthesized_expression "((uVar3 & 4) == 0)" ( (binary_expression "(uVar3 & 4) == 0" (parenthesized_expression "(uVar3 & 4)" ( (binary_expression "uVar3 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }\n              }\n              else {\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }\n            }\n            else {\n              mnemonic_chars[iVar9] = cVar7;\n              register_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }" { (if_statement "if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }\n              }\n              else {\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }\n            }\n            else {\n              mnemonic_chars[iVar9] = cVar7;\n              register_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }" if (parenthesized_expression "((uVar3 & 8) == 0)" ( (binary_expression "(uVar3 & 8) == 0" (parenthesized_expression "(uVar3 & 8)" ( (binary_expression "uVar3 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }\n              }\n              else {\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }\n            }" { (if_statement "if ((uVar3 & 0x80) == 0) {\n                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }\n              }\n              else {\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }" if (parenthesized_expression "((uVar3 & 0x80) == 0)" ( (binary_expression "(uVar3 & 0x80) == 0" (parenthesized_expression "(uVar3 & 0x80)" ( (binary_expression "uVar3 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }\n              }" { (if_statement "if ((iVar9 - 0x7bU & 0xfffffffd) == 0) {\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }" if (parenthesized_expression "((iVar9 - 0x7bU & 0xfffffffd) == 0)" ( (binary_expression "(iVar9 - 0x7bU & 0xfffffffd) == 0" (parenthesized_expression "(iVar9 - 0x7bU & 0xfffffffd)" ( (binary_expression "iVar9 - 0x7bU & 0xfffffffd" (binary_expression "iVar9 - 0x7bU" identifier - number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n                  mnemonic_chars[iVar9] = cVar7;\n                  operand_chars[iVar9] = cVar7;\n                }" { (expression_statement "mnemonic_chars[iVar9] = cVar7;" (assignment_expression "mnemonic_chars[iVar9] = cVar7" (subscript_expression "mnemonic_chars[iVar9]" identifier [ identifier ]) = identifier) ;) (expression_statement "operand_chars[iVar9] = cVar7;" (assignment_expression "operand_chars[iVar9] = cVar7" (subscript_expression "operand_chars[iVar9]" identifier [ identifier ]) = identifier) ;) })) }) (else_clause "else {\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }" else (compound_statement "{\n                cVar2 = puVar6[iVar9];\n                operand_chars[iVar9] = cVar7;\n                mnemonic_chars[iVar9] = cVar2;\n                register_chars[iVar9] = cVar2;\n              }" { (expression_statement "cVar2 = puVar6[iVar9];" (assignment_expression "cVar2 = puVar6[iVar9]" identifier = (subscript_expression "puVar6[iVar9]" identifier [ identifier ])) ;) (expression_statement "operand_chars[iVar9] = cVar7;" (assignment_expression "operand_chars[iVar9] = cVar7" (subscript_expression "operand_chars[iVar9]" identifier [ identifier ]) = identifier) ;) (expression_statement "mnemonic_chars[iVar9] = cVar2;" (assignment_expression "mnemonic_chars[iVar9] = cVar2" (subscript_expression "mnemonic_chars[iVar9]" identifier [ identifier ]) = identifier) ;) (expression_statement "register_chars[iVar9] = cVar2;" (assignment_expression "register_chars[iVar9] = cVar2" (subscript_expression "register_chars[iVar9]" identifier [ identifier ]) = identifier) ;) }))) }) (else_clause "else {\n              mnemonic_chars[iVar9] = cVar7;\n              register_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }" else (compound_statement "{\n              mnemonic_chars[iVar9] = cVar7;\n              register_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }" { (expression_statement "mnemonic_chars[iVar9] = cVar7;" (assignment_expression "mnemonic_chars[iVar9] = cVar7" (subscript_expression "mnemonic_chars[iVar9]" identifier [ identifier ]) = identifier) ;) (expression_statement "register_chars[iVar9] = cVar7;" (assignment_expression "register_chars[iVar9] = cVar7" (subscript_expression "register_chars[iVar9]" identifier [ identifier ]) = identifier) ;) (expression_statement "operand_chars[iVar9] = cVar7;" (assignment_expression "operand_chars[iVar9] = cVar7" (subscript_expression "operand_chars[iVar9]" identifier [ identifier ]) = identifier) ;) }))) }) (else_clause "else {\n            digit_chars[iVar9] = cVar7;\n            mnemonic_chars[iVar9] = cVar7;\n            register_chars[iVar9] = cVar7;\n            operand_chars[iVar9] = cVar7;\n          }" else (compound_statement "{\n            digit_chars[iVar9] = cVar7;\n            mnemonic_chars[iVar9] = cVar7;\n            register_chars[iVar9] = cVar7;\n            operand_chars[iVar9] = cVar7;\n          }" { (expression_statement "digit_chars[iVar9] = cVar7;" (assignment_expression "digit_chars[iVar9] = cVar7" (subscript_expression "digit_chars[iVar9]" identifier [ identifier ]) = identifier) ;) (expression_statement "mnemonic_chars[iVar9] = cVar7;" (assignment_expression "mnemonic_chars[iVar9] = cVar7" (subscript_expression "mnemonic_chars[iVar9]" identifier [ identifier ]) = identifier) ;) (expression_statement "register_chars[iVar9] = cVar7;" (assignment_expression "register_chars[iVar9] = cVar7" (subscript_expression "register_chars[iVar9]" identifier [ identifier ]) = identifier) ;) (expression_statement "operand_chars[iVar9] = cVar7;" (assignment_expression "operand_chars[iVar9] = cVar7" (subscript_expression "operand_chars[iVar9]" identifier [ identifier ]) = identifier) ;) }))) (if_statement "if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar9) {\n              identifier_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }\n          else {\n            identifier_chars[iVar9] = cVar7;\n          }" if (parenthesized_expression "((uVar3 & 0x8c) == 0)" ( (binary_expression "(uVar3 & 0x8c) == 0" (parenthesized_expression "(uVar3 & 0x8c)" ( (binary_expression "uVar3 & 0x8c" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if (0x7f < iVar9) {\n              identifier_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }\n          }" { (if_statement "if (0x7f < iVar9) {\n              identifier_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }" if (parenthesized_expression "(0x7f < iVar9)" ( (binary_expression "0x7f < iVar9" number_literal < identifier) )) (compound_statement "{\n              identifier_chars[iVar9] = cVar7;\n              operand_chars[iVar9] = cVar7;\n            }" { (expression_statement "identifier_chars[iVar9] = cVar7;" (assignment_expression "identifier_chars[iVar9] = cVar7" (subscript_expression "identifier_chars[iVar9]" identifier [ identifier ]) = identifier) ;) (expression_statement "operand_chars[iVar9] = cVar7;" (assignment_expression "operand_chars[iVar9] = cVar7" (subscript_expression "operand_chars[iVar9]" identifier [ identifier ]) = identifier) ;) })) }) (else_clause "else {\n            identifier_chars[iVar9] = cVar7;\n          }" else (compound_statement "{\n            identifier_chars[iVar9] = cVar7;\n          }" { (expression_statement "identifier_chars[iVar9] = cVar7;" (assignment_expression "identifier_chars[iVar9] = cVar7" (subscript_expression "identifier_chars[iVar9]" identifier [ identifier ]) = identifier) ;) }))) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 != 0x100)" ( (binary_expression "iVar9 != 0x100" identifier != number_literal) )) ;) (expression_statement "digit_chars[0x2d] = '-';" (assignment_expression "digit_chars[0x2d] = '-'" (subscript_expression "digit_chars[0x2d]" identifier [ number_literal ]) = (char_literal "'-'" ' character ')) ;) (expression_statement "pcVar10 = operand_special_chars;" (assignment_expression "pcVar10 = operand_special_chars" identifier = identifier) ;) (expression_statement "mnemonic_chars[0x2d] = '-';" (assignment_expression "mnemonic_chars[0x2d] = '-'" (subscript_expression "mnemonic_chars[0x2d]" identifier [ number_literal ]) = (char_literal "'-'" ' character ')) ;) (expression_statement "mnemonic_chars[0x2e] = '.';" (assignment_expression "mnemonic_chars[0x2e] = '.'" (subscript_expression "mnemonic_chars[0x2e]" identifier [ number_literal ]) = (char_literal "'.'" ' character ')) ;) (expression_statement "mnemonic_chars[0x5f] = '_';" (assignment_expression "mnemonic_chars[0x5f] = '_'" (subscript_expression "mnemonic_chars[0x5f]" identifier [ number_literal ]) = (char_literal "'_'" ' character ')) ;) (expression_statement "identifier_chars[0x5f] = '_';" (assignment_expression "identifier_chars[0x5f] = '_'" (subscript_expression "identifier_chars[0x5f]" identifier [ number_literal ]) = (char_literal "'_'" ' character ')) ;) (expression_statement "identifier_chars[0x2e] = '.';" (assignment_expression "identifier_chars[0x2e] = '.'" (subscript_expression "identifier_chars[0x2e]" identifier [ number_literal ]) = (char_literal "'.'" ' character ')) ;) (expression_statement "bVar1 = operand_special_chars[0];" (assignment_expression "bVar1 = operand_special_chars[0]" identifier = (subscript_expression "operand_special_chars[0]" identifier [ number_literal ])) ;) (while_statement "while (bVar1 != 0) {\n          pcVar10 = (char *)((byte *)pcVar10 + 1);\n          operand_chars[bVar1] = bVar1;\n          bVar1 = *pcVar10;\n        }" while (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n          pcVar10 = (char *)((byte *)pcVar10 + 1);\n          operand_chars[bVar1] = bVar1;\n          bVar1 = *pcVar10;\n        }" { (expression_statement "pcVar10 = (char *)((byte *)pcVar10 + 1);" (assignment_expression "pcVar10 = (char *)((byte *)pcVar10 + 1)" identifier = (cast_expression "(char *)((byte *)pcVar10 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)pcVar10 + 1)" ( (binary_expression "(byte *)pcVar10 + 1" (cast_expression "(byte *)pcVar10" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (expression_statement "operand_chars[bVar1] = bVar1;" (assignment_expression "operand_chars[bVar1] = bVar1" (subscript_expression "operand_chars[bVar1]" identifier [ identifier ]) = identifier) ;) (expression_statement "bVar1 = *pcVar10;" (assignment_expression "bVar1 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) })) (if_statement "if (flag_code == CODE_64BIT) {\n          x86_dwarf2_return_column = 0x10;\n          x86_cie_data_alignment = -8;\n          return;\n        }" if (parenthesized_expression "(flag_code == CODE_64BIT)" ( (binary_expression "flag_code == CODE_64BIT" identifier == identifier) )) (compound_statement "{\n          x86_dwarf2_return_column = 0x10;\n          x86_cie_data_alignment = -8;\n          return;\n        }" { (expression_statement "x86_dwarf2_return_column = 0x10;" (assignment_expression "x86_dwarf2_return_column = 0x10" identifier = number_literal) ;) (expression_statement "x86_cie_data_alignment = -8;" (assignment_expression "x86_cie_data_alignment = -8" identifier = number_literal) ;) (return_statement "return;" return ;) })) (expression_statement "x86_dwarf2_return_column = 8;" (assignment_expression "x86_dwarf2_return_column = 8" identifier = number_literal) ;) (expression_statement "x86_cie_data_alignment = -4;" (assignment_expression "x86_cie_data_alignment = -4" identifier = number_literal) ;) (return_statement "return;" return ;) })) (expression_statement "puVar8 = (undefined4 *)xmalloc(8);" (assignment_expression "puVar8 = (undefined4 *)xmalloc(8)" identifier = (cast_expression "(undefined4 *)xmalloc(8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(8)" identifier (argument_list "(8)" ( number_literal ))))) ;) (expression_statement "*puVar8 = piVar12;" (assignment_expression "*puVar8 = piVar12" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "pcVar11 = (char *)*piVar12;" (assignment_expression "pcVar11 = (char *)*piVar12" identifier = (cast_expression "(char *)*piVar12" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (expression_statement "pcVar10 = (char *)piVar12[0x16];" (assignment_expression "pcVar10 = (char *)piVar12[0x16]" identifier = (cast_expression "(char *)piVar12[0x16]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x16]" identifier [ number_literal ]))) ;) (expression_statement "piVar12 = piVar12 + 0x16;" (assignment_expression "piVar12 = piVar12 + 0x16" identifier = (binary_expression "piVar12 + 0x16" identifier + number_literal)) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void FUN_0004e400(void)\n\n{\n  byte bVar1;\n  undefined1 uVar2;\n  ushort uVar3;\n  char *__s1;\n  char *__s2;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined1 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  int *piVar13;\n  \n  DAT_0008043b = 2;\n  DAT_00088e84 = FUN_00025210();\n  puVar7 = (undefined4 *)xmalloc(8);\n  piVar13 = (int *)PTR_i386_optab_0007ff88;\n  *puVar7 = PTR_i386_optab_0007ff88;\n  do {\n    __s1 = (char *)piVar13[0x16];\n    __s2 = (char *)*piVar13;\n    piVar13 = piVar13 + 0x16;\n    while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }\n  } while( true );\n}\n\n" (function_definition "void FUN_0004e400(void)\n\n{\n  byte bVar1;\n  undefined1 uVar2;\n  ushort uVar3;\n  char *__s1;\n  char *__s2;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined1 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  int *piVar13;\n  \n  DAT_0008043b = 2;\n  DAT_00088e84 = FUN_00025210();\n  puVar7 = (undefined4 *)xmalloc(8);\n  piVar13 = (int *)PTR_i386_optab_0007ff88;\n  *puVar7 = PTR_i386_optab_0007ff88;\n  do {\n    __s1 = (char *)piVar13[0x16];\n    __s2 = (char *)*piVar13;\n    piVar13 = piVar13 + 0x16;\n    while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_0004e400(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  undefined1 uVar2;\n  ushort uVar3;\n  char *__s1;\n  char *__s2;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined1 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  int *piVar13;\n  \n  DAT_0008043b = 2;\n  DAT_00088e84 = FUN_00025210();\n  puVar7 = (undefined4 *)xmalloc(8);\n  piVar13 = (int *)PTR_i386_optab_0007ff88;\n  *puVar7 = PTR_i386_optab_0007ff88;\n  do {\n    __s1 = (char *)piVar13[0x16];\n    __s2 = (char *)*piVar13;\n    piVar13 = piVar13 + 0x16;\n    while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }\n  } while( true );\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "char *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined1 uVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (expression_statement "DAT_0008043b = 2;" (assignment_expression "DAT_0008043b = 2" identifier = number_literal) ;) (expression_statement "DAT_00088e84 = FUN_00025210();" (assignment_expression "DAT_00088e84 = FUN_00025210()" identifier = (call_expression "FUN_00025210()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar7 = (undefined4 *)xmalloc(8);" (assignment_expression "puVar7 = (undefined4 *)xmalloc(8)" identifier = (cast_expression "(undefined4 *)xmalloc(8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(8)" identifier (argument_list "(8)" ( number_literal ))))) ;) (expression_statement "piVar13 = (int *)PTR_i386_optab_0007ff88;" (assignment_expression "piVar13 = (int *)PTR_i386_optab_0007ff88" identifier = (cast_expression "(int *)PTR_i386_optab_0007ff88" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*puVar7 = PTR_i386_optab_0007ff88;" (assignment_expression "*puVar7 = PTR_i386_optab_0007ff88" (pointer_expression "*puVar7" * identifier) = identifier) ;) (do_statement "do {\n    __s1 = (char *)piVar13[0x16];\n    __s2 = (char *)*piVar13;\n    piVar13 = piVar13 + 0x16;\n    while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }\n  } while( true );" do (compound_statement "{\n    __s1 = (char *)piVar13[0x16];\n    __s2 = (char *)*piVar13;\n    piVar13 = piVar13 + 0x16;\n    while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }\n  }" { (expression_statement "__s1 = (char *)piVar13[0x16];" (assignment_expression "__s1 = (char *)piVar13[0x16]" identifier = (cast_expression "(char *)piVar13[0x16]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[0x16]" identifier [ number_literal ]))) ;) (expression_statement "__s2 = (char *)*piVar13;" (assignment_expression "__s2 = (char *)*piVar13" identifier = (cast_expression "(char *)*piVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) (expression_statement "piVar13 = piVar13 + 0x16;" (assignment_expression "piVar13 = piVar13 + 0x16" identifier = (binary_expression "piVar13 + 0x16" identifier + number_literal)) ;) (while_statement "while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }" while (parenthesized_expression "((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0)))" ( (parenthesized_expression "(__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))" ( (binary_expression "__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0)" (binary_expression "__s1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar8 = strcmp(__s1,__s2), iVar8 != 0)" ( (comma_expression "iVar8 = strcmp(__s1,__s2), iVar8 != 0" (assignment_expression "iVar8 = strcmp(__s1,__s2)" identifier = (call_expression "strcmp(__s1,__s2)" identifier (argument_list "(__s1,__s2)" ( identifier , identifier )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) )) (compound_statement "{\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }" { (expression_statement "puVar7[1] = piVar13;" (assignment_expression "puVar7[1] = piVar13" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);" (assignment_expression "iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7)" identifier = (call_expression "FUN_00025260(DAT_00088e84,__s2,puVar7)" identifier (argument_list "(DAT_00088e84,__s2,puVar7)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }" { (expression_statement "iVar9 = piVar13[-0x16];" (assignment_expression "iVar9 = piVar13[-0x16]" identifier = (subscript_expression "piVar13[-0x16]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = dcgettext(0,"can\'t hash %s: %s",5);" (assignment_expression "uVar11 = dcgettext(0,"can\'t hash %s: %s",5)" identifier = (call_expression "dcgettext(0,"can\'t hash %s: %s",5)" identifier (argument_list "(0,"can\'t hash %s: %s",5)" ( number_literal , (string_literal ""can\'t hash %s: %s"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0002be00(uVar11,iVar9,iVar8);" (call_expression "FUN_0002be00(uVar11,iVar9,iVar8)" identifier (argument_list "(uVar11,iVar9,iVar8)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }" if (parenthesized_expression "(*piVar13 == 0)" ( (binary_expression "*piVar13 == 0" (pointer_expression "*piVar13" * identifier) == number_literal) )) (compound_statement "{\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }" { (expression_statement "DAT_00088e80 = FUN_00025210();" (assignment_expression "DAT_00088e80 = FUN_00025210()" identifier = (call_expression "FUN_00025210()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;" (assignment_expression "iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1" identifier = (binary_expression "*(int *)PTR_i386_regtab_size_0007ff4c + -1" (pointer_expression "*(int *)PTR_i386_regtab_size_0007ff4c" * (cast_expression "(int *)PTR_i386_regtab_size_0007ff4c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) ;) (expression_statement "puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;" (assignment_expression "puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c" identifier = (cast_expression "(undefined4 *)PTR_i386_regtab_0007ff5c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }" if (parenthesized_expression "(*(int *)PTR_i386_regtab_size_0007ff4c != 0)" ( (binary_expression "*(int *)PTR_i386_regtab_size_0007ff4c != 0" (pointer_expression "*(int *)PTR_i386_regtab_size_0007ff4c" * (cast_expression "(int *)PTR_i386_regtab_size_0007ff4c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }" { (do_statement "do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);" do (compound_statement "{\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          }" { (expression_statement "iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);" (assignment_expression "iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7)" identifier = (call_expression "FUN_00025260(DAT_00088e80,*puVar7,puVar7)" identifier (argument_list "(DAT_00088e80,*puVar7,puVar7)" ( identifier , (pointer_expression "*puVar7" * identifier) , identifier )))) ;) (if_statement "if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }" { (expression_statement "uVar11 = *puVar7;" (assignment_expression "uVar11 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "uVar10 = dcgettext(0,"can\'t hash %s: %s",5);" (assignment_expression "uVar10 = dcgettext(0,"can\'t hash %s: %s",5)" identifier = (call_expression "dcgettext(0,"can\'t hash %s: %s",5)" identifier (argument_list "(0,"can\'t hash %s: %s",5)" ( number_literal , (string_literal ""can\'t hash %s: %s"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_0002be00(uVar10,uVar11,iVar9);" (call_expression "FUN_0002be00(uVar10,uVar11,iVar9)" identifier (argument_list "(uVar10,uVar11,iVar9)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "puVar7 = puVar7 + 4;" (assignment_expression "puVar7 = puVar7 + 4" identifier = (binary_expression "puVar7 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 != -1)" ( (binary_expression "iVar8 != -1" identifier != number_literal) )) ;) })) (expression_statement "puVar5 = PTR__sch_tolower_0007ffd0;" (assignment_expression "puVar5 = PTR__sch_tolower_0007ffd0" identifier = identifier) ;) (expression_statement "puVar4 = PTR__sch_istable_0007ff74;" (assignment_expression "puVar4 = PTR__sch_istable_0007ff74" identifier = identifier) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);" do (compound_statement "{\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        }" { (expression_statement "uVar3 = *(ushort *)(puVar4 + iVar8 * 2);" (assignment_expression "uVar3 = *(ushort *)(puVar4 + iVar8 * 2)" identifier = (pointer_expression "*(ushort *)(puVar4 + iVar8 * 2)" * (cast_expression "(ushort *)(puVar4 + iVar8 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar8 * 2)" ( (binary_expression "puVar4 + iVar8 * 2" identifier + (binary_expression "iVar8 * 2" identifier * number_literal)) ))))) ;) (expression_statement "uVar6 = (undefined1)iVar8;" (assignment_expression "uVar6 = (undefined1)iVar8" identifier = (cast_expression "(undefined1)iVar8" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }" if (parenthesized_expression "((uVar3 & 4) == 0)" ( (binary_expression "(uVar3 & 4) == 0" (parenthesized_expression "(uVar3 & 4)" ( (binary_expression "uVar3 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }" { (if_statement "if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }" if (parenthesized_expression "((uVar3 & 8) == 0)" ( (binary_expression "(uVar3 & 8) == 0" (parenthesized_expression "(uVar3 & 8)" ( (binary_expression "uVar3 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }" { (if_statement "if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }" if (parenthesized_expression "((uVar3 & 0x80) == 0)" ( (binary_expression "(uVar3 & 0x80) == 0" (parenthesized_expression "(uVar3 & 0x80)" ( (binary_expression "uVar3 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }" { (if_statement "if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }" if (parenthesized_expression "((iVar8 - 0x7bU & 0xfffffffd) == 0)" ( (binary_expression "(iVar8 - 0x7bU & 0xfffffffd) == 0" (parenthesized_expression "(iVar8 - 0x7bU & 0xfffffffd)" ( (binary_expression "iVar8 - 0x7bU & 0xfffffffd" (binary_expression "iVar8 - 0x7bU" identifier - number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }" { (expression_statement "(&DAT_00089520)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089520)[iVar8] = uVar6" (subscript_expression "(&DAT_00089520)[iVar8]" (parenthesized_expression "(&DAT_00089520)" ( (pointer_expression "&DAT_00089520" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089320)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089320)[iVar8] = uVar6" (subscript_expression "(&DAT_00089320)[iVar8]" (parenthesized_expression "(&DAT_00089320)" ( (pointer_expression "&DAT_00089320" & identifier) )) [ identifier ]) = identifier) ;) })) }) (else_clause "else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }" else (compound_statement "{\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }" { (expression_statement "uVar2 = puVar5[iVar8];" (assignment_expression "uVar2 = puVar5[iVar8]" identifier = (subscript_expression "puVar5[iVar8]" identifier [ identifier ])) ;) (expression_statement "(&DAT_00089320)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089320)[iVar8] = uVar6" (subscript_expression "(&DAT_00089320)[iVar8]" (parenthesized_expression "(&DAT_00089320)" ( (pointer_expression "&DAT_00089320" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089520)[iVar8] = uVar2;" (assignment_expression "(&DAT_00089520)[iVar8] = uVar2" (subscript_expression "(&DAT_00089520)[iVar8]" (parenthesized_expression "(&DAT_00089520)" ( (pointer_expression "&DAT_00089520" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089420)[iVar8] = uVar2;" (assignment_expression "(&DAT_00089420)[iVar8] = uVar2" (subscript_expression "(&DAT_00089420)[iVar8]" (parenthesized_expression "(&DAT_00089420)" ( (pointer_expression "&DAT_00089420" & identifier) )) [ identifier ]) = identifier) ;) }))) }) (else_clause "else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }" else (compound_statement "{\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }" { (expression_statement "(&DAT_00089520)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089520)[iVar8] = uVar6" (subscript_expression "(&DAT_00089520)[iVar8]" (parenthesized_expression "(&DAT_00089520)" ( (pointer_expression "&DAT_00089520" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089420)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089420)[iVar8] = uVar6" (subscript_expression "(&DAT_00089420)[iVar8]" (parenthesized_expression "(&DAT_00089420)" ( (pointer_expression "&DAT_00089420" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089320)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089320)[iVar8] = uVar6" (subscript_expression "(&DAT_00089320)[iVar8]" (parenthesized_expression "(&DAT_00089320)" ( (pointer_expression "&DAT_00089320" & identifier) )) [ identifier ]) = identifier) ;) }))) }) (else_clause "else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }" else (compound_statement "{\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }" { (expression_statement "(&DAT_00089120)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089120)[iVar8] = uVar6" (subscript_expression "(&DAT_00089120)[iVar8]" (parenthesized_expression "(&DAT_00089120)" ( (pointer_expression "&DAT_00089120" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089520)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089520)[iVar8] = uVar6" (subscript_expression "(&DAT_00089520)[iVar8]" (parenthesized_expression "(&DAT_00089520)" ( (pointer_expression "&DAT_00089520" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089420)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089420)[iVar8] = uVar6" (subscript_expression "(&DAT_00089420)[iVar8]" (parenthesized_expression "(&DAT_00089420)" ( (pointer_expression "&DAT_00089420" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089320)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089320)[iVar8] = uVar6" (subscript_expression "(&DAT_00089320)[iVar8]" (parenthesized_expression "(&DAT_00089320)" ( (pointer_expression "&DAT_00089320" & identifier) )) [ identifier ]) = identifier) ;) }))) (if_statement "if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }" if (parenthesized_expression "((uVar3 & 0x8c) == 0)" ( (binary_expression "(uVar3 & 0x8c) == 0" (parenthesized_expression "(uVar3 & 0x8c)" ( (binary_expression "uVar3 & 0x8c" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }" { (if_statement "if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }" if (parenthesized_expression "(0x7f < iVar8)" ( (binary_expression "0x7f < iVar8" number_literal < identifier) )) (compound_statement "{\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }" { (expression_statement "(&DAT_00089220)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089220)[iVar8] = uVar6" (subscript_expression "(&DAT_00089220)[iVar8]" (parenthesized_expression "(&DAT_00089220)" ( (pointer_expression "&DAT_00089220" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&DAT_00089320)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089320)[iVar8] = uVar6" (subscript_expression "(&DAT_00089320)[iVar8]" (parenthesized_expression "(&DAT_00089320)" ( (pointer_expression "&DAT_00089320" & identifier) )) [ identifier ]) = identifier) ;) })) }) (else_clause "else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }" else (compound_statement "{\n            (&DAT_00089220)[iVar8] = uVar6;\n          }" { (expression_statement "(&DAT_00089220)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089220)[iVar8] = uVar6" (subscript_expression "(&DAT_00089220)[iVar8]" (parenthesized_expression "(&DAT_00089220)" ( (pointer_expression "&DAT_00089220" & identifier) )) [ identifier ]) = identifier) ;) }))) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 != 0x100)" ( (binary_expression "iVar8 != 0x100" identifier != number_literal) )) ;) (expression_statement "DAT_0008914d = 0x2d;" (assignment_expression "DAT_0008914d = 0x2d" identifier = number_literal) ;) (expression_statement "pbVar12 = &DAT_0008055c;" (assignment_expression "pbVar12 = &DAT_0008055c" identifier = (pointer_expression "&DAT_0008055c" & identifier)) ;) (expression_statement "DAT_0008954d = 0x2e2d;" (assignment_expression "DAT_0008954d = 0x2e2d" identifier = number_literal) ;) (expression_statement "DAT_0008957f = 0x5f;" (assignment_expression "DAT_0008957f = 0x5f" identifier = number_literal) ;) (expression_statement "DAT_0008927f = 0x5f;" (assignment_expression "DAT_0008927f = 0x5f" identifier = number_literal) ;) (expression_statement "DAT_0008924e = 0x2e;" (assignment_expression "DAT_0008924e = 0x2e" identifier = number_literal) ;) (expression_statement "bVar1 = DAT_0008055c;" (assignment_expression "bVar1 = DAT_0008055c" identifier = identifier) ;) (while_statement "while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }" while (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "(&DAT_00089320)[bVar1] = bVar1;" (assignment_expression "(&DAT_00089320)[bVar1] = bVar1" (subscript_expression "(&DAT_00089320)[bVar1]" (parenthesized_expression "(&DAT_00089320)" ( (pointer_expression "&DAT_00089320" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "bVar1 = *pbVar12;" (assignment_expression "bVar1 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) })) (if_statement "if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }" if (parenthesized_expression "(DAT_00088f0c == 2)" ( (binary_expression "DAT_00088f0c == 2" identifier == number_literal) )) (compound_statement "{\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }" { (expression_statement "DAT_00089af0 = 0x10;" (assignment_expression "DAT_00089af0 = 0x10" identifier = number_literal) ;) (expression_statement "DAT_00089b04 = 0xfffffff8;" (assignment_expression "DAT_00089b04 = 0xfffffff8" identifier = number_literal) ;) (return_statement "return;" return ;) })) (expression_statement "DAT_00089af0 = 8;" (assignment_expression "DAT_00089af0 = 8" identifier = number_literal) ;) (expression_statement "DAT_00089b04 = 0xfffffffc;" (assignment_expression "DAT_00089b04 = 0xfffffffc" identifier = number_literal) ;) (return_statement "return;" return ;) })) (expression_statement "puVar7 = (undefined4 *)xmalloc(8);" (assignment_expression "puVar7 = (undefined4 *)xmalloc(8)" identifier = (cast_expression "(undefined4 *)xmalloc(8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(8)" identifier (argument_list "(8)" ( number_literal ))))) ;) (expression_statement "*puVar7 = piVar13;" (assignment_expression "*puVar7 = piVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "__s2 = (char *)*piVar13;" (assignment_expression "__s2 = (char *)*piVar13" identifier = (cast_expression "(char *)*piVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) (expression_statement "__s1 = (char *)piVar13[0x16];" (assignment_expression "__s1 = (char *)piVar13[0x16]" identifier = (cast_expression "(char *)piVar13[0x16]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[0x16]" identifier [ number_literal ]))) ;) (expression_statement "piVar13 = piVar13 + 0x16;" (assignment_expression "piVar13 = piVar13 + 0x16" identifier = (binary_expression "piVar13 + 0x16" identifier + number_literal)) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "void FUN_0004e400(void)\n\n{\n  byte bVar1;\n  undefined1 uVar2;\n  ushort uVar3;\n  char *__s1;\n  char *__s2;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined1 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  int *piVar13;\n  \n  DAT_0008043b = 2;\n  DAT_00088e84 = FUN_00025210();\n  puVar7 = (undefined4 *)xmalloc(8);\n  piVar13 = (int *)PTR_i386_optab_0007ff88;\n  *puVar7 = PTR_i386_optab_0007ff88;\n  do {\n    __s1 = (char *)piVar13[0x16];\n    __s2 = (char *)*piVar13;\n    piVar13 = piVar13 + 0x16;\n    while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_0004e400(void)" (identifier "FUN_0004e400") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  byte bVar1;\n  undefined1 uVar2;\n  ushort uVar3;\n  char *__s1;\n  char *__s2;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined1 uVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  int *piVar13;\n  \n  DAT_0008043b = 2;\n  DAT_00088e84 = FUN_00025210();\n  puVar7 = (undefined4 *)xmalloc(8);\n  piVar13 = (int *)PTR_i386_optab_0007ff88;\n  *puVar7 = PTR_i386_optab_0007ff88;\n  do {\n    __s1 = (char *)piVar13[0x16];\n    __s2 = (char *)*piVar13;\n    piVar13 = piVar13 + 0x16;\n    while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }\n  } while( true );\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "undefined1 uVar2;" (type_identifier "undefined1") (identifier "uVar2") (; ";")) (declaration "ushort uVar3;" (type_identifier "ushort") (identifier "uVar3") (; ";")) (declaration "char *__s1;" (primitive_type "char") (pointer_declarator "*__s1" (* "*") (identifier "__s1")) (; ";")) (declaration "char *__s2;" (primitive_type "char") (pointer_declarator "*__s2" (* "*") (identifier "__s2")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined1 uVar6;" (type_identifier "undefined1") (identifier "uVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (expression_statement "DAT_0008043b = 2;" (assignment_expression "DAT_0008043b = 2" (identifier "DAT_0008043b") (= "=") (number_literal "2")) (; ";")) (expression_statement "DAT_00088e84 = FUN_00025210();" (assignment_expression "DAT_00088e84 = FUN_00025210()" (identifier "DAT_00088e84") (= "=") (call_expression "FUN_00025210()" (identifier "FUN_00025210") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar7 = (undefined4 *)xmalloc(8);" (assignment_expression "puVar7 = (undefined4 *)xmalloc(8)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)xmalloc(8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(8)" (identifier "xmalloc") (argument_list "(8)" (( "(") (number_literal "8") () ")"))))) (; ";")) (expression_statement "piVar13 = (int *)PTR_i386_optab_0007ff88;" (assignment_expression "piVar13 = (int *)PTR_i386_optab_0007ff88" (identifier "piVar13") (= "=") (cast_expression "(int *)PTR_i386_optab_0007ff88" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_i386_optab_0007ff88"))) (; ";")) (expression_statement "*puVar7 = PTR_i386_optab_0007ff88;" (assignment_expression "*puVar7 = PTR_i386_optab_0007ff88" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "PTR_i386_optab_0007ff88")) (; ";")) (do_statement "do {\n    __s1 = (char *)piVar13[0x16];\n    __s2 = (char *)*piVar13;\n    piVar13 = piVar13 + 0x16;\n    while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    __s1 = (char *)piVar13[0x16];\n    __s2 = (char *)*piVar13;\n    piVar13 = piVar13 + 0x16;\n    while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }\n  }" ({ "{") (expression_statement "__s1 = (char *)piVar13[0x16];" (assignment_expression "__s1 = (char *)piVar13[0x16]" (identifier "__s1") (= "=") (cast_expression "(char *)piVar13[0x16]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar13[0x16]" (identifier "piVar13") ([ "[") (number_literal "0x16") (] "]")))) (; ";")) (expression_statement "__s2 = (char *)*piVar13;" (assignment_expression "__s2 = (char *)*piVar13" (identifier "__s2") (= "=") (cast_expression "(char *)*piVar13" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")))) (; ";")) (expression_statement "piVar13 = piVar13 + 0x16;" (assignment_expression "piVar13 = piVar13 + 0x16" (identifier "piVar13") (= "=") (binary_expression "piVar13 + 0x16" (identifier "piVar13") (+ "+") (number_literal "0x16"))) (; ";")) (while_statement "while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }" (while "while") (parenthesized_expression "((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0)))" (( "(") (parenthesized_expression "(__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))" (( "(") (binary_expression "__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0)" (binary_expression "__s1 == (char *)0x0" (identifier "__s1") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (parenthesized_expression "(iVar8 = strcmp(__s1,__s2), iVar8 != 0)" (( "(") (comma_expression "iVar8 = strcmp(__s1,__s2), iVar8 != 0" (assignment_expression "iVar8 = strcmp(__s1,__s2)" (identifier "iVar8") (= "=") (call_expression "strcmp(__s1,__s2)" (identifier "strcmp") (argument_list "(__s1,__s2)" (( "(") (identifier "__s1") (, ",") (identifier "__s2") () ")")))) (, ",") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")")) (compound_statement "{\n      puVar7[1] = piVar13;\n      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);\n      if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }\n      if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }\n      puVar7 = (undefined4 *)xmalloc(8);\n      *puVar7 = piVar13;\n      __s2 = (char *)*piVar13;\n      __s1 = (char *)piVar13[0x16];\n      piVar13 = piVar13 + 0x16;\n    }" ({ "{") (expression_statement "puVar7[1] = piVar13;" (assignment_expression "puVar7[1] = piVar13" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "piVar13")) (; ";")) (expression_statement "iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);" (assignment_expression "iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7)" (identifier "iVar8") (= "=") (call_expression "FUN_00025260(DAT_00088e84,__s2,puVar7)" (identifier "FUN_00025260") (argument_list "(DAT_00088e84,__s2,puVar7)" (( "(") (identifier "DAT_00088e84") (, ",") (identifier "__s2") (, ",") (identifier "puVar7") () ")")))) (; ";")) (if_statement "if (iVar8 != 0) {\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar9 = piVar13[-0x16];\n        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n        FUN_0002be00(uVar11,iVar9,iVar8);\n      }" ({ "{") (expression_statement "iVar9 = piVar13[-0x16];" (assignment_expression "iVar9 = piVar13[-0x16]" (identifier "iVar9") (= "=") (subscript_expression "piVar13[-0x16]" (identifier "piVar13") ([ "[") (number_literal "-0x16") (] "]"))) (; ";")) (expression_statement "uVar11 = dcgettext(0,"can\'t hash %s: %s",5);" (assignment_expression "uVar11 = dcgettext(0,"can\'t hash %s: %s",5)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,"can\'t hash %s: %s",5)" (identifier "dcgettext") (argument_list "(0,"can\'t hash %s: %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""can\'t hash %s: %s"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t hash %s: %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002be00(uVar11,iVar9,iVar8);" (call_expression "FUN_0002be00(uVar11,iVar9,iVar8)" (identifier "FUN_0002be00") (argument_list "(uVar11,iVar9,iVar8)" (( "(") (identifier "uVar11") (, ",") (identifier "iVar9") (, ",") (identifier "iVar8") () ")"))) (; ";")) (} "}"))) (if_statement "if (*piVar13 == 0) {\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }" (if "if") (parenthesized_expression "(*piVar13 == 0)" (( "(") (binary_expression "*piVar13 == 0" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        DAT_00088e80 = FUN_00025210();\n        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;\n        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;\n        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }\n        puVar5 = PTR__sch_tolower_0007ffd0;\n        puVar4 = PTR__sch_istable_0007ff74;\n        iVar8 = 0;\n        do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);\n        DAT_0008914d = 0x2d;\n        pbVar12 = &DAT_0008055c;\n        DAT_0008954d = 0x2e2d;\n        DAT_0008957f = 0x5f;\n        DAT_0008927f = 0x5f;\n        DAT_0008924e = 0x2e;\n        bVar1 = DAT_0008055c;\n        while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }\n        if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }\n        DAT_00089af0 = 8;\n        DAT_00089b04 = 0xfffffffc;\n        return;\n      }" ({ "{") (expression_statement "DAT_00088e80 = FUN_00025210();" (assignment_expression "DAT_00088e80 = FUN_00025210()" (identifier "DAT_00088e80") (= "=") (call_expression "FUN_00025210()" (identifier "FUN_00025210") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;" (assignment_expression "iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1" (identifier "iVar8") (= "=") (binary_expression "*(int *)PTR_i386_regtab_size_0007ff4c + -1" (pointer_expression "*(int *)PTR_i386_regtab_size_0007ff4c" (* "*") (cast_expression "(int *)PTR_i386_regtab_size_0007ff4c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_i386_regtab_size_0007ff4c"))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;" (assignment_expression "puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)PTR_i386_regtab_0007ff5c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_i386_regtab_0007ff5c"))) (; ";")) (if_statement "if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }" (if "if") (parenthesized_expression "(*(int *)PTR_i386_regtab_size_0007ff4c != 0)" (( "(") (binary_expression "*(int *)PTR_i386_regtab_size_0007ff4c != 0" (pointer_expression "*(int *)PTR_i386_regtab_size_0007ff4c" (* "*") (cast_expression "(int *)PTR_i386_regtab_size_0007ff4c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_i386_regtab_size_0007ff4c"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);\n        }" ({ "{") (do_statement "do {\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          } while (iVar8 != -1);" (do "do") (compound_statement "{\n            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);\n            if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }\n            iVar8 = iVar8 + -1;\n            puVar7 = puVar7 + 4;\n          }" ({ "{") (expression_statement "iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);" (assignment_expression "iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7)" (identifier "iVar9") (= "=") (call_expression "FUN_00025260(DAT_00088e80,*puVar7,puVar7)" (identifier "FUN_00025260") (argument_list "(DAT_00088e80,*puVar7,puVar7)" (( "(") (identifier "DAT_00088e80") (, ",") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (, ",") (identifier "puVar7") () ")")))) (; ";")) (if_statement "if (iVar9 != 0) {\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar11 = *puVar7;\n              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);\n                    \n              FUN_0002be00(uVar10,uVar11,iVar9);\n            }" ({ "{") (expression_statement "uVar11 = *puVar7;" (assignment_expression "uVar11 = *puVar7" (identifier "uVar11") (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "uVar10 = dcgettext(0,"can\'t hash %s: %s",5);" (assignment_expression "uVar10 = dcgettext(0,"can\'t hash %s: %s",5)" (identifier "uVar10") (= "=") (call_expression "dcgettext(0,"can\'t hash %s: %s",5)" (identifier "dcgettext") (argument_list "(0,"can\'t hash %s: %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""can\'t hash %s: %s"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t hash %s: %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002be00(uVar10,uVar11,iVar9);" (call_expression "FUN_0002be00(uVar10,uVar11,iVar9)" (identifier "FUN_0002be00") (argument_list "(uVar10,uVar11,iVar9)" (( "(") (identifier "uVar10") (, ",") (identifier "uVar11") (, ",") (identifier "iVar9") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar7 = puVar7 + 4;" (assignment_expression "puVar7 = puVar7 + 4" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar8 != -1)" (( "(") (binary_expression "iVar8 != -1" (identifier "iVar8") (!= "!=") (number_literal "-1")) () ")")) (; ";")) (} "}"))) (expression_statement "puVar5 = PTR__sch_tolower_0007ffd0;" (assignment_expression "puVar5 = PTR__sch_tolower_0007ffd0" (identifier "puVar5") (= "=") (identifier "PTR__sch_tolower_0007ffd0")) (; ";")) (expression_statement "puVar4 = PTR__sch_istable_0007ff74;" (assignment_expression "puVar4 = PTR__sch_istable_0007ff74" (identifier "puVar4") (= "=") (identifier "PTR__sch_istable_0007ff74")) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        } while (iVar8 != 0x100);" (do "do") (compound_statement "{\n          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);\n          uVar6 = (undefined1)iVar8;\n          if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }\n          if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }\n          iVar8 = iVar8 + 1;\n        }" ({ "{") (expression_statement "uVar3 = *(ushort *)(puVar4 + iVar8 * 2);" (assignment_expression "uVar3 = *(ushort *)(puVar4 + iVar8 * 2)" (identifier "uVar3") (= "=") (pointer_expression "*(ushort *)(puVar4 + iVar8 * 2)" (* "*") (cast_expression "(ushort *)(puVar4 + iVar8 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + iVar8 * 2)" (( "(") (binary_expression "puVar4 + iVar8 * 2" (identifier "puVar4") (+ "+") (binary_expression "iVar8 * 2" (identifier "iVar8") (* "*") (number_literal "2"))) () ")"))))) (; ";")) (expression_statement "uVar6 = (undefined1)iVar8;" (assignment_expression "uVar6 = (undefined1)iVar8" (identifier "uVar6") (= "=") (cast_expression "(undefined1)iVar8" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "iVar8"))) (; ";")) (if_statement "if ((uVar3 & 4) == 0) {\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }" (if "if") (parenthesized_expression "((uVar3 & 4) == 0)" (( "(") (binary_expression "(uVar3 & 4) == 0" (parenthesized_expression "(uVar3 & 4)" (( "(") (binary_expression "uVar3 & 4" (identifier "uVar3") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }" ({ "{") (if_statement "if ((uVar3 & 8) == 0) {\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }\n            else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }" (if "if") (parenthesized_expression "((uVar3 & 8) == 0)" (( "(") (binary_expression "(uVar3 & 8) == 0" (parenthesized_expression "(uVar3 & 8)" (( "(") (binary_expression "uVar3 & 8" (identifier "uVar3") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }\n            }" ({ "{") (if_statement "if ((uVar3 & 0x80) == 0) {\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }\n              else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }" (if "if") (parenthesized_expression "((uVar3 & 0x80) == 0)" (( "(") (binary_expression "(uVar3 & 0x80) == 0" (parenthesized_expression "(uVar3 & 0x80)" (( "(") (binary_expression "uVar3 & 0x80" (identifier "uVar3") (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }\n              }" ({ "{") (if_statement "if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }" (if "if") (parenthesized_expression "((iVar8 - 0x7bU & 0xfffffffd) == 0)" (( "(") (binary_expression "(iVar8 - 0x7bU & 0xfffffffd) == 0" (parenthesized_expression "(iVar8 - 0x7bU & 0xfffffffd)" (( "(") (binary_expression "iVar8 - 0x7bU & 0xfffffffd" (binary_expression "iVar8 - 0x7bU" (identifier "iVar8") (- "-") (number_literal "0x7bU")) (& "&") (number_literal "0xfffffffd")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  (&DAT_00089520)[iVar8] = uVar6;\n                  (&DAT_00089320)[iVar8] = uVar6;\n                }" ({ "{") (expression_statement "(&DAT_00089520)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089520)[iVar8] = uVar6" (subscript_expression "(&DAT_00089520)[iVar8]" (parenthesized_expression "(&DAT_00089520)" (( "(") (pointer_expression "&DAT_00089520" (& "&") (identifier "DAT_00089520")) () ")")) ([ "[") (identifier "iVar8") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "(&DAT_00089320)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089320)[iVar8] = uVar6" (subscript_expression "(&DAT_00089320)[iVar8]" (parenthesized_expression "(&DAT_00089320)" (( "(") (pointer_expression "&DAT_00089320" (& "&") (identifier "DAT_00089320")) () ")")) ([ "[") (identifier "iVar8") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }" (else "else") (compound_statement "{\n                uVar2 = puVar5[iVar8];\n                (&DAT_00089320)[iVar8] = uVar6;\n                (&DAT_00089520)[iVar8] = uVar2;\n                (&DAT_00089420)[iVar8] = uVar2;\n              }" ({ "{") (expression_statement "uVar2 = puVar5[iVar8];" (assignment_expression "uVar2 = puVar5[iVar8]" (identifier "uVar2") (= "=") (subscript_expression "puVar5[iVar8]" (identifier "puVar5") ([ "[") (identifier "iVar8") (] "]"))) (; ";")) (expression_statement "(&DAT_00089320)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089320)[iVar8] = uVar6" (subscript_expression "(&DAT_00089320)[iVar8]" (parenthesized_expression "(&DAT_00089320)" (( "(") (pointer_expression "&DAT_00089320" (& "&") (identifier "DAT_00089320")) () ")")) ([ "[") (identifier "iVar8") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "(&DAT_00089520)[iVar8] = uVar2;" (assignment_expression "(&DAT_00089520)[iVar8] = uVar2" (subscript_expression "(&DAT_00089520)[iVar8]" (parenthesized_expression "(&DAT_00089520)" (( "(") (pointer_expression "&DAT_00089520" (& "&") (identifier "DAT_00089520")) () ")")) ([ "[") (identifier "iVar8") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "(&DAT_00089420)[iVar8] = uVar2;" (assignment_expression "(&DAT_00089420)[iVar8] = uVar2" (subscript_expression "(&DAT_00089420)[iVar8]" (parenthesized_expression "(&DAT_00089420)" (( "(") (pointer_expression "&DAT_00089420" (& "&") (identifier "DAT_00089420")) () ")")) ([ "[") (identifier "iVar8") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }" (else "else") (compound_statement "{\n              (&DAT_00089520)[iVar8] = uVar6;\n              (&DAT_00089420)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }" ({ "{") (expression_statement "(&DAT_00089520)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089520)[iVar8] = uVar6" (subscript_expression "(&DAT_00089520)[iVar8]" (parenthesized_expression "(&DAT_00089520)" (( "(") (pointer_expression "&DAT_00089520" (& "&") (identifier "DAT_00089520")) () ")")) ([ "[") (identifier "iVar8") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "(&DAT_00089420)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089420)[iVar8] = uVar6" (subscript_expression "(&DAT_00089420)[iVar8]" (parenthesized_expression "(&DAT_00089420)" (( "(") (pointer_expression "&DAT_00089420" (& "&") (identifier "DAT_00089420")) () ")")) ([ "[") (identifier "iVar8") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "(&DAT_00089320)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089320)[iVar8] = uVar6" (subscript_expression "(&DAT_00089320)[iVar8]" (parenthesized_expression "(&DAT_00089320)" (( "(") (pointer_expression "&DAT_00089320" (& "&") (identifier "DAT_00089320")) () ")")) ([ "[") (identifier "iVar8") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }" (else "else") (compound_statement "{\n            (&DAT_00089120)[iVar8] = uVar6;\n            (&DAT_00089520)[iVar8] = uVar6;\n            (&DAT_00089420)[iVar8] = uVar6;\n            (&DAT_00089320)[iVar8] = uVar6;\n          }" ({ "{") (expression_statement "(&DAT_00089120)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089120)[iVar8] = uVar6" (subscript_expression "(&DAT_00089120)[iVar8]" (parenthesized_expression "(&DAT_00089120)" (( "(") (pointer_expression "&DAT_00089120" (& "&") (identifier "DAT_00089120")) () ")")) ([ "[") (identifier "iVar8") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "(&DAT_00089520)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089520)[iVar8] = uVar6" (subscript_expression "(&DAT_00089520)[iVar8]" (parenthesized_expression "(&DAT_00089520)" (( "(") (pointer_expression "&DAT_00089520" (& "&") (identifier "DAT_00089520")) () ")")) ([ "[") (identifier "iVar8") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "(&DAT_00089420)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089420)[iVar8] = uVar6" (subscript_expression "(&DAT_00089420)[iVar8]" (parenthesized_expression "(&DAT_00089420)" (( "(") (pointer_expression "&DAT_00089420" (& "&") (identifier "DAT_00089420")) () ")")) ([ "[") (identifier "iVar8") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "(&DAT_00089320)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089320)[iVar8] = uVar6" (subscript_expression "(&DAT_00089320)[iVar8]" (parenthesized_expression "(&DAT_00089320)" (( "(") (pointer_expression "&DAT_00089320" (& "&") (identifier "DAT_00089320")) () ")")) ([ "[") (identifier "iVar8") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (} "}")))) (if_statement "if ((uVar3 & 0x8c) == 0) {\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }\n          else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }" (if "if") (parenthesized_expression "((uVar3 & 0x8c) == 0)" (( "(") (binary_expression "(uVar3 & 0x8c) == 0" (parenthesized_expression "(uVar3 & 0x8c)" (( "(") (binary_expression "uVar3 & 0x8c" (identifier "uVar3") (& "&") (number_literal "0x8c")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }\n          }" ({ "{") (if_statement "if (0x7f < iVar8) {\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }" (if "if") (parenthesized_expression "(0x7f < iVar8)" (( "(") (binary_expression "0x7f < iVar8" (number_literal "0x7f") (< "<") (identifier "iVar8")) () ")")) (compound_statement "{\n              (&DAT_00089220)[iVar8] = uVar6;\n              (&DAT_00089320)[iVar8] = uVar6;\n            }" ({ "{") (expression_statement "(&DAT_00089220)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089220)[iVar8] = uVar6" (subscript_expression "(&DAT_00089220)[iVar8]" (parenthesized_expression "(&DAT_00089220)" (( "(") (pointer_expression "&DAT_00089220" (& "&") (identifier "DAT_00089220")) () ")")) ([ "[") (identifier "iVar8") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "(&DAT_00089320)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089320)[iVar8] = uVar6" (subscript_expression "(&DAT_00089320)[iVar8]" (parenthesized_expression "(&DAT_00089320)" (( "(") (pointer_expression "&DAT_00089320" (& "&") (identifier "DAT_00089320")) () ")")) ([ "[") (identifier "iVar8") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            (&DAT_00089220)[iVar8] = uVar6;\n          }" (else "else") (compound_statement "{\n            (&DAT_00089220)[iVar8] = uVar6;\n          }" ({ "{") (expression_statement "(&DAT_00089220)[iVar8] = uVar6;" (assignment_expression "(&DAT_00089220)[iVar8] = uVar6" (subscript_expression "(&DAT_00089220)[iVar8]" (parenthesized_expression "(&DAT_00089220)" (( "(") (pointer_expression "&DAT_00089220" (& "&") (identifier "DAT_00089220")) () ")")) ([ "[") (identifier "iVar8") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (} "}")))) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar8 != 0x100)" (( "(") (binary_expression "iVar8 != 0x100" (identifier "iVar8") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (expression_statement "DAT_0008914d = 0x2d;" (assignment_expression "DAT_0008914d = 0x2d" (identifier "DAT_0008914d") (= "=") (number_literal "0x2d")) (; ";")) (expression_statement "pbVar12 = &DAT_0008055c;" (assignment_expression "pbVar12 = &DAT_0008055c" (identifier "pbVar12") (= "=") (pointer_expression "&DAT_0008055c" (& "&") (identifier "DAT_0008055c"))) (; ";")) (expression_statement "DAT_0008954d = 0x2e2d;" (assignment_expression "DAT_0008954d = 0x2e2d" (identifier "DAT_0008954d") (= "=") (number_literal "0x2e2d")) (; ";")) (expression_statement "DAT_0008957f = 0x5f;" (assignment_expression "DAT_0008957f = 0x5f" (identifier "DAT_0008957f") (= "=") (number_literal "0x5f")) (; ";")) (expression_statement "DAT_0008927f = 0x5f;" (assignment_expression "DAT_0008927f = 0x5f" (identifier "DAT_0008927f") (= "=") (number_literal "0x5f")) (; ";")) (expression_statement "DAT_0008924e = 0x2e;" (assignment_expression "DAT_0008924e = 0x2e" (identifier "DAT_0008924e") (= "=") (number_literal "0x2e")) (; ";")) (expression_statement "bVar1 = DAT_0008055c;" (assignment_expression "bVar1 = DAT_0008055c" (identifier "bVar1") (= "=") (identifier "DAT_0008055c")) (; ";")) (while_statement "while (bVar1 != 0) {\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }" (while "while") (parenthesized_expression "(bVar1 != 0)" (( "(") (binary_expression "bVar1 != 0" (identifier "bVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          pbVar12 = pbVar12 + 1;\n          (&DAT_00089320)[bVar1] = bVar1;\n          bVar1 = *pbVar12;\n        }" ({ "{") (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(&DAT_00089320)[bVar1] = bVar1;" (assignment_expression "(&DAT_00089320)[bVar1] = bVar1" (subscript_expression "(&DAT_00089320)[bVar1]" (parenthesized_expression "(&DAT_00089320)" (( "(") (pointer_expression "&DAT_00089320" (& "&") (identifier "DAT_00089320")) () ")")) ([ "[") (identifier "bVar1") (] "]")) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "bVar1 = *pbVar12;" (assignment_expression "bVar1 = *pbVar12" (identifier "bVar1") (= "=") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12"))) (; ";")) (} "}"))) (if_statement "if (DAT_00088f0c == 2) {\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }" (if "if") (parenthesized_expression "(DAT_00088f0c == 2)" (( "(") (binary_expression "DAT_00088f0c == 2" (identifier "DAT_00088f0c") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          DAT_00089af0 = 0x10;\n          DAT_00089b04 = 0xfffffff8;\n          return;\n        }" ({ "{") (expression_statement "DAT_00089af0 = 0x10;" (assignment_expression "DAT_00089af0 = 0x10" (identifier "DAT_00089af0") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "DAT_00089b04 = 0xfffffff8;" (assignment_expression "DAT_00089b04 = 0xfffffff8" (identifier "DAT_00089b04") (= "=") (number_literal "0xfffffff8")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "DAT_00089af0 = 8;" (assignment_expression "DAT_00089af0 = 8" (identifier "DAT_00089af0") (= "=") (number_literal "8")) (; ";")) (expression_statement "DAT_00089b04 = 0xfffffffc;" (assignment_expression "DAT_00089b04 = 0xfffffffc" (identifier "DAT_00089b04") (= "=") (number_literal "0xfffffffc")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar7 = (undefined4 *)xmalloc(8);" (assignment_expression "puVar7 = (undefined4 *)xmalloc(8)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)xmalloc(8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(8)" (identifier "xmalloc") (argument_list "(8)" (( "(") (number_literal "8") () ")"))))) (; ";")) (expression_statement "*puVar7 = piVar13;" (assignment_expression "*puVar7 = piVar13" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "piVar13")) (; ";")) (expression_statement "__s2 = (char *)*piVar13;" (assignment_expression "__s2 = (char *)*piVar13" (identifier "__s2") (= "=") (cast_expression "(char *)*piVar13" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")))) (; ";")) (expression_statement "__s1 = (char *)piVar13[0x16];" (assignment_expression "__s1 = (char *)piVar13[0x16]" (identifier "__s1") (= "=") (cast_expression "(char *)piVar13[0x16]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar13[0x16]" (identifier "piVar13") ([ "[") (number_literal "0x16") (] "]")))) (; ";")) (expression_statement "piVar13 = piVar13 + 0x16;" (assignment_expression "piVar13 = piVar13 + 0x16" (identifier "piVar13") (= "=") (binary_expression "piVar13 + 0x16" (identifier "piVar13") (+ "+") (number_literal "0x16"))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void function_1(void)

{
  type_1 var_13;
  char cVar2;
  type_2 var_12;
  type_3 uVar4;
  type_4 *var_11;
  type_4 *puVar6;
  char cVar7;
  type_3 *var_10;
  int var_6;
  char *var_4;
  char *pcVar11;
  int *var_3;
  
  lex_type[0x7b] = 2;
  op_hash = var_1();
  var_10 = (type_3 *)var_2(8);
  var_3 = (int *)PTR_i386_optab_0007ff88;
  *var_10 = PTR_i386_optab_0007ff88;
  do {
    var_4 = (char *)var_3[0x16];
    pcVar11 = (char *)*var_3;
    var_3 = var_3 + 0x16;
    while ((var_4 == (char *)0x0 || (var_6 = var_5(var_4,pcVar11), var_6 != 0))) {
      var_10[1] = var_3;
      var_4 = var_7(op_hash,pcVar11,var_10);
      if (var_4 != (char *)0x0) {
        var_6 = var_3[-0x16];
        pcVar11 = (char *)var_8(0,"can\'t hash %s: %s",5);
                    /* WARNING: Subroutine does not return */
        var_9(pcVar11,var_6,var_4);
      }
      if (*var_3 == 0) {
        reg_hash = var_1();
        var_6 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;
        var_10 = (type_3 *)PTR_i386_regtab_0007ff5c;
        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {
          do {
            var_4 = var_7(reg_hash,(char *)*var_10,var_10);
            if (var_4 != (char *)0x0) {
              uVar4 = *var_10;
              pcVar11 = (char *)var_8(0,"can\'t hash %s: %s",5);
                    /* WARNING: Subroutine does not return */
              var_9(pcVar11,uVar4,var_4);
            }
            var_6 = var_6 + -1;
            var_10 = var_10 + 4;
          } while (var_6 != -1);
        }
        puVar6 = PTR__sch_tolower_0007ffd0;
        var_11 = PTR__sch_istable_0007ff74;
        var_6 = 0;
        do {
          var_12 = *(type_2 *)(var_11 + var_6 * 2);
          cVar7 = (char)var_6;
          if ((var_12 & 4) == 0) {
            if ((var_12 & 8) == 0) {
              if ((var_12 & 0x80) == 0) {
                if ((var_6 - 0x7bU & 0xfffffffd) == 0) {
                  mnemonic_chars[var_6] = cVar7;
                  operand_chars[var_6] = cVar7;
                }
              }
              else {
                cVar2 = puVar6[var_6];
                operand_chars[var_6] = cVar7;
                mnemonic_chars[var_6] = cVar2;
                register_chars[var_6] = cVar2;
              }
            }
            else {
              mnemonic_chars[var_6] = cVar7;
              register_chars[var_6] = cVar7;
              operand_chars[var_6] = cVar7;
            }
          }
          else {
            digit_chars[var_6] = cVar7;
            mnemonic_chars[var_6] = cVar7;
            register_chars[var_6] = cVar7;
            operand_chars[var_6] = cVar7;
          }
          if ((var_12 & 0x8c) == 0) {
            if (0x7f < var_6) {
              identifier_chars[var_6] = cVar7;
              operand_chars[var_6] = cVar7;
            }
          }
          else {
            identifier_chars[var_6] = cVar7;
          }
          var_6 = var_6 + 1;
        } while (var_6 != 0x100);
        digit_chars[0x2d] = '-';
        var_4 = operand_special_chars;
        mnemonic_chars[0x2d] = '-';
        mnemonic_chars[0x2e] = '.';
        mnemonic_chars[0x5f] = '_';
        identifier_chars[0x5f] = '_';
        identifier_chars[0x2e] = '.';
        var_13 = operand_special_chars[0];
        while (var_13 != 0) {
          var_4 = (char *)((type_1 *)var_4 + 1);
          operand_chars[var_13] = var_13;
          var_13 = *var_4;
        }
        if (var_14 == var_15) {
          x86_dwarf2_return_column = 0x10;
          x86_cie_data_alignment = -8;
          return;
        }
        x86_dwarf2_return_column = 8;
        x86_cie_data_alignment = -4;
        return;
      }
      var_10 = (type_3 *)var_2(8);
      *var_10 = var_3;
      pcVar11 = (char *)*var_3;
      var_4 = (char *)var_3[0x16];
      var_3 = var_3 + 0x16;
    }
  } while( true );
}


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

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

void MASKED(void)

{
  byte bVar1;
  undefined1 uVar2;
  ushort uVar3;
  char *__s1;
  char *__s2;
  undefined *puVar4;
  undefined *puVar5;
  undefined1 uVar6;
  undefined4 *puVar7;
  int iVar8;
  int iVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  byte *pbVar12;
  int *piVar13;
  
  DAT_0008043b = 2;
  DAT_00088e84 = FUN_00025210();
  puVar7 = (undefined4 *)xmalloc(8);
  piVar13 = (int *)PTR_i386_optab_0007ff88;
  *puVar7 = PTR_i386_optab_0007ff88;
  do {
    __s1 = (char *)piVar13[0x16];
    __s2 = (char *)*piVar13;
    piVar13 = piVar13 + 0x16;
    while ((__s1 == (char *)0x0 || (iVar8 = strcmp(__s1,__s2), iVar8 != 0))) {
      puVar7[1] = piVar13;
      iVar8 = FUN_00025260(DAT_00088e84,__s2,puVar7);
      if (iVar8 != 0) {
        iVar9 = piVar13[-0x16];
        uVar11 = dcgettext(0,"can\'t hash %s: %s",5);
                    /* WARNING: Subroutine does not return */
        FUN_0002be00(uVar11,iVar9,iVar8);
      }
      if (*piVar13 == 0) {
        DAT_00088e80 = FUN_00025210();
        iVar8 = *(int *)PTR_i386_regtab_size_0007ff4c + -1;
        puVar7 = (undefined4 *)PTR_i386_regtab_0007ff5c;
        if (*(int *)PTR_i386_regtab_size_0007ff4c != 0) {
          do {
            iVar9 = FUN_00025260(DAT_00088e80,*puVar7,puVar7);
            if (iVar9 != 0) {
              uVar11 = *puVar7;
              uVar10 = dcgettext(0,"can\'t hash %s: %s",5);
                    /* WARNING: Subroutine does not return */
              FUN_0002be00(uVar10,uVar11,iVar9);
            }
            iVar8 = iVar8 + -1;
            puVar7 = puVar7 + 4;
          } while (iVar8 != -1);
        }
        puVar5 = PTR__sch_tolower_0007ffd0;
        puVar4 = PTR__sch_istable_0007ff74;
        iVar8 = 0;
        do {
          uVar3 = *(ushort *)(puVar4 + iVar8 * 2);
          uVar6 = (undefined1)iVar8;
          if ((uVar3 & 4) == 0) {
            if ((uVar3 & 8) == 0) {
              if ((uVar3 & 0x80) == 0) {
                if ((iVar8 - 0x7bU & 0xfffffffd) == 0) {
                  (&DAT_00089520)[iVar8] = uVar6;
                  (&DAT_00089320)[iVar8] = uVar6;
                }
              }
              else {
                uVar2 = puVar5[iVar8];
                (&DAT_00089320)[iVar8] = uVar6;
                (&DAT_00089520)[iVar8] = uVar2;
                (&DAT_00089420)[iVar8] = uVar2;
              }
            }
            else {
              (&DAT_00089520)[iVar8] = uVar6;
              (&DAT_00089420)[iVar8] = uVar6;
              (&DAT_00089320)[iVar8] = uVar6;
            }
          }
          else {
            (&DAT_00089120)[iVar8] = uVar6;
            (&DAT_00089520)[iVar8] = uVar6;
            (&DAT_00089420)[iVar8] = uVar6;
            (&DAT_00089320)[iVar8] = uVar6;
          }
          if ((uVar3 & 0x8c) == 0) {
            if (0x7f < iVar8) {
              (&DAT_00089220)[iVar8] = uVar6;
              (&DAT_00089320)[iVar8] = uVar6;
            }
          }
          else {
            (&DAT_00089220)[iVar8] = uVar6;
          }
          iVar8 = iVar8 + 1;
        } while (iVar8 != 0x100);
        DAT_0008914d = 0x2d;
        pbVar12 = &DAT_0008055c;
        DAT_0008954d = 0x2e2d;
        DAT_0008957f = 0x5f;
        DAT_0008927f = 0x5f;
        DAT_0008924e = 0x2e;
        bVar1 = DAT_0008055c;
        while (bVar1 != 0) {
          pbVar12 = pbVar12 + 1;
          (&DAT_00089320)[bVar1] = bVar1;
          bVar1 = *pbVar12;
        }
        if (DAT_00088f0c == 2) {
          DAT_00089af0 = 0x10;
          DAT_00089b04 = 0xfffffff8;
          return;
        }
        DAT_00089af0 = 8;
        DAT_00089b04 = 0xfffffffc;
        return;
      }
      puVar7 = (undefined4 *)xmalloc(8);
      *puVar7 = piVar13;
      __s2 = (char *)*piVar13;
      __s1 = (char *)piVar13[0x16];
      piVar13 = piVar13 + 0x16;
    }
  } while( true );
}

