
/* 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)

{
  undefined *puVar1;
  char *pcVar2;
  size_t sVar3;
  char *pcVar4;
  int iVar5;
  char *pcVar6;
  symbolS *psVar7;
  segT paVar8;
  uint uVar9;
  uint uVar10;
  undefined4 *puVar11;
  alpha_macro *val;
  char name [4];
  
  uVar9 = 0;
  alpha_opcode_hash = hash_new();
  puVar1 = PTR_alpha_opcodes_00077f94;
  uVar10 = *(uint *)PTR_alpha_num_opcodes_00077f6c;
  while (uVar9 < uVar10) {
    puVar11 = (undefined4 *)(puVar1 + uVar9 * 0x14);
    pcVar6 = (char *)*puVar11;
    pcVar2 = hash_insert(alpha_opcode_hash,pcVar6,puVar11);
    if (pcVar2 != (char *)0x0) {
      pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);
                    /* WARNING: Subroutine does not return */
      as_fatal(pcVar4,pcVar6,pcVar2);
    }
    pcVar2 = strchr(pcVar6,0x2f);
    if (pcVar2 != (char *)0x0) {
      sVar3 = strlen(pcVar6);
      pcVar4 = (char *)xmalloc(sVar3);
      memcpy(pcVar4,pcVar6,(int)pcVar2 - (int)pcVar6);
      strcpy(pcVar4 + ((int)pcVar2 - (int)pcVar6),pcVar2 + 1);
      hash_insert(alpha_opcode_hash,pcVar4,puVar11);
    }
    puVar11 = (undefined4 *)(puVar1 + uVar9 * 0x14 + 0x14);
    while( true ) {
      uVar9 = uVar9 + 1;
      if (uVar10 == uVar9) goto LAB_0004d270;
      if (((char *)*puVar11 != pcVar6) && (iVar5 = strcmp((char *)*puVar11,pcVar6), iVar5 != 0))
      break;
      puVar11 = puVar11 + 5;
    }
  }
LAB_0004d270:
  alpha_macro_hash = hash_new();
  uVar10 = 0;
  pcVar6 = "lda";
  do {
    pcVar2 = pcVar6;
    val = alpha_macros + uVar10;
    pcVar6 = hash_insert(alpha_macro_hash,pcVar2,val);
    if (pcVar6 != (char *)0x0) {
      pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);
                    /* WARNING: Subroutine does not return */
      as_fatal(pcVar4,pcVar2,pcVar6);
    }
    while( true ) {
      uVar10 = uVar10 + 1;
      if (0x34 < uVar10) {
        iVar5 = 0;
        uVar10 = 0;
        do {
          sprintf(name,"$%d",uVar10);
          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar10),&zero_address_frag);
          uVar9 = uVar10 + 1;
          iVar5 = iVar5 + (uint)(0xfffffffe < uVar10);
          alpha_register_table[uVar10] = psVar7;
          uVar10 = uVar9;
        } while (iVar5 != 0 || uVar9 != 0x20);
        do {
          sprintf(name,"$f%d",uVar9 - 0x20);
          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar9),&zero_address_frag);
          uVar10 = uVar9 + 1;
          iVar5 = iVar5 + (uint)(0xfffffffe < uVar9);
          alpha_register_table[uVar9] = psVar7;
          uVar9 = uVar10;
        } while (iVar5 != 0 || uVar10 != 0x40);
        bfd_set_gp_size(stdoutput,g_switch_value);
        if (0 < alpha_flag_mdebug) {
          paVar8 = subseg_new(".mdebug",0);
          bfd_set_section_flags(stdoutput,paVar8,0x108);
          paVar8->alignment_power = 3;
        }
        alpha_literal_hash = hash_new();
        subseg_set(text_section,0);
        return;
      }
      pcVar6 = val[1].name;
      if ((pcVar6 != pcVar2) && (iVar5 = strcmp(pcVar6,pcVar2), iVar5 != 0)) break;
      val = val + 1;
    }
  } while( true );
}



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

void FUN_0004d140(void)

{
  char *pcVar1;
  undefined *puVar2;
  int iVar3;
  char *pcVar4;
  size_t sVar5;
  void *__dest;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 *puVar9;
  undefined **ppuVar10;
  char local_21 [13];
  undefined4 uStack_14;
  
  uVar7 = 0;
  uStack_14 = 0x4d14b;
  DAT_00081264 = FUN_0002a970();
  puVar2 = PTR_alpha_opcodes_00077f94;
  uVar8 = *(uint *)PTR_alpha_num_opcodes_00077f6c;
  while (uVar7 < uVar8) {
    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);
    pcVar1 = (char *)*puVar9;
    iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);
    if (iVar3 != 0) {
      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);
                    /* WARNING: Subroutine does not return */
      FUN_000316c0(uVar6,pcVar1,iVar3);
    }
    pcVar4 = strchr(pcVar1,0x2f);
    if (pcVar4 != (char *)0x0) {
      sVar5 = strlen(pcVar1);
      __dest = (void *)xmalloc(sVar5);
      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);
      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);
      FUN_0002a9c0(DAT_00081264,__dest,puVar9);
    }
    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);
    while( true ) {
      uVar7 = uVar7 + 1;
      if (uVar8 == uVar7) goto LAB_0004d270;
      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))
      break;
      puVar9 = puVar9 + 5;
    }
  }
LAB_0004d270:
  DAT_00081260 = FUN_0002a970();
  uVar8 = 0;
  pcVar1 = "lda";
  do {
    pcVar4 = pcVar1;
    ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;
    iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);
    if (iVar3 != 0) {
      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);
                    /* WARNING: Subroutine does not return */
      FUN_000316c0(uVar6,pcVar4,iVar3);
    }
    while( true ) {
      uVar8 = uVar8 + 1;
      if (0x34 < uVar8) {
        iVar3 = 0;
        uVar8 = 0;
        do {
          sprintf(local_21,"$%d",uVar8);
          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);
          uVar7 = uVar8 + 1;
          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);
          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;
          uVar8 = uVar7;
        } while (iVar3 != 0 || uVar7 != 0x20);
        do {
          sprintf(local_21,"$f%d",uVar7 - 0x20);
          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);
          uVar8 = uVar7 + 1;
          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);
          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;
          uVar7 = uVar8;
        } while (iVar3 != 0 || uVar8 != 0x40);
        bfd_set_gp_size(DAT_00081544,DAT_0007850c);
        if (0 < DAT_00078510) {
          iVar3 = FUN_0003c230(".mdebug",0);
          bfd_set_section_flags(DAT_00081544,iVar3,0x108);
          *(undefined4 *)(iVar3 + 0x58) = 3;
        }
        DAT_0008112c = FUN_0002a970();
        FUN_0003c290(DAT_00081494,0);
        return;
      }
      pcVar1 = ppuVar10[0x13];
      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;
      ppuVar10 = ppuVar10 + 0x13;
    }
  } while( true );
}


PUSH EBP
XOR EBP,EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016070
ADD EBX,0x2aeb5
SUB ESP,0x3c
CALL 0x0002a970
MOV dword ptr [EBX + 0x9264],EAX
MOV EAX,dword ptr [EBX + 0xffffff6c]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [EBX + 0xffffff94]
MOV dword ptr [ESP + 0x10],EAX
LEA ESI,[ESI]
CMP dword ptr [ESP + 0x8],EBP
JBE 0x0004d270
MOV ESI,dword ptr [ESP + 0x10]
LEA EAX,[EBP + EBP*0x4]
SUB ESP,0x4
SHL EAX,0x2
ADD ESI,EAX
MOV dword ptr [ESP + 0x18],EAX
MOV EDI,dword ptr [ESI]
PUSH ESI
PUSH EDI
PUSH dword ptr [EBX + 0x9264]
CALL 0x0002a9c0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004d442
SUB ESP,0x8
PUSH 0x2f
PUSH EDI
CALL 0x00014470
ADD ESP,0x10
TEST EAX,EAX
MOV dword ptr [ESP + 0xc],EAX
JZ 0x0004d224
SUB ESP,0xc
PUSH EDI
CALL 0x00014480
MOV dword ptr [ESP],EAX
CALL 0x00014800
MOV EDX,dword ptr [ESP + 0x1c]
MOV ECX,EDX
MOV dword ptr [ESP + 0x2c],EDX
ADD ESP,0xc
SUB ECX,EDI
PUSH ECX
MOV dword ptr [ESP + 0x20],ECX
PUSH EDI
MOV dword ptr [ESP + 0x18],EAX
PUSH EAX
CALL 0x000140f0
POP EAX
POP EDX
MOV EDX,dword ptr [ESP + 0x24]
ADD EDX,0x1
PUSH EDX
MOV ECX,dword ptr [ESP + 0x24]
ADD ECX,dword ptr [ESP + 0x18]
PUSH ECX
CALL 0x00014350
ADD ESP,0xc
PUSH ESI
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [EBX + 0x9264]
CALL 0x0002a9c0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x14]
MOV ECX,dword ptr [ESP + 0x10]
ADD EBP,0x1
LEA ESI,[EAX + ECX*0x1 + 0x14]
CMP dword ptr [ESP + 0x8],EBP
JZ 0x0004d260
MOV EAX,dword ptr [ESI]
CMP EAX,EDI
JZ 0x0004d254
SUB ESP,0x8
PUSH EDI
PUSH EAX
CALL 0x00014090
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004d178
ADD ESI,0x14
ADD EBP,0x1
CMP dword ptr [ESP + 0x8],EBP
JNZ 0x0004d239
MOV EBP,dword ptr [ESP + 0x8]
CMP dword ptr [ESP + 0x8],EBP
JA 0x0004d182
NOP
CALL 0x0002a970
LEA ECX,[EBX + 0xffffdd40]
LEA EDI,[EBX + 0xfffe4c8f]
XOR EBP,EBP
MOV dword ptr [EBX + 0x9260],EAX
MOV dword ptr [ESP + 0xc],ECX
JMP 0x0004d298
MOV EAX,dword ptr [EBX + 0x9260]
MOV EDI,ECX
SUB ESP,0x4
IMUL ESI,EBP,0x4c
ADD ESI,dword ptr [ESP + 0x10]
PUSH ESI
PUSH EDI
PUSH EAX
CALL 0x0002a9c0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004d41c
ADD EBP,0x1
CMP EBP,0x34
JA 0x0004d2e8
MOV ECX,dword ptr [ESI + 0x4c]
CMP ECX,EDI
JZ 0x0004d2dd
SUB ESP,0x8
PUSH EDI
PUSH ECX
MOV dword ptr [ESP + 0x18],ECX
CALL 0x00014090
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JNZ 0x0004d290
ADD EBP,0x1
ADD ESI,0x4c
CMP EBP,0x34
JBE 0x0004d2bd
LEA EAX,[EBX + 0xfffe4ddf]
XOR ESI,ESI
LEA EBP,[ESP + 0x2b]
XOR EDI,EDI
MOV dword ptr [ESP + 0x14],EAX
LEA EAX,[EBX + 0x93a0]
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[EBX + 0x9410]
MOV dword ptr [ESP + 0xc],EAX
NOP
MOV dword ptr [ESP + 0x10],ESI
SUB ESP,0x4
PUSH ESI
PUSH dword ptr [ESP + 0x1c]
PUSH EBP
CALL 0x000146d0
POP ECX
PUSH dword ptr [ESP + 0x14]
PUSH EDI
PUSH ESI
MOV EAX,dword ptr [ESP + 0x24]
PUSH dword ptr [EAX]
PUSH EBP
CALL 0x0003e2a0
MOV EDX,dword ptr [ESP + 0x30]
ADD ESI,0x1
ADC EDI,0x0
ADD ESP,0x20
MOV dword ptr [EBX + EDX*0x4 + 0x9160],EAX
MOV EAX,ESI
MOV EDX,EDI
XOR EAX,0x20
OR EDX,EAX
JNZ 0x0004d310
LEA EAX,[EBX + 0xfffe4de3]
MOV dword ptr [ESP + 0x14],EAX
NOP
SUB ESP,0x4
LEA EAX,[ESI + -0x20]
MOV dword ptr [ESP + 0x14],ESI
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
PUSH EBP
CALL 0x000146d0
POP EDX
PUSH dword ptr [ESP + 0x14]
PUSH EDI
PUSH ESI
MOV EAX,dword ptr [ESP + 0x24]
PUSH dword ptr [EAX]
PUSH EBP
CALL 0x0003e2a0
MOV EDX,dword ptr [ESP + 0x30]
ADD ESI,0x1
ADC EDI,0x0
ADD ESP,0x20
MOV dword ptr [EBX + EDX*0x4 + 0x9160],EAX
MOV EAX,ESI
MOV EDX,EDI
XOR EAX,0x40
OR EDX,EAX
JNZ 0x0004d360
LEA ESI,[EBX + 0x9544]
SUB ESP,0x8
PUSH dword ptr [EBX + 0x50c]
PUSH dword ptr [ESI]
CALL 0x000145b0
MOV EAX,dword ptr [EBX + 0x510]
ADD ESP,0x10
TEST EAX,EAX
JLE 0x0004d3f7
SUB ESP,0x8
LEA EAX,[EBX + 0xfffe4c56]
PUSH 0x0
PUSH EAX
CALL 0x0003c230
ADD ESP,0xc
PUSH 0x108
MOV EDI,EAX
PUSH EAX
PUSH dword ptr [ESI]
CALL 0x00014750
MOV dword ptr [EDI + 0x58],0x3
ADD ESP,0x10
CALL 0x0002a970
SUB ESP,0x8
MOV dword ptr [EBX + 0x912c],EAX
LEA EAX,[EBX + 0x9494]
PUSH 0x0
PUSH dword ptr [EAX]
CALL 0x0003c290
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [ESP + 0x8],EAX
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe55c4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141e0
ADD ESP,0xc
MOV ECX,dword ptr [ESP + 0xc]
PUSH ECX
PUSH EDI
PUSH EAX
CALL 0x000316c0
MOV dword ptr [ESP + 0x8],EAX
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe5598]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141e0
ADD ESP,0xc
MOV EDX,dword ptr [ESP + 0xc]
PUSH EDX
PUSH EDI
PUSH EAX
CALL 0x000316c0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0004d140(void)\n\n{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  size_t sVar5;\n  void *__dest;\n  undefined4 uVar6;\n  uint uVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  undefined **ppuVar10;\n  char local_21 [13];\n  undefined4 uStack_14;\n  \n  uVar7 = 0;\n  uStack_14 = 0x4d14b;\n  DAT_00081264 = FUN_0002a970();\n  puVar2 = PTR_alpha_opcodes_00077f94;\n  uVar8 = *(uint *)PTR_alpha_num_opcodes_00077f6c;\n  while (uVar7 < uVar8) {\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);\n    pcVar1 = (char *)*puVar9;\n    iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }\n    pcVar4 = strchr(pcVar1,0x2f);\n    if (pcVar4 != (char *)0x0) {\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);\n    while( true ) {\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }\n  }\nLAB_0004d270:\n  DAT_00081260 = FUN_0002a970();\n  uVar8 = 0;\n  pcVar1 = "lda";\n  do {\n    pcVar4 = pcVar1;\n    ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;\n    iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }\n    while( true ) {\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }\n  } while( true );\n}\n\n" comment (function_definition "void FUN_0004d140(void)\n\n{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  size_t sVar5;\n  void *__dest;\n  undefined4 uVar6;\n  uint uVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  undefined **ppuVar10;\n  char local_21 [13];\n  undefined4 uStack_14;\n  \n  uVar7 = 0;\n  uStack_14 = 0x4d14b;\n  DAT_00081264 = FUN_0002a970();\n  puVar2 = PTR_alpha_opcodes_00077f94;\n  uVar8 = *(uint *)PTR_alpha_num_opcodes_00077f6c;\n  while (uVar7 < uVar8) {\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);\n    pcVar1 = (char *)*puVar9;\n    iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }\n    pcVar4 = strchr(pcVar1,0x2f);\n    if (pcVar4 != (char *)0x0) {\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);\n    while( true ) {\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }\n  }\nLAB_0004d270:\n  DAT_00081260 = FUN_0002a970();\n  uVar8 = 0;\n  pcVar1 = "lda";\n  do {\n    pcVar4 = pcVar1;\n    ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;\n    iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }\n    while( true ) {\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_0004d140(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  size_t sVar5;\n  void *__dest;\n  undefined4 uVar6;\n  uint uVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  undefined **ppuVar10;\n  char local_21 [13];\n  undefined4 uStack_14;\n  \n  uVar7 = 0;\n  uStack_14 = 0x4d14b;\n  DAT_00081264 = FUN_0002a970();\n  puVar2 = PTR_alpha_opcodes_00077f94;\n  uVar8 = *(uint *)PTR_alpha_num_opcodes_00077f6c;\n  while (uVar7 < uVar8) {\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);\n    pcVar1 = (char *)*puVar9;\n    iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }\n    pcVar4 = strchr(pcVar1,0x2f);\n    if (pcVar4 != (char *)0x0) {\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);\n    while( true ) {\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }\n  }\nLAB_0004d270:\n  DAT_00081260 = FUN_0002a970();\n  uVar8 = 0;\n  pcVar1 = "lda";\n  do {\n    pcVar4 = pcVar1;\n    ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;\n    iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }\n    while( true ) {\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }\n  } while( true );\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined **ppuVar10;" type_identifier (pointer_declarator "**ppuVar10" * (pointer_declarator "*ppuVar10" * identifier)) ;) (declaration "char local_21 [13];" primitive_type (array_declarator "local_21 [13]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x4d14b;" (assignment_expression "uStack_14 = 0x4d14b" identifier = number_literal) ;) (expression_statement "DAT_00081264 = FUN_0002a970();" (assignment_expression "DAT_00081264 = FUN_0002a970()" identifier = (call_expression "FUN_0002a970()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar2 = PTR_alpha_opcodes_00077f94;" (assignment_expression "puVar2 = PTR_alpha_opcodes_00077f94" identifier = identifier) ;) (expression_statement "uVar8 = *(uint *)PTR_alpha_num_opcodes_00077f6c;" (assignment_expression "uVar8 = *(uint *)PTR_alpha_num_opcodes_00077f6c" identifier = (pointer_expression "*(uint *)PTR_alpha_num_opcodes_00077f6c" * (cast_expression "(uint *)PTR_alpha_num_opcodes_00077f6c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (while_statement "while (uVar7 < uVar8) {\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);\n    pcVar1 = (char *)*puVar9;\n    iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }\n    pcVar4 = strchr(pcVar1,0x2f);\n    if (pcVar4 != (char *)0x0) {\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);\n    while( true ) {\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }\n  }" while (parenthesized_expression "(uVar7 < uVar8)" ( (binary_expression "uVar7 < uVar8" identifier < identifier) )) (compound_statement "{\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);\n    pcVar1 = (char *)*puVar9;\n    iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }\n    pcVar4 = strchr(pcVar1,0x2f);\n    if (pcVar4 != (char *)0x0) {\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);\n    while( true ) {\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }\n  }" { (expression_statement "puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);" (assignment_expression "puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14)" identifier = (cast_expression "(undefined4 *)(puVar2 + uVar7 * 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + uVar7 * 0x14)" ( (binary_expression "puVar2 + uVar7 * 0x14" identifier + (binary_expression "uVar7 * 0x14" identifier * number_literal)) )))) ;) (expression_statement "pcVar1 = (char *)*puVar9;" (assignment_expression "pcVar1 = (char *)*puVar9" identifier = (cast_expression "(char *)*puVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) (expression_statement "iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);" (assignment_expression "iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9)" identifier = (call_expression "FUN_0002a9c0(DAT_00081264,pcVar1,puVar9)" identifier (argument_list "(DAT_00081264,pcVar1,puVar9)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }" { (expression_statement "uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);" (assignment_expression "uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5)" identifier = (call_expression "dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5)" identifier (argument_list "(0,"internal error: can\'t hash opcode `%s\': %s",5)" ( number_literal , (string_literal ""internal error: can\'t hash opcode `%s\': %s"" " string_content escape_sequence string_content escape_sequence string_content ") , number_literal )))) ;) comment (expression_statement "FUN_000316c0(uVar6,pcVar1,iVar3);" (call_expression "FUN_000316c0(uVar6,pcVar1,iVar3)" identifier (argument_list "(uVar6,pcVar1,iVar3)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pcVar4 = strchr(pcVar1,0x2f);" (assignment_expression "pcVar4 = strchr(pcVar1,0x2f)" identifier = (call_expression "strchr(pcVar1,0x2f)" identifier (argument_list "(pcVar1,0x2f)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar4 != (char *)0x0) {\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }" if (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }" { (expression_statement "sVar5 = strlen(pcVar1);" (assignment_expression "sVar5 = strlen(pcVar1)" identifier = (call_expression "strlen(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier )))) ;) (expression_statement "__dest = (void *)xmalloc(sVar5);" (assignment_expression "__dest = (void *)xmalloc(sVar5)" identifier = (cast_expression "(void *)xmalloc(sVar5)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar5)" identifier (argument_list "(sVar5)" ( identifier ))))) ;) (expression_statement "memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);" (call_expression "memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1)" identifier (argument_list "(__dest,pcVar1,(int)pcVar4 - (int)pcVar1)" ( identifier , identifier , (binary_expression "(int)pcVar4 - (int)pcVar1" (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);" (call_expression "strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1)" identifier (argument_list "((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1)" ( (cast_expression "(char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)pcVar4 - (int)pcVar1) + (int)__dest)" ( (binary_expression "((int)pcVar4 - (int)pcVar1) + (int)__dest" (parenthesized_expression "((int)pcVar4 - (int)pcVar1)" ( (binary_expression "(int)pcVar4 - (int)pcVar1" (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , (binary_expression "pcVar4 + 1" identifier + number_literal) ))) ;) (expression_statement "FUN_0002a9c0(DAT_00081264,__dest,puVar9);" (call_expression "FUN_0002a9c0(DAT_00081264,__dest,puVar9)" identifier (argument_list "(DAT_00081264,__dest,puVar9)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);" (assignment_expression "puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14)" identifier = (cast_expression "(undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + uVar7 * 0x14 + 0x14)" ( (binary_expression "puVar2 + uVar7 * 0x14 + 0x14" (binary_expression "puVar2 + uVar7 * 0x14" identifier + (binary_expression "uVar7 * 0x14" identifier * number_literal)) + number_literal) )))) ;) (while_statement "while( true ) {\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }" { (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (if_statement "if (uVar8 == uVar7) goto LAB_0004d270;" if (parenthesized_expression "(uVar8 == uVar7)" ( (binary_expression "uVar8 == uVar7" identifier == identifier) )) (goto_statement "goto LAB_0004d270;" goto statement_identifier ;)) (if_statement "if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;" if (parenthesized_expression "(((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))" ( (binary_expression "((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0)" (parenthesized_expression "((char *)*puVar9 != pcVar1)" ( (binary_expression "(char *)*puVar9 != pcVar1" (cast_expression "(char *)*puVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier)) != identifier) )) && (parenthesized_expression "(iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0)" ( (comma_expression "iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0" (assignment_expression "iVar3 = strcmp((char *)*puVar9,pcVar1)" identifier = (call_expression "strcmp((char *)*puVar9,pcVar1)" identifier (argument_list "((char *)*puVar9,pcVar1)" ( (cast_expression "(char *)*puVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier)) , identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "puVar9 = puVar9 + 5;" (assignment_expression "puVar9 = puVar9 + 5" identifier = (binary_expression "puVar9 + 5" identifier + number_literal)) ;) })) })) (labeled_statement "LAB_0004d270:\n  DAT_00081260 = FUN_0002a970();" statement_identifier : (expression_statement "DAT_00081260 = FUN_0002a970();" (assignment_expression "DAT_00081260 = FUN_0002a970()" identifier = (call_expression "FUN_0002a970()" identifier (argument_list "()" ( )))) ;)) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "pcVar1 = "lda";" (assignment_expression "pcVar1 = "lda"" identifier = (string_literal ""lda"" " string_content ")) ;) (do_statement "do {\n    pcVar4 = pcVar1;\n    ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;\n    iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }\n    while( true ) {\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }\n  } while( true );" do (compound_statement "{\n    pcVar4 = pcVar1;\n    ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;\n    iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }\n    while( true ) {\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }\n  }" { (expression_statement "pcVar4 = pcVar1;" (assignment_expression "pcVar4 = pcVar1" identifier = identifier) ;) (expression_statement "ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;" (assignment_expression "ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13" identifier = (binary_expression "&PTR_DAT_00075d40 + uVar8 * 0x13" (pointer_expression "&PTR_DAT_00075d40" & identifier) + (binary_expression "uVar8 * 0x13" identifier * number_literal))) ;) (expression_statement "iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);" (assignment_expression "iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10)" identifier = (call_expression "FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10)" identifier (argument_list "(DAT_00081260,pcVar4,ppuVar10)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }" { (expression_statement "uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);" (assignment_expression "uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5)" identifier = (call_expression "dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5)" identifier (argument_list "(0,"internal error: can\'t hash macro `%s\': %s",5)" ( number_literal , (string_literal ""internal error: can\'t hash macro `%s\': %s"" " string_content escape_sequence string_content escape_sequence string_content ") , number_literal )))) ;) comment (expression_statement "FUN_000316c0(uVar6,pcVar4,iVar3);" (call_expression "FUN_000316c0(uVar6,pcVar4,iVar3)" identifier (argument_list "(uVar6,pcVar4,iVar3)" ( identifier , identifier , identifier ))) ;) })) (while_statement "while( true ) {\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }" { (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (if_statement "if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }" if (parenthesized_expression "(0x34 < uVar8)" ( (binary_expression "0x34 < uVar8" number_literal < identifier) )) (compound_statement "{\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);" do (compound_statement "{\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        }" { (expression_statement "sprintf(local_21,"$%d",uVar8);" (call_expression "sprintf(local_21,"$%d",uVar8)" identifier (argument_list "(local_21,"$%d",uVar8)" ( identifier , (string_literal ""$%d"" " string_content ") , identifier ))) ;) (expression_statement "uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);" (assignment_expression "uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0)" identifier = (call_expression "FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0)" identifier (argument_list "(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0)" ( identifier , identifier , identifier , identifier , (pointer_expression "&DAT_000813a0" & identifier) )))) ;) (expression_statement "uVar7 = uVar8 + 1;" (assignment_expression "uVar7 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);" (assignment_expression "iVar3 = iVar3 + (uint)(0xfffffffe < uVar8)" identifier = (binary_expression "iVar3 + (uint)(0xfffffffe < uVar8)" identifier + (call_expression "(uint)(0xfffffffe < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffe < uVar8)" ( (binary_expression "0xfffffffe < uVar8" number_literal < identifier) ))))) ;) (expression_statement "*(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;" (assignment_expression "*(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6" (pointer_expression "*(undefined4 *)(&DAT_00081160 + uVar8 * 4)" * (cast_expression "(undefined4 *)(&DAT_00081160 + uVar8 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00081160 + uVar8 * 4)" ( (binary_expression "&DAT_00081160 + uVar8 * 4" (pointer_expression "&DAT_00081160" & identifier) + (binary_expression "uVar8 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" identifier = identifier) ;) }) while (parenthesized_expression "(iVar3 != 0 || uVar7 != 0x20)" ( (binary_expression "iVar3 != 0 || uVar7 != 0x20" (binary_expression "iVar3 != 0" identifier != number_literal) || (binary_expression "uVar7 != 0x20" identifier != number_literal)) )) ;) (do_statement "do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);" do (compound_statement "{\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        }" { (expression_statement "sprintf(local_21,"$f%d",uVar7 - 0x20);" (call_expression "sprintf(local_21,"$f%d",uVar7 - 0x20)" identifier (argument_list "(local_21,"$f%d",uVar7 - 0x20)" ( identifier , (string_literal ""$f%d"" " string_content ") , (binary_expression "uVar7 - 0x20" identifier - number_literal) ))) ;) (expression_statement "uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);" (assignment_expression "uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0)" identifier = (call_expression "FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0)" identifier (argument_list "(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0)" ( identifier , identifier , identifier , identifier , (pointer_expression "&DAT_000813a0" & identifier) )))) ;) (expression_statement "uVar8 = uVar7 + 1;" (assignment_expression "uVar8 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);" (assignment_expression "iVar3 = iVar3 + (uint)(0xfffffffe < uVar7)" identifier = (binary_expression "iVar3 + (uint)(0xfffffffe < uVar7)" identifier + (call_expression "(uint)(0xfffffffe < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffe < uVar7)" ( (binary_expression "0xfffffffe < uVar7" number_literal < identifier) ))))) ;) (expression_statement "*(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;" (assignment_expression "*(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6" (pointer_expression "*(undefined4 *)(&DAT_00081160 + uVar7 * 4)" * (cast_expression "(undefined4 *)(&DAT_00081160 + uVar7 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00081160 + uVar7 * 4)" ( (binary_expression "&DAT_00081160 + uVar7 * 4" (pointer_expression "&DAT_00081160" & identifier) + (binary_expression "uVar7 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "uVar7 = uVar8;" (assignment_expression "uVar7 = uVar8" identifier = identifier) ;) }) while (parenthesized_expression "(iVar3 != 0 || uVar8 != 0x40)" ( (binary_expression "iVar3 != 0 || uVar8 != 0x40" (binary_expression "iVar3 != 0" identifier != number_literal) || (binary_expression "uVar8 != 0x40" identifier != number_literal)) )) ;) (expression_statement "bfd_set_gp_size(DAT_00081544,DAT_0007850c);" (call_expression "bfd_set_gp_size(DAT_00081544,DAT_0007850c)" identifier (argument_list "(DAT_00081544,DAT_0007850c)" ( identifier , identifier ))) ;) (if_statement "if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }" if (parenthesized_expression "(0 < DAT_00078510)" ( (binary_expression "0 < DAT_00078510" number_literal < identifier) )) (compound_statement "{\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }" { (expression_statement "iVar3 = FUN_0003c230(".mdebug",0);" (assignment_expression "iVar3 = FUN_0003c230(".mdebug",0)" identifier = (call_expression "FUN_0003c230(".mdebug",0)" identifier (argument_list "(".mdebug",0)" ( (string_literal "".mdebug"" " string_content ") , number_literal )))) ;) (expression_statement "bfd_set_section_flags(DAT_00081544,iVar3,0x108);" (call_expression "bfd_set_section_flags(DAT_00081544,iVar3,0x108)" identifier (argument_list "(DAT_00081544,iVar3,0x108)" ( identifier , identifier , number_literal ))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x58) = 3;" (assignment_expression "*(undefined4 *)(iVar3 + 0x58) = 3" (pointer_expression "*(undefined4 *)(iVar3 + 0x58)" * (cast_expression "(undefined4 *)(iVar3 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "DAT_0008112c = FUN_0002a970();" (assignment_expression "DAT_0008112c = FUN_0002a970()" identifier = (call_expression "FUN_0002a970()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0003c290(DAT_00081494,0);" (call_expression "FUN_0003c290(DAT_00081494,0)" identifier (argument_list "(DAT_00081494,0)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar1 = ppuVar10[0x13];" (assignment_expression "pcVar1 = ppuVar10[0x13]" identifier = (subscript_expression "ppuVar10[0x13]" identifier [ number_literal ])) ;) (if_statement "if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;" if (parenthesized_expression "((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0))" ( (binary_expression "(pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)" (parenthesized_expression "(pcVar1 != pcVar4)" ( (binary_expression "pcVar1 != pcVar4" identifier != identifier) )) && (parenthesized_expression "(iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)" ( (comma_expression "iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0" (assignment_expression "iVar3 = strcmp(pcVar1,pcVar4)" identifier = (call_expression "strcmp(pcVar1,pcVar4)" identifier (argument_list "(pcVar1,pcVar4)" ( identifier , identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = ppuVar10 + 0x13;" (assignment_expression "ppuVar10 = ppuVar10 + 0x13" identifier = (binary_expression "ppuVar10 + 0x13" 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  undefined *puVar1;\n  char *pcVar2;\n  size_t sVar3;\n  char *pcVar4;\n  int iVar5;\n  char *pcVar6;\n  symbolS *psVar7;\n  segT paVar8;\n  uint uVar9;\n  uint uVar10;\n  undefined4 *puVar11;\n  alpha_macro *val;\n  char name [4];\n  \n  uVar9 = 0;\n  alpha_opcode_hash = hash_new();\n  puVar1 = PTR_alpha_opcodes_00077f94;\n  uVar10 = *(uint *)PTR_alpha_num_opcodes_00077f6c;\n  while (uVar9 < uVar10) {\n    puVar11 = (undefined4 *)(puVar1 + uVar9 * 0x14);\n    pcVar6 = (char *)*puVar11;\n    pcVar2 = hash_insert(alpha_opcode_hash,pcVar6,puVar11);\n    if (pcVar2 != (char *)0x0) {\n      pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar4,pcVar6,pcVar2);\n    }\n    pcVar2 = strchr(pcVar6,0x2f);\n    if (pcVar2 != (char *)0x0) {\n      sVar3 = strlen(pcVar6);\n      pcVar4 = (char *)xmalloc(sVar3);\n      memcpy(pcVar4,pcVar6,(int)pcVar2 - (int)pcVar6);\n      strcpy(pcVar4 + ((int)pcVar2 - (int)pcVar6),pcVar2 + 1);\n      hash_insert(alpha_opcode_hash,pcVar4,puVar11);\n    }\n    puVar11 = (undefined4 *)(puVar1 + uVar9 * 0x14 + 0x14);\n    while( true ) {\n      uVar9 = uVar9 + 1;\n      if (uVar10 == uVar9) goto LAB_0004d270;\n      if (((char *)*puVar11 != pcVar6) && (iVar5 = strcmp((char *)*puVar11,pcVar6), iVar5 != 0))\n      break;\n      puVar11 = puVar11 + 5;\n    }\n  }\nLAB_0004d270:\n  alpha_macro_hash = hash_new();\n  uVar10 = 0;\n  pcVar6 = "lda";\n  do {\n    pcVar2 = pcVar6;\n    val = alpha_macros + uVar10;\n    pcVar6 = hash_insert(alpha_macro_hash,pcVar2,val);\n    if (pcVar6 != (char *)0x0) {\n      pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar4,pcVar2,pcVar6);\n    }\n    while( true ) {\n      uVar10 = uVar10 + 1;\n      if (0x34 < uVar10) {\n        iVar5 = 0;\n        uVar10 = 0;\n        do {\n          sprintf(name,"$%d",uVar10);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar10),&zero_address_frag);\n          uVar9 = uVar10 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar10);\n          alpha_register_table[uVar10] = psVar7;\n          uVar10 = uVar9;\n        } while (iVar5 != 0 || uVar9 != 0x20);\n        do {\n          sprintf(name,"$f%d",uVar9 - 0x20);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar9),&zero_address_frag);\n          uVar10 = uVar9 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar9);\n          alpha_register_table[uVar9] = psVar7;\n          uVar9 = uVar10;\n        } while (iVar5 != 0 || uVar10 != 0x40);\n        bfd_set_gp_size(stdoutput,g_switch_value);\n        if (0 < alpha_flag_mdebug) {\n          paVar8 = subseg_new(".mdebug",0);\n          bfd_set_section_flags(stdoutput,paVar8,0x108);\n          paVar8->alignment_power = 3;\n        }\n        alpha_literal_hash = hash_new();\n        subseg_set(text_section,0);\n        return;\n      }\n      pcVar6 = val[1].name;\n      if ((pcVar6 != pcVar2) && (iVar5 = strcmp(pcVar6,pcVar2), iVar5 != 0)) break;\n      val = val + 1;\n    }\n  } while( true );\n}\n\n" comment comment (function_definition "void md_begin(void)\n\n{\n  undefined *puVar1;\n  char *pcVar2;\n  size_t sVar3;\n  char *pcVar4;\n  int iVar5;\n  char *pcVar6;\n  symbolS *psVar7;\n  segT paVar8;\n  uint uVar9;\n  uint uVar10;\n  undefined4 *puVar11;\n  alpha_macro *val;\n  char name [4];\n  \n  uVar9 = 0;\n  alpha_opcode_hash = hash_new();\n  puVar1 = PTR_alpha_opcodes_00077f94;\n  uVar10 = *(uint *)PTR_alpha_num_opcodes_00077f6c;\n  while (uVar9 < uVar10) {\n    puVar11 = (undefined4 *)(puVar1 + uVar9 * 0x14);\n    pcVar6 = (char *)*puVar11;\n    pcVar2 = hash_insert(alpha_opcode_hash,pcVar6,puVar11);\n    if (pcVar2 != (char *)0x0) {\n      pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar4,pcVar6,pcVar2);\n    }\n    pcVar2 = strchr(pcVar6,0x2f);\n    if (pcVar2 != (char *)0x0) {\n      sVar3 = strlen(pcVar6);\n      pcVar4 = (char *)xmalloc(sVar3);\n      memcpy(pcVar4,pcVar6,(int)pcVar2 - (int)pcVar6);\n      strcpy(pcVar4 + ((int)pcVar2 - (int)pcVar6),pcVar2 + 1);\n      hash_insert(alpha_opcode_hash,pcVar4,puVar11);\n    }\n    puVar11 = (undefined4 *)(puVar1 + uVar9 * 0x14 + 0x14);\n    while( true ) {\n      uVar9 = uVar9 + 1;\n      if (uVar10 == uVar9) goto LAB_0004d270;\n      if (((char *)*puVar11 != pcVar6) && (iVar5 = strcmp((char *)*puVar11,pcVar6), iVar5 != 0))\n      break;\n      puVar11 = puVar11 + 5;\n    }\n  }\nLAB_0004d270:\n  alpha_macro_hash = hash_new();\n  uVar10 = 0;\n  pcVar6 = "lda";\n  do {\n    pcVar2 = pcVar6;\n    val = alpha_macros + uVar10;\n    pcVar6 = hash_insert(alpha_macro_hash,pcVar2,val);\n    if (pcVar6 != (char *)0x0) {\n      pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar4,pcVar2,pcVar6);\n    }\n    while( true ) {\n      uVar10 = uVar10 + 1;\n      if (0x34 < uVar10) {\n        iVar5 = 0;\n        uVar10 = 0;\n        do {\n          sprintf(name,"$%d",uVar10);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar10),&zero_address_frag);\n          uVar9 = uVar10 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar10);\n          alpha_register_table[uVar10] = psVar7;\n          uVar10 = uVar9;\n        } while (iVar5 != 0 || uVar9 != 0x20);\n        do {\n          sprintf(name,"$f%d",uVar9 - 0x20);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar9),&zero_address_frag);\n          uVar10 = uVar9 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar9);\n          alpha_register_table[uVar9] = psVar7;\n          uVar9 = uVar10;\n        } while (iVar5 != 0 || uVar10 != 0x40);\n        bfd_set_gp_size(stdoutput,g_switch_value);\n        if (0 < alpha_flag_mdebug) {\n          paVar8 = subseg_new(".mdebug",0);\n          bfd_set_section_flags(stdoutput,paVar8,0x108);\n          paVar8->alignment_power = 3;\n        }\n        alpha_literal_hash = hash_new();\n        subseg_set(text_section,0);\n        return;\n      }\n      pcVar6 = val[1].name;\n      if ((pcVar6 != pcVar2) && (iVar5 = strcmp(pcVar6,pcVar2), iVar5 != 0)) break;\n      val = val + 1;\n    }\n  } while( true );\n}" primitive_type (function_declarator "md_begin(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined *puVar1;\n  char *pcVar2;\n  size_t sVar3;\n  char *pcVar4;\n  int iVar5;\n  char *pcVar6;\n  symbolS *psVar7;\n  segT paVar8;\n  uint uVar9;\n  uint uVar10;\n  undefined4 *puVar11;\n  alpha_macro *val;\n  char name [4];\n  \n  uVar9 = 0;\n  alpha_opcode_hash = hash_new();\n  puVar1 = PTR_alpha_opcodes_00077f94;\n  uVar10 = *(uint *)PTR_alpha_num_opcodes_00077f6c;\n  while (uVar9 < uVar10) {\n    puVar11 = (undefined4 *)(puVar1 + uVar9 * 0x14);\n    pcVar6 = (char *)*puVar11;\n    pcVar2 = hash_insert(alpha_opcode_hash,pcVar6,puVar11);\n    if (pcVar2 != (char *)0x0) {\n      pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar4,pcVar6,pcVar2);\n    }\n    pcVar2 = strchr(pcVar6,0x2f);\n    if (pcVar2 != (char *)0x0) {\n      sVar3 = strlen(pcVar6);\n      pcVar4 = (char *)xmalloc(sVar3);\n      memcpy(pcVar4,pcVar6,(int)pcVar2 - (int)pcVar6);\n      strcpy(pcVar4 + ((int)pcVar2 - (int)pcVar6),pcVar2 + 1);\n      hash_insert(alpha_opcode_hash,pcVar4,puVar11);\n    }\n    puVar11 = (undefined4 *)(puVar1 + uVar9 * 0x14 + 0x14);\n    while( true ) {\n      uVar9 = uVar9 + 1;\n      if (uVar10 == uVar9) goto LAB_0004d270;\n      if (((char *)*puVar11 != pcVar6) && (iVar5 = strcmp((char *)*puVar11,pcVar6), iVar5 != 0))\n      break;\n      puVar11 = puVar11 + 5;\n    }\n  }\nLAB_0004d270:\n  alpha_macro_hash = hash_new();\n  uVar10 = 0;\n  pcVar6 = "lda";\n  do {\n    pcVar2 = pcVar6;\n    val = alpha_macros + uVar10;\n    pcVar6 = hash_insert(alpha_macro_hash,pcVar2,val);\n    if (pcVar6 != (char *)0x0) {\n      pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar4,pcVar2,pcVar6);\n    }\n    while( true ) {\n      uVar10 = uVar10 + 1;\n      if (0x34 < uVar10) {\n        iVar5 = 0;\n        uVar10 = 0;\n        do {\n          sprintf(name,"$%d",uVar10);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar10),&zero_address_frag);\n          uVar9 = uVar10 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar10);\n          alpha_register_table[uVar10] = psVar7;\n          uVar10 = uVar9;\n        } while (iVar5 != 0 || uVar9 != 0x20);\n        do {\n          sprintf(name,"$f%d",uVar9 - 0x20);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar9),&zero_address_frag);\n          uVar10 = uVar9 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar9);\n          alpha_register_table[uVar9] = psVar7;\n          uVar9 = uVar10;\n        } while (iVar5 != 0 || uVar10 != 0x40);\n        bfd_set_gp_size(stdoutput,g_switch_value);\n        if (0 < alpha_flag_mdebug) {\n          paVar8 = subseg_new(".mdebug",0);\n          bfd_set_section_flags(stdoutput,paVar8,0x108);\n          paVar8->alignment_power = 3;\n        }\n        alpha_literal_hash = hash_new();\n        subseg_set(text_section,0);\n        return;\n      }\n      pcVar6 = val[1].name;\n      if ((pcVar6 != pcVar2) && (iVar5 = strcmp(pcVar6,pcVar2), iVar5 != 0)) break;\n      val = val + 1;\n    }\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "symbolS *psVar7;" type_identifier (pointer_declarator "*psVar7" * identifier) ;) (declaration "segT paVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "alpha_macro *val;" type_identifier (pointer_declarator "*val" * identifier) ;) (declaration "char name [4];" primitive_type (array_declarator "name [4]" identifier [ number_literal ]) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "alpha_opcode_hash = hash_new();" (assignment_expression "alpha_opcode_hash = hash_new()" identifier = (call_expression "hash_new()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar1 = PTR_alpha_opcodes_00077f94;" (assignment_expression "puVar1 = PTR_alpha_opcodes_00077f94" identifier = identifier) ;) (expression_statement "uVar10 = *(uint *)PTR_alpha_num_opcodes_00077f6c;" (assignment_expression "uVar10 = *(uint *)PTR_alpha_num_opcodes_00077f6c" identifier = (pointer_expression "*(uint *)PTR_alpha_num_opcodes_00077f6c" * (cast_expression "(uint *)PTR_alpha_num_opcodes_00077f6c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (while_statement "while (uVar9 < uVar10) {\n    puVar11 = (undefined4 *)(puVar1 + uVar9 * 0x14);\n    pcVar6 = (char *)*puVar11;\n    pcVar2 = hash_insert(alpha_opcode_hash,pcVar6,puVar11);\n    if (pcVar2 != (char *)0x0) {\n      pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar4,pcVar6,pcVar2);\n    }\n    pcVar2 = strchr(pcVar6,0x2f);\n    if (pcVar2 != (char *)0x0) {\n      sVar3 = strlen(pcVar6);\n      pcVar4 = (char *)xmalloc(sVar3);\n      memcpy(pcVar4,pcVar6,(int)pcVar2 - (int)pcVar6);\n      strcpy(pcVar4 + ((int)pcVar2 - (int)pcVar6),pcVar2 + 1);\n      hash_insert(alpha_opcode_hash,pcVar4,puVar11);\n    }\n    puVar11 = (undefined4 *)(puVar1 + uVar9 * 0x14 + 0x14);\n    while( true ) {\n      uVar9 = uVar9 + 1;\n      if (uVar10 == uVar9) goto LAB_0004d270;\n      if (((char *)*puVar11 != pcVar6) && (iVar5 = strcmp((char *)*puVar11,pcVar6), iVar5 != 0))\n      break;\n      puVar11 = puVar11 + 5;\n    }\n  }" while (parenthesized_expression "(uVar9 < uVar10)" ( (binary_expression "uVar9 < uVar10" identifier < identifier) )) (compound_statement "{\n    puVar11 = (undefined4 *)(puVar1 + uVar9 * 0x14);\n    pcVar6 = (char *)*puVar11;\n    pcVar2 = hash_insert(alpha_opcode_hash,pcVar6,puVar11);\n    if (pcVar2 != (char *)0x0) {\n      pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar4,pcVar6,pcVar2);\n    }\n    pcVar2 = strchr(pcVar6,0x2f);\n    if (pcVar2 != (char *)0x0) {\n      sVar3 = strlen(pcVar6);\n      pcVar4 = (char *)xmalloc(sVar3);\n      memcpy(pcVar4,pcVar6,(int)pcVar2 - (int)pcVar6);\n      strcpy(pcVar4 + ((int)pcVar2 - (int)pcVar6),pcVar2 + 1);\n      hash_insert(alpha_opcode_hash,pcVar4,puVar11);\n    }\n    puVar11 = (undefined4 *)(puVar1 + uVar9 * 0x14 + 0x14);\n    while( true ) {\n      uVar9 = uVar9 + 1;\n      if (uVar10 == uVar9) goto LAB_0004d270;\n      if (((char *)*puVar11 != pcVar6) && (iVar5 = strcmp((char *)*puVar11,pcVar6), iVar5 != 0))\n      break;\n      puVar11 = puVar11 + 5;\n    }\n  }" { (expression_statement "puVar11 = (undefined4 *)(puVar1 + uVar9 * 0x14);" (assignment_expression "puVar11 = (undefined4 *)(puVar1 + uVar9 * 0x14)" identifier = (cast_expression "(undefined4 *)(puVar1 + uVar9 * 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + uVar9 * 0x14)" ( (binary_expression "puVar1 + uVar9 * 0x14" identifier + (binary_expression "uVar9 * 0x14" identifier * number_literal)) )))) ;) (expression_statement "pcVar6 = (char *)*puVar11;" (assignment_expression "pcVar6 = (char *)*puVar11" identifier = (cast_expression "(char *)*puVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar11" * identifier))) ;) (expression_statement "pcVar2 = hash_insert(alpha_opcode_hash,pcVar6,puVar11);" (assignment_expression "pcVar2 = hash_insert(alpha_opcode_hash,pcVar6,puVar11)" identifier = (call_expression "hash_insert(alpha_opcode_hash,pcVar6,puVar11)" identifier (argument_list "(alpha_opcode_hash,pcVar6,puVar11)" ( identifier , identifier , identifier )))) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n      pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar4,pcVar6,pcVar2);\n    }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar4,pcVar6,pcVar2);\n    }" { (expression_statement "pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5)" identifier (argument_list "(0,"internal error: can\'t hash opcode `%s\': %s",5)" ( number_literal , (string_literal ""internal error: can\'t hash opcode `%s\': %s"" " string_content escape_sequence string_content escape_sequence string_content ") , number_literal ))))) ;) comment (expression_statement "as_fatal(pcVar4,pcVar6,pcVar2);" (call_expression "as_fatal(pcVar4,pcVar6,pcVar2)" identifier (argument_list "(pcVar4,pcVar6,pcVar2)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pcVar2 = strchr(pcVar6,0x2f);" (assignment_expression "pcVar2 = strchr(pcVar6,0x2f)" identifier = (call_expression "strchr(pcVar6,0x2f)" identifier (argument_list "(pcVar6,0x2f)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n      sVar3 = strlen(pcVar6);\n      pcVar4 = (char *)xmalloc(sVar3);\n      memcpy(pcVar4,pcVar6,(int)pcVar2 - (int)pcVar6);\n      strcpy(pcVar4 + ((int)pcVar2 - (int)pcVar6),pcVar2 + 1);\n      hash_insert(alpha_opcode_hash,pcVar4,puVar11);\n    }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sVar3 = strlen(pcVar6);\n      pcVar4 = (char *)xmalloc(sVar3);\n      memcpy(pcVar4,pcVar6,(int)pcVar2 - (int)pcVar6);\n      strcpy(pcVar4 + ((int)pcVar2 - (int)pcVar6),pcVar2 + 1);\n      hash_insert(alpha_opcode_hash,pcVar4,puVar11);\n    }" { (expression_statement "sVar3 = strlen(pcVar6);" (assignment_expression "sVar3 = strlen(pcVar6)" identifier = (call_expression "strlen(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier )))) ;) (expression_statement "pcVar4 = (char *)xmalloc(sVar3);" (assignment_expression "pcVar4 = (char *)xmalloc(sVar3)" identifier = (cast_expression "(char *)xmalloc(sVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar3)" identifier (argument_list "(sVar3)" ( identifier ))))) ;) (expression_statement "memcpy(pcVar4,pcVar6,(int)pcVar2 - (int)pcVar6);" (call_expression "memcpy(pcVar4,pcVar6,(int)pcVar2 - (int)pcVar6)" identifier (argument_list "(pcVar4,pcVar6,(int)pcVar2 - (int)pcVar6)" ( identifier , identifier , (binary_expression "(int)pcVar2 - (int)pcVar6" (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "strcpy(pcVar4 + ((int)pcVar2 - (int)pcVar6),pcVar2 + 1);" (call_expression "strcpy(pcVar4 + ((int)pcVar2 - (int)pcVar6),pcVar2 + 1)" identifier (argument_list "(pcVar4 + ((int)pcVar2 - (int)pcVar6),pcVar2 + 1)" ( (binary_expression "pcVar4 + ((int)pcVar2 - (int)pcVar6)" identifier + (parenthesized_expression "((int)pcVar2 - (int)pcVar6)" ( (binary_expression "(int)pcVar2 - (int)pcVar6" (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , (binary_expression "pcVar2 + 1" identifier + number_literal) ))) ;) (expression_statement "hash_insert(alpha_opcode_hash,pcVar4,puVar11);" (call_expression "hash_insert(alpha_opcode_hash,pcVar4,puVar11)" identifier (argument_list "(alpha_opcode_hash,pcVar4,puVar11)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "puVar11 = (undefined4 *)(puVar1 + uVar9 * 0x14 + 0x14);" (assignment_expression "puVar11 = (undefined4 *)(puVar1 + uVar9 * 0x14 + 0x14)" identifier = (cast_expression "(undefined4 *)(puVar1 + uVar9 * 0x14 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + uVar9 * 0x14 + 0x14)" ( (binary_expression "puVar1 + uVar9 * 0x14 + 0x14" (binary_expression "puVar1 + uVar9 * 0x14" identifier + (binary_expression "uVar9 * 0x14" identifier * number_literal)) + number_literal) )))) ;) (while_statement "while( true ) {\n      uVar9 = uVar9 + 1;\n      if (uVar10 == uVar9) goto LAB_0004d270;\n      if (((char *)*puVar11 != pcVar6) && (iVar5 = strcmp((char *)*puVar11,pcVar6), iVar5 != 0))\n      break;\n      puVar11 = puVar11 + 5;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar9 = uVar9 + 1;\n      if (uVar10 == uVar9) goto LAB_0004d270;\n      if (((char *)*puVar11 != pcVar6) && (iVar5 = strcmp((char *)*puVar11,pcVar6), iVar5 != 0))\n      break;\n      puVar11 = puVar11 + 5;\n    }" { (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (if_statement "if (uVar10 == uVar9) goto LAB_0004d270;" if (parenthesized_expression "(uVar10 == uVar9)" ( (binary_expression "uVar10 == uVar9" identifier == identifier) )) (goto_statement "goto LAB_0004d270;" goto statement_identifier ;)) (if_statement "if (((char *)*puVar11 != pcVar6) && (iVar5 = strcmp((char *)*puVar11,pcVar6), iVar5 != 0))\n      break;" if (parenthesized_expression "(((char *)*puVar11 != pcVar6) && (iVar5 = strcmp((char *)*puVar11,pcVar6), iVar5 != 0))" ( (binary_expression "((char *)*puVar11 != pcVar6) && (iVar5 = strcmp((char *)*puVar11,pcVar6), iVar5 != 0)" (parenthesized_expression "((char *)*puVar11 != pcVar6)" ( (binary_expression "(char *)*puVar11 != pcVar6" (cast_expression "(char *)*puVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar11" * identifier)) != identifier) )) && (parenthesized_expression "(iVar5 = strcmp((char *)*puVar11,pcVar6), iVar5 != 0)" ( (comma_expression "iVar5 = strcmp((char *)*puVar11,pcVar6), iVar5 != 0" (assignment_expression "iVar5 = strcmp((char *)*puVar11,pcVar6)" identifier = (call_expression "strcmp((char *)*puVar11,pcVar6)" identifier (argument_list "((char *)*puVar11,pcVar6)" ( (cast_expression "(char *)*puVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar11" * identifier)) , identifier )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "puVar11 = puVar11 + 5;" (assignment_expression "puVar11 = puVar11 + 5" identifier = (binary_expression "puVar11 + 5" identifier + number_literal)) ;) })) })) (labeled_statement "LAB_0004d270:\n  alpha_macro_hash = hash_new();" statement_identifier : (expression_statement "alpha_macro_hash = hash_new();" (assignment_expression "alpha_macro_hash = hash_new()" identifier = (call_expression "hash_new()" identifier (argument_list "()" ( )))) ;)) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "pcVar6 = "lda";" (assignment_expression "pcVar6 = "lda"" identifier = (string_literal ""lda"" " string_content ")) ;) (do_statement "do {\n    pcVar2 = pcVar6;\n    val = alpha_macros + uVar10;\n    pcVar6 = hash_insert(alpha_macro_hash,pcVar2,val);\n    if (pcVar6 != (char *)0x0) {\n      pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar4,pcVar2,pcVar6);\n    }\n    while( true ) {\n      uVar10 = uVar10 + 1;\n      if (0x34 < uVar10) {\n        iVar5 = 0;\n        uVar10 = 0;\n        do {\n          sprintf(name,"$%d",uVar10);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar10),&zero_address_frag);\n          uVar9 = uVar10 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar10);\n          alpha_register_table[uVar10] = psVar7;\n          uVar10 = uVar9;\n        } while (iVar5 != 0 || uVar9 != 0x20);\n        do {\n          sprintf(name,"$f%d",uVar9 - 0x20);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar9),&zero_address_frag);\n          uVar10 = uVar9 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar9);\n          alpha_register_table[uVar9] = psVar7;\n          uVar9 = uVar10;\n        } while (iVar5 != 0 || uVar10 != 0x40);\n        bfd_set_gp_size(stdoutput,g_switch_value);\n        if (0 < alpha_flag_mdebug) {\n          paVar8 = subseg_new(".mdebug",0);\n          bfd_set_section_flags(stdoutput,paVar8,0x108);\n          paVar8->alignment_power = 3;\n        }\n        alpha_literal_hash = hash_new();\n        subseg_set(text_section,0);\n        return;\n      }\n      pcVar6 = val[1].name;\n      if ((pcVar6 != pcVar2) && (iVar5 = strcmp(pcVar6,pcVar2), iVar5 != 0)) break;\n      val = val + 1;\n    }\n  } while( true );" do (compound_statement "{\n    pcVar2 = pcVar6;\n    val = alpha_macros + uVar10;\n    pcVar6 = hash_insert(alpha_macro_hash,pcVar2,val);\n    if (pcVar6 != (char *)0x0) {\n      pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar4,pcVar2,pcVar6);\n    }\n    while( true ) {\n      uVar10 = uVar10 + 1;\n      if (0x34 < uVar10) {\n        iVar5 = 0;\n        uVar10 = 0;\n        do {\n          sprintf(name,"$%d",uVar10);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar10),&zero_address_frag);\n          uVar9 = uVar10 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar10);\n          alpha_register_table[uVar10] = psVar7;\n          uVar10 = uVar9;\n        } while (iVar5 != 0 || uVar9 != 0x20);\n        do {\n          sprintf(name,"$f%d",uVar9 - 0x20);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar9),&zero_address_frag);\n          uVar10 = uVar9 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar9);\n          alpha_register_table[uVar9] = psVar7;\n          uVar9 = uVar10;\n        } while (iVar5 != 0 || uVar10 != 0x40);\n        bfd_set_gp_size(stdoutput,g_switch_value);\n        if (0 < alpha_flag_mdebug) {\n          paVar8 = subseg_new(".mdebug",0);\n          bfd_set_section_flags(stdoutput,paVar8,0x108);\n          paVar8->alignment_power = 3;\n        }\n        alpha_literal_hash = hash_new();\n        subseg_set(text_section,0);\n        return;\n      }\n      pcVar6 = val[1].name;\n      if ((pcVar6 != pcVar2) && (iVar5 = strcmp(pcVar6,pcVar2), iVar5 != 0)) break;\n      val = val + 1;\n    }\n  }" { (expression_statement "pcVar2 = pcVar6;" (assignment_expression "pcVar2 = pcVar6" identifier = identifier) ;) (expression_statement "val = alpha_macros + uVar10;" (assignment_expression "val = alpha_macros + uVar10" identifier = (binary_expression "alpha_macros + uVar10" identifier + identifier)) ;) (expression_statement "pcVar6 = hash_insert(alpha_macro_hash,pcVar2,val);" (assignment_expression "pcVar6 = hash_insert(alpha_macro_hash,pcVar2,val)" identifier = (call_expression "hash_insert(alpha_macro_hash,pcVar2,val)" identifier (argument_list "(alpha_macro_hash,pcVar2,val)" ( identifier , identifier , identifier )))) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n      pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar4,pcVar2,pcVar6);\n    }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar4,pcVar2,pcVar6);\n    }" { (expression_statement "pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5)" identifier (argument_list "(0,"internal error: can\'t hash macro `%s\': %s",5)" ( number_literal , (string_literal ""internal error: can\'t hash macro `%s\': %s"" " string_content escape_sequence string_content escape_sequence string_content ") , number_literal ))))) ;) comment (expression_statement "as_fatal(pcVar4,pcVar2,pcVar6);" (call_expression "as_fatal(pcVar4,pcVar2,pcVar6)" identifier (argument_list "(pcVar4,pcVar2,pcVar6)" ( identifier , identifier , identifier ))) ;) })) (while_statement "while( true ) {\n      uVar10 = uVar10 + 1;\n      if (0x34 < uVar10) {\n        iVar5 = 0;\n        uVar10 = 0;\n        do {\n          sprintf(name,"$%d",uVar10);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar10),&zero_address_frag);\n          uVar9 = uVar10 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar10);\n          alpha_register_table[uVar10] = psVar7;\n          uVar10 = uVar9;\n        } while (iVar5 != 0 || uVar9 != 0x20);\n        do {\n          sprintf(name,"$f%d",uVar9 - 0x20);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar9),&zero_address_frag);\n          uVar10 = uVar9 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar9);\n          alpha_register_table[uVar9] = psVar7;\n          uVar9 = uVar10;\n        } while (iVar5 != 0 || uVar10 != 0x40);\n        bfd_set_gp_size(stdoutput,g_switch_value);\n        if (0 < alpha_flag_mdebug) {\n          paVar8 = subseg_new(".mdebug",0);\n          bfd_set_section_flags(stdoutput,paVar8,0x108);\n          paVar8->alignment_power = 3;\n        }\n        alpha_literal_hash = hash_new();\n        subseg_set(text_section,0);\n        return;\n      }\n      pcVar6 = val[1].name;\n      if ((pcVar6 != pcVar2) && (iVar5 = strcmp(pcVar6,pcVar2), iVar5 != 0)) break;\n      val = val + 1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar10 = uVar10 + 1;\n      if (0x34 < uVar10) {\n        iVar5 = 0;\n        uVar10 = 0;\n        do {\n          sprintf(name,"$%d",uVar10);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar10),&zero_address_frag);\n          uVar9 = uVar10 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar10);\n          alpha_register_table[uVar10] = psVar7;\n          uVar10 = uVar9;\n        } while (iVar5 != 0 || uVar9 != 0x20);\n        do {\n          sprintf(name,"$f%d",uVar9 - 0x20);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar9),&zero_address_frag);\n          uVar10 = uVar9 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar9);\n          alpha_register_table[uVar9] = psVar7;\n          uVar9 = uVar10;\n        } while (iVar5 != 0 || uVar10 != 0x40);\n        bfd_set_gp_size(stdoutput,g_switch_value);\n        if (0 < alpha_flag_mdebug) {\n          paVar8 = subseg_new(".mdebug",0);\n          bfd_set_section_flags(stdoutput,paVar8,0x108);\n          paVar8->alignment_power = 3;\n        }\n        alpha_literal_hash = hash_new();\n        subseg_set(text_section,0);\n        return;\n      }\n      pcVar6 = val[1].name;\n      if ((pcVar6 != pcVar2) && (iVar5 = strcmp(pcVar6,pcVar2), iVar5 != 0)) break;\n      val = val + 1;\n    }" { (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (if_statement "if (0x34 < uVar10) {\n        iVar5 = 0;\n        uVar10 = 0;\n        do {\n          sprintf(name,"$%d",uVar10);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar10),&zero_address_frag);\n          uVar9 = uVar10 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar10);\n          alpha_register_table[uVar10] = psVar7;\n          uVar10 = uVar9;\n        } while (iVar5 != 0 || uVar9 != 0x20);\n        do {\n          sprintf(name,"$f%d",uVar9 - 0x20);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar9),&zero_address_frag);\n          uVar10 = uVar9 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar9);\n          alpha_register_table[uVar9] = psVar7;\n          uVar9 = uVar10;\n        } while (iVar5 != 0 || uVar10 != 0x40);\n        bfd_set_gp_size(stdoutput,g_switch_value);\n        if (0 < alpha_flag_mdebug) {\n          paVar8 = subseg_new(".mdebug",0);\n          bfd_set_section_flags(stdoutput,paVar8,0x108);\n          paVar8->alignment_power = 3;\n        }\n        alpha_literal_hash = hash_new();\n        subseg_set(text_section,0);\n        return;\n      }" if (parenthesized_expression "(0x34 < uVar10)" ( (binary_expression "0x34 < uVar10" number_literal < identifier) )) (compound_statement "{\n        iVar5 = 0;\n        uVar10 = 0;\n        do {\n          sprintf(name,"$%d",uVar10);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar10),&zero_address_frag);\n          uVar9 = uVar10 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar10);\n          alpha_register_table[uVar10] = psVar7;\n          uVar10 = uVar9;\n        } while (iVar5 != 0 || uVar9 != 0x20);\n        do {\n          sprintf(name,"$f%d",uVar9 - 0x20);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar9),&zero_address_frag);\n          uVar10 = uVar9 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar9);\n          alpha_register_table[uVar9] = psVar7;\n          uVar9 = uVar10;\n        } while (iVar5 != 0 || uVar10 != 0x40);\n        bfd_set_gp_size(stdoutput,g_switch_value);\n        if (0 < alpha_flag_mdebug) {\n          paVar8 = subseg_new(".mdebug",0);\n          bfd_set_section_flags(stdoutput,paVar8,0x108);\n          paVar8->alignment_power = 3;\n        }\n        alpha_literal_hash = hash_new();\n        subseg_set(text_section,0);\n        return;\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n          sprintf(name,"$%d",uVar10);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar10),&zero_address_frag);\n          uVar9 = uVar10 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar10);\n          alpha_register_table[uVar10] = psVar7;\n          uVar10 = uVar9;\n        } while (iVar5 != 0 || uVar9 != 0x20);" do (compound_statement "{\n          sprintf(name,"$%d",uVar10);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar10),&zero_address_frag);\n          uVar9 = uVar10 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar10);\n          alpha_register_table[uVar10] = psVar7;\n          uVar10 = uVar9;\n        }" { (expression_statement "sprintf(name,"$%d",uVar10);" (call_expression "sprintf(name,"$%d",uVar10)" identifier (argument_list "(name,"$%d",uVar10)" ( identifier , (string_literal ""$%d"" " string_content ") , identifier ))) ;) (expression_statement "psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar10),&zero_address_frag);" (assignment_expression "psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar10),&zero_address_frag)" identifier = (call_expression "symbol_create(name,reg_section,CONCAT44(iVar5,uVar10),&zero_address_frag)" identifier (argument_list "(name,reg_section,CONCAT44(iVar5,uVar10),&zero_address_frag)" ( identifier , identifier , (call_expression "CONCAT44(iVar5,uVar10)" identifier (argument_list "(iVar5,uVar10)" ( identifier , identifier ))) , (pointer_expression "&zero_address_frag" & identifier) )))) ;) (expression_statement "uVar9 = uVar10 + 1;" (assignment_expression "uVar9 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = iVar5 + (uint)(0xfffffffe < uVar10);" (assignment_expression "iVar5 = iVar5 + (uint)(0xfffffffe < uVar10)" identifier = (binary_expression "iVar5 + (uint)(0xfffffffe < uVar10)" identifier + (call_expression "(uint)(0xfffffffe < uVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffe < uVar10)" ( (binary_expression "0xfffffffe < uVar10" number_literal < identifier) ))))) ;) (expression_statement "alpha_register_table[uVar10] = psVar7;" (assignment_expression "alpha_register_table[uVar10] = psVar7" (subscript_expression "alpha_register_table[uVar10]" identifier [ identifier ]) = identifier) ;) (expression_statement "uVar10 = uVar9;" (assignment_expression "uVar10 = uVar9" identifier = identifier) ;) }) while (parenthesized_expression "(iVar5 != 0 || uVar9 != 0x20)" ( (binary_expression "iVar5 != 0 || uVar9 != 0x20" (binary_expression "iVar5 != 0" identifier != number_literal) || (binary_expression "uVar9 != 0x20" identifier != number_literal)) )) ;) (do_statement "do {\n          sprintf(name,"$f%d",uVar9 - 0x20);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar9),&zero_address_frag);\n          uVar10 = uVar9 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar9);\n          alpha_register_table[uVar9] = psVar7;\n          uVar9 = uVar10;\n        } while (iVar5 != 0 || uVar10 != 0x40);" do (compound_statement "{\n          sprintf(name,"$f%d",uVar9 - 0x20);\n          psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar9),&zero_address_frag);\n          uVar10 = uVar9 + 1;\n          iVar5 = iVar5 + (uint)(0xfffffffe < uVar9);\n          alpha_register_table[uVar9] = psVar7;\n          uVar9 = uVar10;\n        }" { (expression_statement "sprintf(name,"$f%d",uVar9 - 0x20);" (call_expression "sprintf(name,"$f%d",uVar9 - 0x20)" identifier (argument_list "(name,"$f%d",uVar9 - 0x20)" ( identifier , (string_literal ""$f%d"" " string_content ") , (binary_expression "uVar9 - 0x20" identifier - number_literal) ))) ;) (expression_statement "psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar9),&zero_address_frag);" (assignment_expression "psVar7 = symbol_create(name,reg_section,CONCAT44(iVar5,uVar9),&zero_address_frag)" identifier = (call_expression "symbol_create(name,reg_section,CONCAT44(iVar5,uVar9),&zero_address_frag)" identifier (argument_list "(name,reg_section,CONCAT44(iVar5,uVar9),&zero_address_frag)" ( identifier , identifier , (call_expression "CONCAT44(iVar5,uVar9)" identifier (argument_list "(iVar5,uVar9)" ( identifier , identifier ))) , (pointer_expression "&zero_address_frag" & identifier) )))) ;) (expression_statement "uVar10 = uVar9 + 1;" (assignment_expression "uVar10 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = iVar5 + (uint)(0xfffffffe < uVar9);" (assignment_expression "iVar5 = iVar5 + (uint)(0xfffffffe < uVar9)" identifier = (binary_expression "iVar5 + (uint)(0xfffffffe < uVar9)" identifier + (call_expression "(uint)(0xfffffffe < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffe < uVar9)" ( (binary_expression "0xfffffffe < uVar9" number_literal < identifier) ))))) ;) (expression_statement "alpha_register_table[uVar9] = psVar7;" (assignment_expression "alpha_register_table[uVar9] = psVar7" (subscript_expression "alpha_register_table[uVar9]" identifier [ identifier ]) = identifier) ;) (expression_statement "uVar9 = uVar10;" (assignment_expression "uVar9 = uVar10" identifier = identifier) ;) }) while (parenthesized_expression "(iVar5 != 0 || uVar10 != 0x40)" ( (binary_expression "iVar5 != 0 || uVar10 != 0x40" (binary_expression "iVar5 != 0" identifier != number_literal) || (binary_expression "uVar10 != 0x40" identifier != number_literal)) )) ;) (expression_statement "bfd_set_gp_size(stdoutput,g_switch_value);" (call_expression "bfd_set_gp_size(stdoutput,g_switch_value)" identifier (argument_list "(stdoutput,g_switch_value)" ( identifier , identifier ))) ;) (if_statement "if (0 < alpha_flag_mdebug) {\n          paVar8 = subseg_new(".mdebug",0);\n          bfd_set_section_flags(stdoutput,paVar8,0x108);\n          paVar8->alignment_power = 3;\n        }" if (parenthesized_expression "(0 < alpha_flag_mdebug)" ( (binary_expression "0 < alpha_flag_mdebug" number_literal < identifier) )) (compound_statement "{\n          paVar8 = subseg_new(".mdebug",0);\n          bfd_set_section_flags(stdoutput,paVar8,0x108);\n          paVar8->alignment_power = 3;\n        }" { (expression_statement "paVar8 = subseg_new(".mdebug",0);" (assignment_expression "paVar8 = subseg_new(".mdebug",0)" identifier = (call_expression "subseg_new(".mdebug",0)" identifier (argument_list "(".mdebug",0)" ( (string_literal "".mdebug"" " string_content ") , number_literal )))) ;) (expression_statement "bfd_set_section_flags(stdoutput,paVar8,0x108);" (call_expression "bfd_set_section_flags(stdoutput,paVar8,0x108)" identifier (argument_list "(stdoutput,paVar8,0x108)" ( identifier , identifier , number_literal ))) ;) (expression_statement "paVar8->alignment_power = 3;" (assignment_expression "paVar8->alignment_power = 3" (field_expression "paVar8->alignment_power" identifier -> field_identifier) = number_literal) ;) })) (expression_statement "alpha_literal_hash = hash_new();" (assignment_expression "alpha_literal_hash = hash_new()" identifier = (call_expression "hash_new()" identifier (argument_list "()" ( )))) ;) (expression_statement "subseg_set(text_section,0);" (call_expression "subseg_set(text_section,0)" identifier (argument_list "(text_section,0)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar6 = val[1].name;" (assignment_expression "pcVar6 = val[1].name" identifier = (field_expression "val[1].name" (subscript_expression "val[1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if ((pcVar6 != pcVar2) && (iVar5 = strcmp(pcVar6,pcVar2), iVar5 != 0)) break;" if (parenthesized_expression "((pcVar6 != pcVar2) && (iVar5 = strcmp(pcVar6,pcVar2), iVar5 != 0))" ( (binary_expression "(pcVar6 != pcVar2) && (iVar5 = strcmp(pcVar6,pcVar2), iVar5 != 0)" (parenthesized_expression "(pcVar6 != pcVar2)" ( (binary_expression "pcVar6 != pcVar2" identifier != identifier) )) && (parenthesized_expression "(iVar5 = strcmp(pcVar6,pcVar2), iVar5 != 0)" ( (comma_expression "iVar5 = strcmp(pcVar6,pcVar2), iVar5 != 0" (assignment_expression "iVar5 = strcmp(pcVar6,pcVar2)" identifier = (call_expression "strcmp(pcVar6,pcVar2)" identifier (argument_list "(pcVar6,pcVar2)" ( identifier , identifier )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "val = val + 1;" (assignment_expression "val = val + 1" identifier = (binary_expression "val + 1" identifier + number_literal)) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void FUN_0004d140(void)\n\n{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  size_t sVar5;\n  void *__dest;\n  undefined4 uVar6;\n  uint uVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  undefined **ppuVar10;\n  char local_21 [13];\n  undefined4 uStack_14;\n  \n  uVar7 = 0;\n  uStack_14 = 0x4d14b;\n  DAT_00081264 = FUN_0002a970();\n  puVar2 = PTR_alpha_opcodes_00077f94;\n  uVar8 = *(uint *)PTR_alpha_num_opcodes_00077f6c;\n  while (uVar7 < uVar8) {\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);\n    pcVar1 = (char *)*puVar9;\n    iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }\n    pcVar4 = strchr(pcVar1,0x2f);\n    if (pcVar4 != (char *)0x0) {\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);\n    while( true ) {\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }\n  }\nLAB_0004d270:\n  DAT_00081260 = FUN_0002a970();\n  uVar8 = 0;\n  pcVar1 = "lda";\n  do {\n    pcVar4 = pcVar1;\n    ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;\n    iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }\n    while( true ) {\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }\n  } while( true );\n}\n\n" (function_definition "void FUN_0004d140(void)\n\n{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  size_t sVar5;\n  void *__dest;\n  undefined4 uVar6;\n  uint uVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  undefined **ppuVar10;\n  char local_21 [13];\n  undefined4 uStack_14;\n  \n  uVar7 = 0;\n  uStack_14 = 0x4d14b;\n  DAT_00081264 = FUN_0002a970();\n  puVar2 = PTR_alpha_opcodes_00077f94;\n  uVar8 = *(uint *)PTR_alpha_num_opcodes_00077f6c;\n  while (uVar7 < uVar8) {\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);\n    pcVar1 = (char *)*puVar9;\n    iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }\n    pcVar4 = strchr(pcVar1,0x2f);\n    if (pcVar4 != (char *)0x0) {\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);\n    while( true ) {\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }\n  }\nLAB_0004d270:\n  DAT_00081260 = FUN_0002a970();\n  uVar8 = 0;\n  pcVar1 = "lda";\n  do {\n    pcVar4 = pcVar1;\n    ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;\n    iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }\n    while( true ) {\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_0004d140(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  size_t sVar5;\n  void *__dest;\n  undefined4 uVar6;\n  uint uVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  undefined **ppuVar10;\n  char local_21 [13];\n  undefined4 uStack_14;\n  \n  uVar7 = 0;\n  uStack_14 = 0x4d14b;\n  DAT_00081264 = FUN_0002a970();\n  puVar2 = PTR_alpha_opcodes_00077f94;\n  uVar8 = *(uint *)PTR_alpha_num_opcodes_00077f6c;\n  while (uVar7 < uVar8) {\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);\n    pcVar1 = (char *)*puVar9;\n    iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }\n    pcVar4 = strchr(pcVar1,0x2f);\n    if (pcVar4 != (char *)0x0) {\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);\n    while( true ) {\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }\n  }\nLAB_0004d270:\n  DAT_00081260 = FUN_0002a970();\n  uVar8 = 0;\n  pcVar1 = "lda";\n  do {\n    pcVar4 = pcVar1;\n    ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;\n    iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }\n    while( true ) {\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }\n  } while( true );\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined **ppuVar10;" type_identifier (pointer_declarator "**ppuVar10" * (pointer_declarator "*ppuVar10" * identifier)) ;) (declaration "char local_21 [13];" primitive_type (array_declarator "local_21 [13]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x4d14b;" (assignment_expression "uStack_14 = 0x4d14b" identifier = number_literal) ;) (expression_statement "DAT_00081264 = FUN_0002a970();" (assignment_expression "DAT_00081264 = FUN_0002a970()" identifier = (call_expression "FUN_0002a970()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar2 = PTR_alpha_opcodes_00077f94;" (assignment_expression "puVar2 = PTR_alpha_opcodes_00077f94" identifier = identifier) ;) (expression_statement "uVar8 = *(uint *)PTR_alpha_num_opcodes_00077f6c;" (assignment_expression "uVar8 = *(uint *)PTR_alpha_num_opcodes_00077f6c" identifier = (pointer_expression "*(uint *)PTR_alpha_num_opcodes_00077f6c" * (cast_expression "(uint *)PTR_alpha_num_opcodes_00077f6c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (while_statement "while (uVar7 < uVar8) {\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);\n    pcVar1 = (char *)*puVar9;\n    iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }\n    pcVar4 = strchr(pcVar1,0x2f);\n    if (pcVar4 != (char *)0x0) {\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);\n    while( true ) {\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }\n  }" while (parenthesized_expression "(uVar7 < uVar8)" ( (binary_expression "uVar7 < uVar8" identifier < identifier) )) (compound_statement "{\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);\n    pcVar1 = (char *)*puVar9;\n    iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }\n    pcVar4 = strchr(pcVar1,0x2f);\n    if (pcVar4 != (char *)0x0) {\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);\n    while( true ) {\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }\n  }" { (expression_statement "puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);" (assignment_expression "puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14)" identifier = (cast_expression "(undefined4 *)(puVar2 + uVar7 * 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + uVar7 * 0x14)" ( (binary_expression "puVar2 + uVar7 * 0x14" identifier + (binary_expression "uVar7 * 0x14" identifier * number_literal)) )))) ;) (expression_statement "pcVar1 = (char *)*puVar9;" (assignment_expression "pcVar1 = (char *)*puVar9" identifier = (cast_expression "(char *)*puVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) (expression_statement "iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);" (assignment_expression "iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9)" identifier = (call_expression "FUN_0002a9c0(DAT_00081264,pcVar1,puVar9)" identifier (argument_list "(DAT_00081264,pcVar1,puVar9)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }" { (expression_statement "uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);" (assignment_expression "uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5)" identifier = (call_expression "dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5)" identifier (argument_list "(0,"internal error: can\'t hash opcode `%s\': %s",5)" ( number_literal , (string_literal ""internal error: can\'t hash opcode `%s\': %s"" " string_content escape_sequence string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_000316c0(uVar6,pcVar1,iVar3);" (call_expression "FUN_000316c0(uVar6,pcVar1,iVar3)" identifier (argument_list "(uVar6,pcVar1,iVar3)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pcVar4 = strchr(pcVar1,0x2f);" (assignment_expression "pcVar4 = strchr(pcVar1,0x2f)" identifier = (call_expression "strchr(pcVar1,0x2f)" identifier (argument_list "(pcVar1,0x2f)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar4 != (char *)0x0) {\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }" if (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }" { (expression_statement "sVar5 = strlen(pcVar1);" (assignment_expression "sVar5 = strlen(pcVar1)" identifier = (call_expression "strlen(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier )))) ;) (expression_statement "__dest = (void *)xmalloc(sVar5);" (assignment_expression "__dest = (void *)xmalloc(sVar5)" identifier = (cast_expression "(void *)xmalloc(sVar5)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar5)" identifier (argument_list "(sVar5)" ( identifier ))))) ;) (expression_statement "memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);" (call_expression "memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1)" identifier (argument_list "(__dest,pcVar1,(int)pcVar4 - (int)pcVar1)" ( identifier , identifier , (binary_expression "(int)pcVar4 - (int)pcVar1" (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);" (call_expression "strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1)" identifier (argument_list "((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1)" ( (cast_expression "(char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)pcVar4 - (int)pcVar1) + (int)__dest)" ( (binary_expression "((int)pcVar4 - (int)pcVar1) + (int)__dest" (parenthesized_expression "((int)pcVar4 - (int)pcVar1)" ( (binary_expression "(int)pcVar4 - (int)pcVar1" (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , (binary_expression "pcVar4 + 1" identifier + number_literal) ))) ;) (expression_statement "FUN_0002a9c0(DAT_00081264,__dest,puVar9);" (call_expression "FUN_0002a9c0(DAT_00081264,__dest,puVar9)" identifier (argument_list "(DAT_00081264,__dest,puVar9)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);" (assignment_expression "puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14)" identifier = (cast_expression "(undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + uVar7 * 0x14 + 0x14)" ( (binary_expression "puVar2 + uVar7 * 0x14 + 0x14" (binary_expression "puVar2 + uVar7 * 0x14" identifier + (binary_expression "uVar7 * 0x14" identifier * number_literal)) + number_literal) )))) ;) (while_statement "while( true ) {\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }" { (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (if_statement "if (uVar8 == uVar7) goto LAB_0004d270;" if (parenthesized_expression "(uVar8 == uVar7)" ( (binary_expression "uVar8 == uVar7" identifier == identifier) )) (goto_statement "goto LAB_0004d270;" goto statement_identifier ;)) (if_statement "if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;" if (parenthesized_expression "(((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))" ( (binary_expression "((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0)" (parenthesized_expression "((char *)*puVar9 != pcVar1)" ( (binary_expression "(char *)*puVar9 != pcVar1" (cast_expression "(char *)*puVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier)) != identifier) )) && (parenthesized_expression "(iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0)" ( (comma_expression "iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0" (assignment_expression "iVar3 = strcmp((char *)*puVar9,pcVar1)" identifier = (call_expression "strcmp((char *)*puVar9,pcVar1)" identifier (argument_list "((char *)*puVar9,pcVar1)" ( (cast_expression "(char *)*puVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier)) , identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "puVar9 = puVar9 + 5;" (assignment_expression "puVar9 = puVar9 + 5" identifier = (binary_expression "puVar9 + 5" identifier + number_literal)) ;) })) })) (labeled_statement "LAB_0004d270:\n  DAT_00081260 = FUN_0002a970();" statement_identifier : (expression_statement "DAT_00081260 = FUN_0002a970();" (assignment_expression "DAT_00081260 = FUN_0002a970()" identifier = (call_expression "FUN_0002a970()" identifier (argument_list "()" ( )))) ;)) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "pcVar1 = "lda";" (assignment_expression "pcVar1 = "lda"" identifier = (string_literal ""lda"" " string_content ")) ;) (do_statement "do {\n    pcVar4 = pcVar1;\n    ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;\n    iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }\n    while( true ) {\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }\n  } while( true );" do (compound_statement "{\n    pcVar4 = pcVar1;\n    ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;\n    iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }\n    while( true ) {\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }\n  }" { (expression_statement "pcVar4 = pcVar1;" (assignment_expression "pcVar4 = pcVar1" identifier = identifier) ;) (expression_statement "ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;" (assignment_expression "ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13" identifier = (binary_expression "&PTR_DAT_00075d40 + uVar8 * 0x13" (pointer_expression "&PTR_DAT_00075d40" & identifier) + (binary_expression "uVar8 * 0x13" identifier * number_literal))) ;) (expression_statement "iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);" (assignment_expression "iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10)" identifier = (call_expression "FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10)" identifier (argument_list "(DAT_00081260,pcVar4,ppuVar10)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }" { (expression_statement "uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);" (assignment_expression "uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5)" identifier = (call_expression "dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5)" identifier (argument_list "(0,"internal error: can\'t hash macro `%s\': %s",5)" ( number_literal , (string_literal ""internal error: can\'t hash macro `%s\': %s"" " string_content escape_sequence string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_000316c0(uVar6,pcVar4,iVar3);" (call_expression "FUN_000316c0(uVar6,pcVar4,iVar3)" identifier (argument_list "(uVar6,pcVar4,iVar3)" ( identifier , identifier , identifier ))) ;) })) (while_statement "while( true ) {\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }" { (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (if_statement "if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }" if (parenthesized_expression "(0x34 < uVar8)" ( (binary_expression "0x34 < uVar8" number_literal < identifier) )) (compound_statement "{\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);" do (compound_statement "{\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        }" { (expression_statement "sprintf(local_21,"$%d",uVar8);" (call_expression "sprintf(local_21,"$%d",uVar8)" identifier (argument_list "(local_21,"$%d",uVar8)" ( identifier , (string_literal ""$%d"" " string_content ") , identifier ))) ;) (expression_statement "uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);" (assignment_expression "uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0)" identifier = (call_expression "FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0)" identifier (argument_list "(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0)" ( identifier , identifier , identifier , identifier , (pointer_expression "&DAT_000813a0" & identifier) )))) ;) (expression_statement "uVar7 = uVar8 + 1;" (assignment_expression "uVar7 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);" (assignment_expression "iVar3 = iVar3 + (uint)(0xfffffffe < uVar8)" identifier = (binary_expression "iVar3 + (uint)(0xfffffffe < uVar8)" identifier + (call_expression "(uint)(0xfffffffe < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffe < uVar8)" ( (binary_expression "0xfffffffe < uVar8" number_literal < identifier) ))))) ;) (expression_statement "*(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;" (assignment_expression "*(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6" (pointer_expression "*(undefined4 *)(&DAT_00081160 + uVar8 * 4)" * (cast_expression "(undefined4 *)(&DAT_00081160 + uVar8 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00081160 + uVar8 * 4)" ( (binary_expression "&DAT_00081160 + uVar8 * 4" (pointer_expression "&DAT_00081160" & identifier) + (binary_expression "uVar8 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" identifier = identifier) ;) }) while (parenthesized_expression "(iVar3 != 0 || uVar7 != 0x20)" ( (binary_expression "iVar3 != 0 || uVar7 != 0x20" (binary_expression "iVar3 != 0" identifier != number_literal) || (binary_expression "uVar7 != 0x20" identifier != number_literal)) )) ;) (do_statement "do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);" do (compound_statement "{\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        }" { (expression_statement "sprintf(local_21,"$f%d",uVar7 - 0x20);" (call_expression "sprintf(local_21,"$f%d",uVar7 - 0x20)" identifier (argument_list "(local_21,"$f%d",uVar7 - 0x20)" ( identifier , (string_literal ""$f%d"" " string_content ") , (binary_expression "uVar7 - 0x20" identifier - number_literal) ))) ;) (expression_statement "uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);" (assignment_expression "uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0)" identifier = (call_expression "FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0)" identifier (argument_list "(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0)" ( identifier , identifier , identifier , identifier , (pointer_expression "&DAT_000813a0" & identifier) )))) ;) (expression_statement "uVar8 = uVar7 + 1;" (assignment_expression "uVar8 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);" (assignment_expression "iVar3 = iVar3 + (uint)(0xfffffffe < uVar7)" identifier = (binary_expression "iVar3 + (uint)(0xfffffffe < uVar7)" identifier + (call_expression "(uint)(0xfffffffe < uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffe < uVar7)" ( (binary_expression "0xfffffffe < uVar7" number_literal < identifier) ))))) ;) (expression_statement "*(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;" (assignment_expression "*(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6" (pointer_expression "*(undefined4 *)(&DAT_00081160 + uVar7 * 4)" * (cast_expression "(undefined4 *)(&DAT_00081160 + uVar7 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00081160 + uVar7 * 4)" ( (binary_expression "&DAT_00081160 + uVar7 * 4" (pointer_expression "&DAT_00081160" & identifier) + (binary_expression "uVar7 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "uVar7 = uVar8;" (assignment_expression "uVar7 = uVar8" identifier = identifier) ;) }) while (parenthesized_expression "(iVar3 != 0 || uVar8 != 0x40)" ( (binary_expression "iVar3 != 0 || uVar8 != 0x40" (binary_expression "iVar3 != 0" identifier != number_literal) || (binary_expression "uVar8 != 0x40" identifier != number_literal)) )) ;) (expression_statement "bfd_set_gp_size(DAT_00081544,DAT_0007850c);" (call_expression "bfd_set_gp_size(DAT_00081544,DAT_0007850c)" identifier (argument_list "(DAT_00081544,DAT_0007850c)" ( identifier , identifier ))) ;) (if_statement "if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }" if (parenthesized_expression "(0 < DAT_00078510)" ( (binary_expression "0 < DAT_00078510" number_literal < identifier) )) (compound_statement "{\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }" { (expression_statement "iVar3 = FUN_0003c230(".mdebug",0);" (assignment_expression "iVar3 = FUN_0003c230(".mdebug",0)" identifier = (call_expression "FUN_0003c230(".mdebug",0)" identifier (argument_list "(".mdebug",0)" ( (string_literal "".mdebug"" " string_content ") , number_literal )))) ;) (expression_statement "bfd_set_section_flags(DAT_00081544,iVar3,0x108);" (call_expression "bfd_set_section_flags(DAT_00081544,iVar3,0x108)" identifier (argument_list "(DAT_00081544,iVar3,0x108)" ( identifier , identifier , number_literal ))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x58) = 3;" (assignment_expression "*(undefined4 *)(iVar3 + 0x58) = 3" (pointer_expression "*(undefined4 *)(iVar3 + 0x58)" * (cast_expression "(undefined4 *)(iVar3 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "DAT_0008112c = FUN_0002a970();" (assignment_expression "DAT_0008112c = FUN_0002a970()" identifier = (call_expression "FUN_0002a970()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0003c290(DAT_00081494,0);" (call_expression "FUN_0003c290(DAT_00081494,0)" identifier (argument_list "(DAT_00081494,0)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar1 = ppuVar10[0x13];" (assignment_expression "pcVar1 = ppuVar10[0x13]" identifier = (subscript_expression "ppuVar10[0x13]" identifier [ number_literal ])) ;) (if_statement "if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;" if (parenthesized_expression "((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0))" ( (binary_expression "(pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)" (parenthesized_expression "(pcVar1 != pcVar4)" ( (binary_expression "pcVar1 != pcVar4" identifier != identifier) )) && (parenthesized_expression "(iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)" ( (comma_expression "iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0" (assignment_expression "iVar3 = strcmp(pcVar1,pcVar4)" identifier = (call_expression "strcmp(pcVar1,pcVar4)" identifier (argument_list "(pcVar1,pcVar4)" ( identifier , identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "ppuVar10 = ppuVar10 + 0x13;" (assignment_expression "ppuVar10 = ppuVar10 + 0x13" identifier = (binary_expression "ppuVar10 + 0x13" 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 (abstract_pointer_declarator *)) ) (pointer_expression * 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 = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) != IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT))) ;) (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 = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (binary_expression IDENT - LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "void FUN_0004d140(void)\n\n{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  size_t sVar5;\n  void *__dest;\n  undefined4 uVar6;\n  uint uVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  undefined **ppuVar10;\n  char local_21 [13];\n  undefined4 uStack_14;\n  \n  uVar7 = 0;\n  uStack_14 = 0x4d14b;\n  DAT_00081264 = FUN_0002a970();\n  puVar2 = PTR_alpha_opcodes_00077f94;\n  uVar8 = *(uint *)PTR_alpha_num_opcodes_00077f6c;\n  while (uVar7 < uVar8) {\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);\n    pcVar1 = (char *)*puVar9;\n    iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }\n    pcVar4 = strchr(pcVar1,0x2f);\n    if (pcVar4 != (char *)0x0) {\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);\n    while( true ) {\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }\n  }\nLAB_0004d270:\n  DAT_00081260 = FUN_0002a970();\n  uVar8 = 0;\n  pcVar1 = "lda";\n  do {\n    pcVar4 = pcVar1;\n    ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;\n    iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }\n    while( true ) {\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_0004d140(void)" (identifier "FUN_0004d140") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  size_t sVar5;\n  void *__dest;\n  undefined4 uVar6;\n  uint uVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  undefined **ppuVar10;\n  char local_21 [13];\n  undefined4 uStack_14;\n  \n  uVar7 = 0;\n  uStack_14 = 0x4d14b;\n  DAT_00081264 = FUN_0002a970();\n  puVar2 = PTR_alpha_opcodes_00077f94;\n  uVar8 = *(uint *)PTR_alpha_num_opcodes_00077f6c;\n  while (uVar7 < uVar8) {\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);\n    pcVar1 = (char *)*puVar9;\n    iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }\n    pcVar4 = strchr(pcVar1,0x2f);\n    if (pcVar4 != (char *)0x0) {\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);\n    while( true ) {\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }\n  }\nLAB_0004d270:\n  DAT_00081260 = FUN_0002a970();\n  uVar8 = 0;\n  pcVar1 = "lda";\n  do {\n    pcVar4 = pcVar1;\n    ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;\n    iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }\n    while( true ) {\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }\n  } while( true );\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "size_t sVar5;" (primitive_type "size_t") (identifier "sVar5") (; ";")) (declaration "void *__dest;" (primitive_type "void") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "undefined **ppuVar10;" (type_identifier "undefined") (pointer_declarator "**ppuVar10" (* "*") (pointer_declarator "*ppuVar10" (* "*") (identifier "ppuVar10"))) (; ";")) (declaration "char local_21 [13];" (primitive_type "char") (array_declarator "local_21 [13]" (identifier "local_21") ([ "[") (number_literal "13") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x4d14b;" (assignment_expression "uStack_14 = 0x4d14b" (identifier "uStack_14") (= "=") (number_literal "0x4d14b")) (; ";")) (expression_statement "DAT_00081264 = FUN_0002a970();" (assignment_expression "DAT_00081264 = FUN_0002a970()" (identifier "DAT_00081264") (= "=") (call_expression "FUN_0002a970()" (identifier "FUN_0002a970") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar2 = PTR_alpha_opcodes_00077f94;" (assignment_expression "puVar2 = PTR_alpha_opcodes_00077f94" (identifier "puVar2") (= "=") (identifier "PTR_alpha_opcodes_00077f94")) (; ";")) (expression_statement "uVar8 = *(uint *)PTR_alpha_num_opcodes_00077f6c;" (assignment_expression "uVar8 = *(uint *)PTR_alpha_num_opcodes_00077f6c" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)PTR_alpha_num_opcodes_00077f6c" (* "*") (cast_expression "(uint *)PTR_alpha_num_opcodes_00077f6c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_alpha_num_opcodes_00077f6c")))) (; ";")) (while_statement "while (uVar7 < uVar8) {\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);\n    pcVar1 = (char *)*puVar9;\n    iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }\n    pcVar4 = strchr(pcVar1,0x2f);\n    if (pcVar4 != (char *)0x0) {\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);\n    while( true ) {\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }\n  }" (while "while") (parenthesized_expression "(uVar7 < uVar8)" (( "(") (binary_expression "uVar7 < uVar8" (identifier "uVar7") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);\n    pcVar1 = (char *)*puVar9;\n    iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }\n    pcVar4 = strchr(pcVar1,0x2f);\n    if (pcVar4 != (char *)0x0) {\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }\n    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);\n    while( true ) {\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }\n  }" ({ "{") (expression_statement "puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);" (assignment_expression "puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(puVar2 + uVar7 * 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + uVar7 * 0x14)" (( "(") (binary_expression "puVar2 + uVar7 * 0x14" (identifier "puVar2") (+ "+") (binary_expression "uVar7 * 0x14" (identifier "uVar7") (* "*") (number_literal "0x14"))) () ")")))) (; ";")) (expression_statement "pcVar1 = (char *)*puVar9;" (assignment_expression "pcVar1 = (char *)*puVar9" (identifier "pcVar1") (= "=") (cast_expression "(char *)*puVar9" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")))) (; ";")) (expression_statement "iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);" (assignment_expression "iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9)" (identifier "iVar3") (= "=") (call_expression "FUN_0002a9c0(DAT_00081264,pcVar1,puVar9)" (identifier "FUN_0002a9c0") (argument_list "(DAT_00081264,pcVar1,puVar9)" (( "(") (identifier "DAT_00081264") (, ",") (identifier "pcVar1") (, ",") (identifier "puVar9") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar1,iVar3);\n    }" ({ "{") (expression_statement "uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);" (assignment_expression "uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5)" (identifier "dcgettext") (argument_list "(0,"internal error: can\'t hash opcode `%s\': %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""internal error: can\'t hash opcode `%s\': %s"" (" """) (string_content "internal error: can") (escape_sequence "\'") (string_content "t hash opcode `%s") (escape_sequence "\'") (string_content ": %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_000316c0(uVar6,pcVar1,iVar3);" (call_expression "FUN_000316c0(uVar6,pcVar1,iVar3)" (identifier "FUN_000316c0") (argument_list "(uVar6,pcVar1,iVar3)" (( "(") (identifier "uVar6") (, ",") (identifier "pcVar1") (, ",") (identifier "iVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar4 = strchr(pcVar1,0x2f);" (assignment_expression "pcVar4 = strchr(pcVar1,0x2f)" (identifier "pcVar4") (= "=") (call_expression "strchr(pcVar1,0x2f)" (identifier "strchr") (argument_list "(pcVar1,0x2f)" (( "(") (identifier "pcVar1") (, ",") (number_literal "0x2f") () ")")))) (; ";")) (if_statement "if (pcVar4 != (char *)0x0) {\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }" (if "if") (parenthesized_expression "(pcVar4 != (char *)0x0)" (( "(") (binary_expression "pcVar4 != (char *)0x0" (identifier "pcVar4") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      sVar5 = strlen(pcVar1);\n      __dest = (void *)xmalloc(sVar5);\n      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);\n      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);\n      FUN_0002a9c0(DAT_00081264,__dest,puVar9);\n    }" ({ "{") (expression_statement "sVar5 = strlen(pcVar1);" (assignment_expression "sVar5 = strlen(pcVar1)" (identifier "sVar5") (= "=") (call_expression "strlen(pcVar1)" (identifier "strlen") (argument_list "(pcVar1)" (( "(") (identifier "pcVar1") () ")")))) (; ";")) (expression_statement "__dest = (void *)xmalloc(sVar5);" (assignment_expression "__dest = (void *)xmalloc(sVar5)" (identifier "__dest") (= "=") (cast_expression "(void *)xmalloc(sVar5)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar5)" (identifier "xmalloc") (argument_list "(sVar5)" (( "(") (identifier "sVar5") () ")"))))) (; ";")) (expression_statement "memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);" (call_expression "memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1)" (identifier "memcpy") (argument_list "(__dest,pcVar1,(int)pcVar4 - (int)pcVar1)" (( "(") (identifier "__dest") (, ",") (identifier "pcVar1") (, ",") (binary_expression "(int)pcVar4 - (int)pcVar1" (cast_expression "(int)pcVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar4")) (- "-") (cast_expression "(int)pcVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar1"))) () ")"))) (; ";")) (expression_statement "strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);" (call_expression "strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1)" (identifier "strcpy") (argument_list "((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1)" (( "(") (cast_expression "(char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)pcVar4 - (int)pcVar1) + (int)__dest)" (( "(") (binary_expression "((int)pcVar4 - (int)pcVar1) + (int)__dest" (parenthesized_expression "((int)pcVar4 - (int)pcVar1)" (( "(") (binary_expression "(int)pcVar4 - (int)pcVar1" (cast_expression "(int)pcVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar4")) (- "-") (cast_expression "(int)pcVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar1"))) () ")")) (+ "+") (cast_expression "(int)__dest" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__dest"))) () ")"))) (, ",") (binary_expression "pcVar4 + 1" (identifier "pcVar4") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "FUN_0002a9c0(DAT_00081264,__dest,puVar9);" (call_expression "FUN_0002a9c0(DAT_00081264,__dest,puVar9)" (identifier "FUN_0002a9c0") (argument_list "(DAT_00081264,__dest,puVar9)" (( "(") (identifier "DAT_00081264") (, ",") (identifier "__dest") (, ",") (identifier "puVar9") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);" (assignment_expression "puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + uVar7 * 0x14 + 0x14)" (( "(") (binary_expression "puVar2 + uVar7 * 0x14 + 0x14" (binary_expression "puVar2 + uVar7 * 0x14" (identifier "puVar2") (+ "+") (binary_expression "uVar7 * 0x14" (identifier "uVar7") (* "*") (number_literal "0x14"))) (+ "+") (number_literal "0x14")) () ")")))) (; ";")) (while_statement "while( true ) {\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      uVar7 = uVar7 + 1;\n      if (uVar8 == uVar7) goto LAB_0004d270;\n      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;\n      puVar9 = puVar9 + 5;\n    }" ({ "{") (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar7 + 1" (identifier "uVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar8 == uVar7) goto LAB_0004d270;" (if "if") (parenthesized_expression "(uVar8 == uVar7)" (( "(") (binary_expression "uVar8 == uVar7" (identifier "uVar8") (== "==") (identifier "uVar7")) () ")")) (goto_statement "goto LAB_0004d270;" (goto "goto") (statement_identifier "LAB_0004d270") (; ";"))) (if_statement "if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))\n      break;" (if "if") (parenthesized_expression "(((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))" (( "(") (binary_expression "((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0)" (parenthesized_expression "((char *)*puVar9 != pcVar1)" (( "(") (binary_expression "(char *)*puVar9 != pcVar1" (cast_expression "(char *)*puVar9" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (!= "!=") (identifier "pcVar1")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0)" (( "(") (comma_expression "iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0" (assignment_expression "iVar3 = strcmp((char *)*puVar9,pcVar1)" (identifier "iVar3") (= "=") (call_expression "strcmp((char *)*puVar9,pcVar1)" (identifier "strcmp") (argument_list "((char *)*puVar9,pcVar1)" (( "(") (cast_expression "(char *)*puVar9" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (, ",") (identifier "pcVar1") () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar9 = puVar9 + 5;" (assignment_expression "puVar9 = puVar9 + 5" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 5" (identifier "puVar9") (+ "+") (number_literal "5"))) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0004d270:\n  DAT_00081260 = FUN_0002a970();" (statement_identifier "LAB_0004d270") (: ":") (expression_statement "DAT_00081260 = FUN_0002a970();" (assignment_expression "DAT_00081260 = FUN_0002a970()" (identifier "DAT_00081260") (= "=") (call_expression "FUN_0002a970()" (identifier "FUN_0002a970") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar1 = "lda";" (assignment_expression "pcVar1 = "lda"" (identifier "pcVar1") (= "=") (string_literal ""lda"" (" """) (string_content "lda") (" """))) (; ";")) (do_statement "do {\n    pcVar4 = pcVar1;\n    ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;\n    iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }\n    while( true ) {\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    pcVar4 = pcVar1;\n    ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;\n    iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);\n    if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }\n    while( true ) {\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }\n  }" ({ "{") (expression_statement "pcVar4 = pcVar1;" (assignment_expression "pcVar4 = pcVar1" (identifier "pcVar4") (= "=") (identifier "pcVar1")) (; ";")) (expression_statement "ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;" (assignment_expression "ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13" (identifier "ppuVar10") (= "=") (binary_expression "&PTR_DAT_00075d40 + uVar8 * 0x13" (pointer_expression "&PTR_DAT_00075d40" (& "&") (identifier "PTR_DAT_00075d40")) (+ "+") (binary_expression "uVar8 * 0x13" (identifier "uVar8") (* "*") (number_literal "0x13")))) (; ";")) (expression_statement "iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);" (assignment_expression "iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10)" (identifier "iVar3") (= "=") (call_expression "FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10)" (identifier "FUN_0002a9c0") (argument_list "(DAT_00081260,pcVar4,ppuVar10)" (( "(") (identifier "DAT_00081260") (, ",") (identifier "pcVar4") (, ",") (identifier "ppuVar10") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);\n                    \n      FUN_000316c0(uVar6,pcVar4,iVar3);\n    }" ({ "{") (expression_statement "uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);" (assignment_expression "uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5)" (identifier "dcgettext") (argument_list "(0,"internal error: can\'t hash macro `%s\': %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""internal error: can\'t hash macro `%s\': %s"" (" """) (string_content "internal error: can") (escape_sequence "\'") (string_content "t hash macro `%s") (escape_sequence "\'") (string_content ": %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_000316c0(uVar6,pcVar4,iVar3);" (call_expression "FUN_000316c0(uVar6,pcVar4,iVar3)" (identifier "FUN_000316c0") (argument_list "(uVar6,pcVar4,iVar3)" (( "(") (identifier "uVar6") (, ",") (identifier "pcVar4") (, ",") (identifier "iVar3") () ")"))) (; ";")) (} "}"))) (while_statement "while( true ) {\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      uVar8 = uVar8 + 1;\n      if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }\n      pcVar1 = ppuVar10[0x13];\n      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;\n      ppuVar10 = ppuVar10 + 0x13;\n    }" ({ "{") (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" (identifier "uVar8") (= "=") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (0x34 < uVar8) {\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }" (if "if") (parenthesized_expression "(0x34 < uVar8)" (( "(") (binary_expression "0x34 < uVar8" (number_literal "0x34") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n        iVar3 = 0;\n        uVar8 = 0;\n        do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);\n        do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);\n        bfd_set_gp_size(DAT_00081544,DAT_0007850c);\n        if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }\n        DAT_0008112c = FUN_0002a970();\n        FUN_0003c290(DAT_00081494,0);\n        return;\n      }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        } while (iVar3 != 0 || uVar7 != 0x20);" (do "do") (compound_statement "{\n          sprintf(local_21,"$%d",uVar8);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);\n          uVar7 = uVar8 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);\n          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;\n          uVar8 = uVar7;\n        }" ({ "{") (expression_statement "sprintf(local_21,"$%d",uVar8);" (call_expression "sprintf(local_21,"$%d",uVar8)" (identifier "sprintf") (argument_list "(local_21,"$%d",uVar8)" (( "(") (identifier "local_21") (, ",") (string_literal ""$%d"" (" """) (string_content "$%d") (" """)) (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);" (assignment_expression "uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0)" (identifier "uVar6") (= "=") (call_expression "FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0)" (identifier "FUN_0003e2a0") (argument_list "(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0)" (( "(") (identifier "local_21") (, ",") (identifier "DAT_00081410") (, ",") (identifier "uVar8") (, ",") (identifier "iVar3") (, ",") (pointer_expression "&DAT_000813a0" (& "&") (identifier "DAT_000813a0")) () ")")))) (; ";")) (expression_statement "uVar7 = uVar8 + 1;" (assignment_expression "uVar7 = uVar8 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);" (assignment_expression "iVar3 = iVar3 + (uint)(0xfffffffe < uVar8)" (identifier "iVar3") (= "=") (binary_expression "iVar3 + (uint)(0xfffffffe < uVar8)" (identifier "iVar3") (+ "+") (call_expression "(uint)(0xfffffffe < uVar8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xfffffffe < uVar8)" (( "(") (binary_expression "0xfffffffe < uVar8" (number_literal "0xfffffffe") (< "<") (identifier "uVar8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;" (assignment_expression "*(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6" (pointer_expression "*(undefined4 *)(&DAT_00081160 + uVar8 * 4)" (* "*") (cast_expression "(undefined4 *)(&DAT_00081160 + uVar8 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00081160 + uVar8 * 4)" (( "(") (binary_expression "&DAT_00081160 + uVar8 * 4" (pointer_expression "&DAT_00081160" (& "&") (identifier "DAT_00081160")) (+ "+") (binary_expression "uVar8 * 4" (identifier "uVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" (identifier "uVar8") (= "=") (identifier "uVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != 0 || uVar7 != 0x20)" (( "(") (binary_expression "iVar3 != 0 || uVar7 != 0x20" (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar7 != 0x20" (identifier "uVar7") (!= "!=") (number_literal "0x20"))) () ")")) (; ";")) (do_statement "do {\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        } while (iVar3 != 0 || uVar8 != 0x40);" (do "do") (compound_statement "{\n          sprintf(local_21,"$f%d",uVar7 - 0x20);\n          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);\n          uVar8 = uVar7 + 1;\n          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);\n          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;\n          uVar7 = uVar8;\n        }" ({ "{") (expression_statement "sprintf(local_21,"$f%d",uVar7 - 0x20);" (call_expression "sprintf(local_21,"$f%d",uVar7 - 0x20)" (identifier "sprintf") (argument_list "(local_21,"$f%d",uVar7 - 0x20)" (( "(") (identifier "local_21") (, ",") (string_literal ""$f%d"" (" """) (string_content "$f%d") (" """)) (, ",") (binary_expression "uVar7 - 0x20" (identifier "uVar7") (- "-") (number_literal "0x20")) () ")"))) (; ";")) (expression_statement "uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);" (assignment_expression "uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0)" (identifier "uVar6") (= "=") (call_expression "FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0)" (identifier "FUN_0003e2a0") (argument_list "(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0)" (( "(") (identifier "local_21") (, ",") (identifier "DAT_00081410") (, ",") (identifier "uVar7") (, ",") (identifier "iVar3") (, ",") (pointer_expression "&DAT_000813a0" (& "&") (identifier "DAT_000813a0")) () ")")))) (; ";")) (expression_statement "uVar8 = uVar7 + 1;" (assignment_expression "uVar8 = uVar7 + 1" (identifier "uVar8") (= "=") (binary_expression "uVar7 + 1" (identifier "uVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);" (assignment_expression "iVar3 = iVar3 + (uint)(0xfffffffe < uVar7)" (identifier "iVar3") (= "=") (binary_expression "iVar3 + (uint)(0xfffffffe < uVar7)" (identifier "iVar3") (+ "+") (call_expression "(uint)(0xfffffffe < uVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xfffffffe < uVar7)" (( "(") (binary_expression "0xfffffffe < uVar7" (number_literal "0xfffffffe") (< "<") (identifier "uVar7")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;" (assignment_expression "*(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6" (pointer_expression "*(undefined4 *)(&DAT_00081160 + uVar7 * 4)" (* "*") (cast_expression "(undefined4 *)(&DAT_00081160 + uVar7 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00081160 + uVar7 * 4)" (( "(") (binary_expression "&DAT_00081160 + uVar7 * 4" (pointer_expression "&DAT_00081160" (& "&") (identifier "DAT_00081160")) (+ "+") (binary_expression "uVar7 * 4" (identifier "uVar7") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "uVar7 = uVar8;" (assignment_expression "uVar7 = uVar8" (identifier "uVar7") (= "=") (identifier "uVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != 0 || uVar8 != 0x40)" (( "(") (binary_expression "iVar3 != 0 || uVar8 != 0x40" (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar8 != 0x40" (identifier "uVar8") (!= "!=") (number_literal "0x40"))) () ")")) (; ";")) (expression_statement "bfd_set_gp_size(DAT_00081544,DAT_0007850c);" (call_expression "bfd_set_gp_size(DAT_00081544,DAT_0007850c)" (identifier "bfd_set_gp_size") (argument_list "(DAT_00081544,DAT_0007850c)" (( "(") (identifier "DAT_00081544") (, ",") (identifier "DAT_0007850c") () ")"))) (; ";")) (if_statement "if (0 < DAT_00078510) {\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }" (if "if") (parenthesized_expression "(0 < DAT_00078510)" (( "(") (binary_expression "0 < DAT_00078510" (number_literal "0") (< "<") (identifier "DAT_00078510")) () ")")) (compound_statement "{\n          iVar3 = FUN_0003c230(".mdebug",0);\n          bfd_set_section_flags(DAT_00081544,iVar3,0x108);\n          *(undefined4 *)(iVar3 + 0x58) = 3;\n        }" ({ "{") (expression_statement "iVar3 = FUN_0003c230(".mdebug",0);" (assignment_expression "iVar3 = FUN_0003c230(".mdebug",0)" (identifier "iVar3") (= "=") (call_expression "FUN_0003c230(".mdebug",0)" (identifier "FUN_0003c230") (argument_list "(".mdebug",0)" (( "(") (string_literal "".mdebug"" (" """) (string_content ".mdebug") (" """)) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "bfd_set_section_flags(DAT_00081544,iVar3,0x108);" (call_expression "bfd_set_section_flags(DAT_00081544,iVar3,0x108)" (identifier "bfd_set_section_flags") (argument_list "(DAT_00081544,iVar3,0x108)" (( "(") (identifier "DAT_00081544") (, ",") (identifier "iVar3") (, ",") (number_literal "0x108") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x58) = 3;" (assignment_expression "*(undefined4 *)(iVar3 + 0x58) = 3" (pointer_expression "*(undefined4 *)(iVar3 + 0x58)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x58)" (( "(") (binary_expression "iVar3 + 0x58" (identifier "iVar3") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (number_literal "3")) (; ";")) (} "}"))) (expression_statement "DAT_0008112c = FUN_0002a970();" (assignment_expression "DAT_0008112c = FUN_0002a970()" (identifier "DAT_0008112c") (= "=") (call_expression "FUN_0002a970()" (identifier "FUN_0002a970") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_0003c290(DAT_00081494,0);" (call_expression "FUN_0003c290(DAT_00081494,0)" (identifier "FUN_0003c290") (argument_list "(DAT_00081494,0)" (( "(") (identifier "DAT_00081494") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar1 = ppuVar10[0x13];" (assignment_expression "pcVar1 = ppuVar10[0x13]" (identifier "pcVar1") (= "=") (subscript_expression "ppuVar10[0x13]" (identifier "ppuVar10") ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (if_statement "if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;" (if "if") (parenthesized_expression "((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0))" (( "(") (binary_expression "(pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)" (parenthesized_expression "(pcVar1 != pcVar4)" (( "(") (binary_expression "pcVar1 != pcVar4" (identifier "pcVar1") (!= "!=") (identifier "pcVar4")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)" (( "(") (comma_expression "iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0" (assignment_expression "iVar3 = strcmp(pcVar1,pcVar4)" (identifier "iVar3") (= "=") (call_expression "strcmp(pcVar1,pcVar4)" (identifier "strcmp") (argument_list "(pcVar1,pcVar4)" (( "(") (identifier "pcVar1") (, ",") (identifier "pcVar4") () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "ppuVar10 = ppuVar10 + 0x13;" (assignment_expression "ppuVar10 = ppuVar10 + 0x13" (identifier "ppuVar10") (= "=") (binary_expression "ppuVar10 + 0x13" (identifier "ppuVar10") (+ "+") (number_literal "0x13"))) (; ";")) (} "}"))) (} "}")) (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_4;
  char *var_6;
  size_t sVar3;
  char *var_14;
  int var_17;
  char *var_15;
  type_2 *psVar7;
  type_3 paVar8;
  type_4 var_2;
  type_4 var_3;
  type_5 *var_18;
  type_6 *var_28;
  char name [4];
  
  var_2 = 0;
  alpha_opcode_hash = var_1();
  var_4 = PTR_alpha_opcodes_00077f94;
  var_3 = *(type_4 *)PTR_alpha_num_opcodes_00077f6c;
  while (var_2 < var_3) {
    var_18 = (type_5 *)(var_4 + var_2 * 0x14);
    var_15 = (char *)*var_18;
    var_6 = var_5(alpha_opcode_hash,var_15,var_18);
    if (var_6 != (char *)0x0) {
      var_14 = (char *)var_7(0,"internal error: can\'t hash opcode `%s\': %s",5);
                    /* WARNING: Subroutine does not return */
      var_8(var_14,var_15,var_6);
    }
    var_6 = var_9(var_15,0x2f);
    if (var_6 != (char *)0x0) {
      sVar3 = var_10(var_15);
      var_14 = (char *)var_11(sVar3);
      var_12(var_14,var_15,(int)var_6 - (int)var_15);
      var_13(var_14 + ((int)var_6 - (int)var_15),var_6 + 1);
      var_5(alpha_opcode_hash,var_14,var_18);
    }
    var_18 = (type_5 *)(var_4 + var_2 * 0x14 + 0x14);
    while( true ) {
      var_2 = var_2 + 1;
      if (var_3 == var_2) goto LAB_0004d270;
      if (((char *)*var_18 != var_15) && (var_17 = var_16((char *)*var_18,var_15), var_17 != 0))
      break;
      var_18 = var_18 + 5;
    }
  }
LAB_0004d270:
  alpha_macro_hash = var_1();
  var_3 = 0;
  var_15 = "lda";
  do {
    var_6 = var_15;
    var_28 = var_19 + var_3;
    var_15 = var_5(alpha_macro_hash,var_6,var_28);
    if (var_15 != (char *)0x0) {
      var_14 = (char *)var_7(0,"internal error: can\'t hash macro `%s\': %s",5);
                    /* WARNING: Subroutine does not return */
      var_8(var_14,var_6,var_15);
    }
    while( true ) {
      var_3 = var_3 + 1;
      if (0x34 < var_3) {
        var_17 = 0;
        var_3 = 0;
        do {
          var_20(name,"$%d",var_3);
          psVar7 = var_21(name,reg_section,var_22(var_17,var_3),&zero_address_frag);
          var_2 = var_3 + 1;
          var_17 = var_17 + (type_4)(0xfffffffe < var_3);
          alpha_register_table[var_3] = psVar7;
          var_3 = var_2;
        } while (var_17 != 0 || var_2 != 0x20);
        do {
          var_20(name,"$f%d",var_2 - 0x20);
          psVar7 = var_21(name,reg_section,var_22(var_17,var_2),&zero_address_frag);
          var_3 = var_2 + 1;
          var_17 = var_17 + (type_4)(0xfffffffe < var_2);
          alpha_register_table[var_2] = psVar7;
          var_2 = var_3;
        } while (var_17 != 0 || var_3 != 0x40);
        var_23(stdoutput,g_switch_value);
        if (0 < var_24) {
          paVar8 = var_25(".mdebug",0);
          var_26(stdoutput,paVar8,0x108);
          paVar8->alignment_power = 3;
        }
        alpha_literal_hash = var_1();
        var_27(text_section,0);
        return;
      }
      var_15 = var_28[1].name;
      if ((var_15 != var_6) && (var_17 = var_16(var_15,var_6), var_17 != 0)) break;
      var_28 = var_28 + 1;
    }
  } 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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (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: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))) (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: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (pointer_expression argument: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (pointer_expression argument: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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)))))) consequence: (break_statement)) (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)

{
  char *pcVar1;
  undefined *puVar2;
  int iVar3;
  char *pcVar4;
  size_t sVar5;
  void *__dest;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  undefined4 *puVar9;
  undefined **ppuVar10;
  char local_21 [13];
  undefined4 uStack_14;
  
  uVar7 = 0;
  uStack_14 = 0x4d14b;
  DAT_00081264 = FUN_0002a970();
  puVar2 = PTR_alpha_opcodes_00077f94;
  uVar8 = *(uint *)PTR_alpha_num_opcodes_00077f6c;
  while (uVar7 < uVar8) {
    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14);
    pcVar1 = (char *)*puVar9;
    iVar3 = FUN_0002a9c0(DAT_00081264,pcVar1,puVar9);
    if (iVar3 != 0) {
      uVar6 = dcgettext(0,"internal error: can\'t hash opcode `%s\': %s",5);
                    /* WARNING: Subroutine does not return */
      FUN_000316c0(uVar6,pcVar1,iVar3);
    }
    pcVar4 = strchr(pcVar1,0x2f);
    if (pcVar4 != (char *)0x0) {
      sVar5 = strlen(pcVar1);
      __dest = (void *)xmalloc(sVar5);
      memcpy(__dest,pcVar1,(int)pcVar4 - (int)pcVar1);
      strcpy((char *)(((int)pcVar4 - (int)pcVar1) + (int)__dest),pcVar4 + 1);
      FUN_0002a9c0(DAT_00081264,__dest,puVar9);
    }
    puVar9 = (undefined4 *)(puVar2 + uVar7 * 0x14 + 0x14);
    while( true ) {
      uVar7 = uVar7 + 1;
      if (uVar8 == uVar7) goto LAB_0004d270;
      if (((char *)*puVar9 != pcVar1) && (iVar3 = strcmp((char *)*puVar9,pcVar1), iVar3 != 0))
      break;
      puVar9 = puVar9 + 5;
    }
  }
LAB_0004d270:
  DAT_00081260 = FUN_0002a970();
  uVar8 = 0;
  pcVar1 = "lda";
  do {
    pcVar4 = pcVar1;
    ppuVar10 = &PTR_DAT_00075d40 + uVar8 * 0x13;
    iVar3 = FUN_0002a9c0(DAT_00081260,pcVar4,ppuVar10);
    if (iVar3 != 0) {
      uVar6 = dcgettext(0,"internal error: can\'t hash macro `%s\': %s",5);
                    /* WARNING: Subroutine does not return */
      FUN_000316c0(uVar6,pcVar4,iVar3);
    }
    while( true ) {
      uVar8 = uVar8 + 1;
      if (0x34 < uVar8) {
        iVar3 = 0;
        uVar8 = 0;
        do {
          sprintf(local_21,"$%d",uVar8);
          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar8,iVar3,&DAT_000813a0);
          uVar7 = uVar8 + 1;
          iVar3 = iVar3 + (uint)(0xfffffffe < uVar8);
          *(undefined4 *)(&DAT_00081160 + uVar8 * 4) = uVar6;
          uVar8 = uVar7;
        } while (iVar3 != 0 || uVar7 != 0x20);
        do {
          sprintf(local_21,"$f%d",uVar7 - 0x20);
          uVar6 = FUN_0003e2a0(local_21,DAT_00081410,uVar7,iVar3,&DAT_000813a0);
          uVar8 = uVar7 + 1;
          iVar3 = iVar3 + (uint)(0xfffffffe < uVar7);
          *(undefined4 *)(&DAT_00081160 + uVar7 * 4) = uVar6;
          uVar7 = uVar8;
        } while (iVar3 != 0 || uVar8 != 0x40);
        bfd_set_gp_size(DAT_00081544,DAT_0007850c);
        if (0 < DAT_00078510) {
          iVar3 = FUN_0003c230(".mdebug",0);
          bfd_set_section_flags(DAT_00081544,iVar3,0x108);
          *(undefined4 *)(iVar3 + 0x58) = 3;
        }
        DAT_0008112c = FUN_0002a970();
        FUN_0003c290(DAT_00081494,0);
        return;
      }
      pcVar1 = ppuVar10[0x13];
      if ((pcVar1 != pcVar4) && (iVar3 = strcmp(pcVar1,pcVar4), iVar3 != 0)) break;
      ppuVar10 = ppuVar10 + 0x13;
    }
  } while( true );
}

