
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

int ia64_parse_name(char *name,expressionS *e,char *nextcharP)

{
  char cVar1;
  pseudo_type pVar2;
  anon_union_4_2_62362db2_for_u aVar3;
  undefined4 uVar4;
  byte bVar5;
  int iVar6;
  char *pcVar7;
  symbolS *s;
  void *pvVar8;
  ulong uVar9;
  int iVar10;
  anon_struct_12_3_33555352 *paVar11;
  uint uVar12;
  valueT vVar13;
  char *end;
  undefined4 uStack_14;
  
  uStack_14 = 0x4f3d9;
  if (*name != '@') {
    s = (symbolS *)hash_find(md.reg_hash,name);
    if (s != (symbolS *)0x0) {
      e->field_0x10 = 5;
      vVar13 = S_GET_VALUE(s);
      e->X_add_number = vVar13;
      return 1;
    }
    pvVar8 = hash_find(md.const_hash,name);
    if (pvVar8 != (void *)0x0) {
      e->field_0x10 = 2;
      uVar4 = *(undefined4 *)((int)pvVar8 + 4);
      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)pvVar8 + 8);
      *(undefined4 *)&e->X_add_number = uVar4;
      return 1;
    }
    cVar1 = *name;
    if (cVar1 == 'l') {
      if (((name[1] != 'o') || (name[2] != 'c')) ||
         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;
      pcVar7 = name + 3;
      bVar5 = name[3];
      iVar6 = 3;
      iVar10 = 0x87d6c;
    }
    else if (cVar1 == 'o') {
      if (((name[1] != 'u') || (name[2] != 't')) ||
         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;
      pcVar7 = name + 3;
      bVar5 = name[3];
      iVar6 = 3;
      iVar10 = 0x87d78;
    }
    else {
      if (((cVar1 != 'i') || (name[1] != 'n')) ||
         (bVar5 = name[2], (PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4) == 0))
      goto LAB_0004f57f;
      pcVar7 = name + 2;
      iVar6 = 2;
      iVar10 = 0x87d60;
    }
    if (((bVar5 != 0x30) || (name[iVar6 + 1] == '\0')) &&
       ((uVar9 = strtoul(pcVar7,&end,10), pcVar7 < end && ((*end == '\0' && (uVar9 < 0x60)))))) {
      uVar12 = (uint)*(ushort *)(iVar10 + 10);
      if (uVar12 <= uVar9) {
        if (*(ushort *)(iVar10 + 10) == 0) {
          pcVar7 = (char *)dcgettext(0,"No current frame",5,uVar12);
          as_bad(pcVar7);
          uVar9 = 0;
        }
        else {
          pcVar7 = (char *)dcgettext(0,"Register number out of range 0..%u",5,name);
          as_bad(pcVar7,uVar12 - 1);
          uVar9 = 0;
        }
      }
      e->field_0x10 = 5;
      *(ulong *)&e->X_add_number = uVar9 + *(ushort *)(iVar10 + 8);
      *(undefined4 *)((int)&e->X_add_number + 4) = 0;
      return 1;
    }
LAB_0004f57f:
    end = (char *)xstrdup(name);
    pcVar7 = ia64_canonicalize_symbol_name(end);
    pvVar8 = hash_find(md.dynreg_hash,pcVar7);
    if (pvVar8 != (void *)0x0) {
      e->field_0x10 = 5;
      iVar10 = *(int *)((int)pvVar8 + 8);
      *(int *)&e->X_add_number = iVar10;
      *(int *)((int)&e->X_add_number + 4) = iVar10 >> 0x1f;
      free(end);
      return 1;
    }
    free(end);
    return 0;
  }
  paVar11 = pseudo_func;
  iVar10 = 0;
  while (((pcVar7 = paVar11->name, pcVar7 == (char *)0x0 || (*pcVar7 != name[1])) ||
         (iVar6 = strcmp(pcVar7 + 1,name + 2), iVar6 != 0))) {
    iVar10 = iVar10 + 1;
    paVar11 = paVar11 + 1;
    if (iVar10 == 0x2d) {
      return 0;
    }
  }
  pVar2 = pseudo_func[iVar10].type;
  if (pVar2 == PSEUDO_FUNC_CONST) {
    aVar3 = pseudo_func[iVar10].u;
    e->field_0x10 = 2;
    *(anon_union_4_2_62362db2_for_u *)&e->X_add_number = aVar3;
    *(undefined4 *)((int)&e->X_add_number + 4) = 0;
    return 1;
  }
  if (pVar2 == PSEUDO_FUNC_REG) {
    aVar3 = pseudo_func[iVar10].u;
    e->field_0x10 = 5;
    *(anon_union_4_2_62362db2_for_u *)&e->X_add_number = aVar3;
    *(undefined4 *)((int)&e->X_add_number + 4) = 0;
    return 1;
  }
  if (pVar2 != PSEUDO_FUNC_RELOC) {
    return 0;
  }
  end = input_line_pointer;
  if (*nextcharP != '(') {
    pcVar7 = (char *)dcgettext(0,"Expected \'(\'",5);
    as_bad(pcVar7);
    return 1;
  }
  input_line_pointer = input_line_pointer + 1;
  expr(0,e,expr_normal);
  if (*input_line_pointer == ')') {
    input_line_pointer = input_line_pointer + 1;
    if (e->field_0x10 == '\x03') {
LAB_0004f68b:
      pcVar7 = input_line_pointer;
      e->field_0x10 = 0x3f;
      e->X_op_symbol = (symbolS *)pseudo_func[iVar10].u;
      goto LAB_0004f6a4;
    }
    if (e->field_0x10 == '?') {
      if (iVar10 == 4) {
        vVar13 = S_GET_VALUE(e->X_op_symbol);
        if (vVar13 == 1) {
          iVar10 = 0xe;
        }
        else if (vVar13 == 0) {
          iVar10 = 0xd;
        }
        else if (vVar13 == 2) {
          iVar10 = 0xc;
        }
        else {
          if (vVar13 != 10) goto LAB_0004f824;
          iVar10 = 0xf;
        }
        goto LAB_0004f68b;
      }
LAB_0004f824:
      pcVar7 = "Illegal combination of relocation functions";
    }
    else {
      pcVar7 = "Not a symbolic expression";
    }
  }
  else {
    pcVar7 = "Missing \')\'";
  }
  pcVar7 = (char *)dcgettext(0,pcVar7,5);
  as_bad(pcVar7);
  pcVar7 = input_line_pointer;
LAB_0004f6a4:
  *nextcharP = *pcVar7;
  return 1;
}



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

undefined4 FUN_0004f3d0(char *param_1,int param_2,char *param_3)

{
  char cVar1;
  byte bVar2;
  int iVar3;
  undefined4 uVar4;
  ulong uVar5;
  char *pcVar6;
  int iVar7;
  undefined *puVar8;
  undefined **ppuVar9;
  uint uVar10;
  undefined8 uVar11;
  longlong lVar12;
  char *local_20 [3];
  undefined4 uStack_14;
  
  uStack_14 = 0x4f3d9;
  if (*param_1 != '@') {
    iVar7 = FUN_00022b40(DAT_00087944,param_1);
    if (iVar7 != 0) {
      *(undefined1 *)(param_2 + 0x10) = 5;
      uVar11 = FUN_000375e0(iVar7);
      *(undefined8 *)(param_2 + 8) = uVar11;
      return 1;
    }
    iVar7 = FUN_00022b40(DAT_0008794c,param_1);
    if (iVar7 != 0) {
      *(undefined1 *)(param_2 + 0x10) = 2;
      uVar4 = *(undefined4 *)(iVar7 + 4);
      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);
      *(undefined4 *)(param_2 + 8) = uVar4;
      return 1;
    }
    cVar1 = *param_1;
    if (cVar1 == 'l') {
      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||
         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;
      pcVar6 = param_1 + 3;
      bVar2 = param_1[3];
      iVar7 = 3;
      puVar8 = &DAT_00087d6c;
    }
    else if (cVar1 == 'o') {
      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||
         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;
      pcVar6 = param_1 + 3;
      bVar2 = param_1[3];
      iVar7 = 3;
      puVar8 = &DAT_00087d78;
    }
    else {
      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||
         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))
      goto LAB_0004f57f;
      pcVar6 = param_1 + 2;
      iVar7 = 2;
      puVar8 = &DAT_00087d60;
    }
    if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&
       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&
        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {
      uVar10 = (uint)*(ushort *)(puVar8 + 10);
      if (uVar10 <= uVar5) {
        if (*(ushort *)(puVar8 + 10) == 0) {
          uVar4 = dcgettext(0,"No current frame",5,uVar10);
          FUN_00029550(uVar4);
          uVar5 = 0;
        }
        else {
          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);
          FUN_00029550(uVar4,uVar10 - 1);
          uVar5 = 0;
        }
      }
      *(undefined1 *)(param_2 + 0x10) = 5;
      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);
      *(undefined4 *)(param_2 + 0xc) = 0;
      return 1;
    }
LAB_0004f57f:
    local_20[0] = (char *)xstrdup(param_1);
    uVar4 = FUN_0004e9c0(local_20[0]);
    iVar7 = FUN_00022b40(DAT_00087948,uVar4);
    if (iVar7 != 0) {
      *(undefined1 *)(param_2 + 0x10) = 5;
      iVar7 = *(int *)(iVar7 + 8);
      *(int *)(param_2 + 8) = iVar7;
      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;
      free(local_20[0]);
      return 1;
    }
    free(local_20[0]);
    return 0;
  }
  ppuVar9 = &PTR_DAT_0007edc0;
  iVar7 = 0;
  while (((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||
         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0))) {
    iVar7 = iVar7 + 1;
    ppuVar9 = ppuVar9 + 3;
    if (iVar7 == 0x2d) {
      return 0;
    }
  }
  iVar3 = (&DAT_0007edc4)[iVar7 * 3];
  if (iVar3 == 2) {
    uVar4 = (&DAT_0007edc8)[iVar7 * 3];
    *(undefined1 *)(param_2 + 0x10) = 2;
    *(undefined4 *)(param_2 + 8) = uVar4;
    *(undefined4 *)(param_2 + 0xc) = 0;
    return 1;
  }
  if (iVar3 == 3) {
    uVar4 = (&DAT_0007edc8)[iVar7 * 3];
    *(undefined1 *)(param_2 + 0x10) = 5;
    *(undefined4 *)(param_2 + 8) = uVar4;
    *(undefined4 *)(param_2 + 0xc) = 0;
    return 1;
  }
  if (iVar3 != 1) {
    return 0;
  }
  local_20[0] = DAT_00088118;
  if (*param_3 != '(') {
    uVar4 = dcgettext(0,"Expected \'(\'",5);
    FUN_00029550(uVar4);
    return 1;
  }
  DAT_00088118 = DAT_00088118 + 1;
  FUN_00020530(0,param_2,1);
  if (*DAT_00088118 == ')') {
    DAT_00088118 = DAT_00088118 + 1;
    if (*(char *)(param_2 + 0x10) == '\x03') {
LAB_0004f68b:
      pcVar6 = DAT_00088118;
      *(undefined1 *)(param_2 + 0x10) = 0x3f;
      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];
      goto LAB_0004f6a4;
    }
    if (*(char *)(param_2 + 0x10) == '?') {
      if (iVar7 == 4) {
        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));
        if (lVar12 == 1) {
          iVar7 = 0xe;
        }
        else if (lVar12 == 0) {
          iVar7 = 0xd;
        }
        else if (lVar12 == 2) {
          iVar7 = 0xc;
        }
        else {
          if (lVar12 != 10) goto LAB_0004f824;
          iVar7 = 0xf;
        }
        goto LAB_0004f68b;
      }
LAB_0004f824:
      pcVar6 = "Illegal combination of relocation functions";
    }
    else {
      pcVar6 = "Not a symbolic expression";
    }
  }
  else {
    pcVar6 = "Missing \')\'";
  }
  uVar4 = dcgettext(0,pcVar6,5);
  FUN_00029550(uVar4);
  pcVar6 = DAT_00088118;
LAB_0004f6a4:
  *param_3 = *pcVar6;
  return 1;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016030
ADD EBX,0x2ec27
SUB ESP,0x2c
MOV EBP,dword ptr [ESP + 0x40]
CMP byte ptr [EBP],0x40
JNZ 0x0004f4c8
LEA EAX,[EBP + 0x2]
LEA EDI,[EBX + 0xdc0]
XOR ESI,ESI
MOV dword ptr [ESP + 0xc],EAX
JMP 0x0004f417
ADD ESI,0x1
ADD EDI,0xc
CMP ESI,0x2d
JZ 0x0004f518
MOV EAX,dword ptr [EDI]
TEST EAX,EAX
JZ 0x0004f408
MOVZX ECX,byte ptr [EBP + 0x1]
CMP byte ptr [EAX],CL
JNZ 0x0004f408
SUB ESP,0x8
ADD EAX,0x1
PUSH dword ptr [ESP + 0x14]
PUSH EAX
CALL 0x00014090
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004f408
LEA EDX,[ESI + ESI*0x2]
LEA ECX,[EBX + EDX*0x4 + 0xdc0]
MOV EDX,dword ptr [ECX + 0x4]
CMP EDX,0x2
JZ 0x0004f5da
CMP EDX,0x3
JNZ 0x0004f480
MOV EAX,dword ptr [ESP + 0x44]
MOV EDX,dword ptr [ECX + 0x8]
MOV byte ptr [EAX + 0x10],0x5
MOV dword ptr [EAX + 0x8],EDX
MOV dword ptr [EAX + 0xc],0x0
MOV EAX,0x1
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP EDX,0x1
JNZ 0x0004f471
LEA EDI,[EBX + 0xa118]
MOV EDX,dword ptr [ESP + 0x48]
MOV EAX,dword ptr [EDI]
CMP byte ptr [EDX],0x28
MOV dword ptr [ESP + 0x1c],EAX
JZ 0x0004f5fc
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe5c47]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141b0
MOV dword ptr [ESP],EAX
CALL 0x00029550
ADD ESP,0x10
MOV EAX,0x1
JMP 0x0004f471
SUB ESP,0x8
PUSH EBP
PUSH dword ptr [EBX + 0x9944]
CALL 0x00022b40
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004f528
MOV EDX,dword ptr [ESP + 0x44]
SUB ESP,0xc
MOV byte ptr [EDX + 0x10],0x5
PUSH EAX
CALL 0x000375e0
MOV EBX,dword ptr [ESP + 0x54]
ADD ESP,0x10
MOV dword ptr [EBX + 0x8],EAX
MOV EAX,0x1
MOV dword ptr [EBX + 0xc],EDX
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH dword ptr [ESP + 0x28]
CALL 0x00014790
ADD ESP,0x10
ADD ESP,0x2c
XOR EAX,EAX
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
PUSH EBP
PUSH dword ptr [EBX + 0x994c]
CALL 0x00022b40
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004f563
MOV EDX,dword ptr [ESP + 0x44]
MOV EBX,dword ptr [ESP + 0x44]
MOV byte ptr [EDX + 0x10],0x2
MOV EDX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [EBX + 0xc],EDX
MOV dword ptr [EBX + 0x8],EAX
ADD ESP,0x2c
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOVZX EAX,byte ptr [EBP]
CMP AL,0x6c
JZ 0x0004f7c0
CMP AL,0x6f
JZ 0x0004f780
CMP AL,0x69
JZ 0x0004f6b7
SUB ESP,0xc
PUSH EBP
CALL 0x000142f0
MOV dword ptr [ESP + 0x2c],EAX
MOV dword ptr [ESP],EAX
CALL 0x0004e9c0
POP EDX
POP ECX
PUSH EAX
PUSH dword ptr [EBX + 0x9948]
CALL 0x00022b40
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004f509
MOV EDX,dword ptr [ESP + 0x44]
SUB ESP,0xc
MOV byte ptr [EDX + 0x10],0x5
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [EDX + 0x8],EAX
SAR EAX,0x1f
MOV dword ptr [EDX + 0xc],EAX
PUSH dword ptr [ESP + 0x28]
CALL 0x00014790
ADD ESP,0x10
MOV EAX,0x1
JMP 0x0004f471
MOV EAX,dword ptr [ESP + 0x44]
MOV EDX,dword ptr [ECX + 0x8]
MOV byte ptr [EAX + 0x10],0x2
MOV dword ptr [EAX + 0x8],EDX
MOV dword ptr [EAX + 0xc],0x0
ADD ESP,0x2c
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
ADD EAX,0x1
MOV dword ptr [EDI],EAX
PUSH 0x1
PUSH dword ptr [ESP + 0x4c]
PUSH 0x0
CALL 0x00020530
MOV EAX,dword ptr [EDI]
ADD ESP,0x10
CMP byte ptr [EAX],0x29
JNZ 0x0004f7ff
MOV EDX,dword ptr [ESP + 0x44]
ADD EAX,0x1
MOV dword ptr [EDI],EAX
MOVZX EDX,byte ptr [EDX + 0x10]
CMP DL,0x3
JZ 0x0004f68b
CMP DL,0x3f
JNZ 0x0004f831
CMP ESI,0x4
JNZ 0x0004f824
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x50]
PUSH dword ptr [EAX + 0x4]
CALL 0x000375e0
ADD ESP,0x10
MOV ECX,EAX
XOR ECX,0x1
OR ECX,EDX
JZ 0x0004f856
MOV ECX,EDX
OR ECX,EAX
JZ 0x0004f84a
MOV ECX,EAX
XOR ECX,0x2
OR ECX,EDX
JZ 0x0004f83e
XOR EAX,0xa
OR EDX,EAX
JNZ 0x0004f824
MOV EAX,dword ptr [EDI]
MOV ESI,0xf
MOV EDX,dword ptr [ESP + 0x44]
MOV byte ptr [EDX + 0x10],0x3f
LEA EDX,[ESI + ESI*0x2]
MOV EDX,dword ptr [EBX + EDX*0x4 + 0xdc8]
MOV EBX,dword ptr [ESP + 0x44]
MOV dword ptr [EBX + 0x4],EDX
MOVZX EAX,byte ptr [EAX]
MOV EDX,dword ptr [ESP + 0x48]
MOV byte ptr [EDX],AL
MOV EAX,0x1
JMP 0x0004f471
CMP byte ptr [EBP + 0x1],0x6e
JNZ 0x0004f57f
MOVZX ESI,byte ptr [EBP + 0x2]
MOV EDX,dword ptr [EBX + 0xffffff84]
MOV EAX,ESI
TEST byte ptr [EDX + ESI*0x2],0x4
JZ 0x0004f57f
LEA EDI,[EBP + 0x2]
MOV EDX,0x2
LEA ESI,[EBX + 0x9d60]
CMP AL,0x30
JNZ 0x0004f6f4
CMP byte ptr [EBP + EDX*0x1 + 0x1],0x0
JNZ 0x0004f57f
SUB ESP,0x4
PUSH 0xa
LEA EAX,[ESP + 0x24]
PUSH EAX
PUSH EDI
CALL 0x00014400
MOV EDX,dword ptr [ESP + 0x2c]
ADD ESP,0x10
CMP EDX,EDI
JBE 0x0004f57f
CMP byte ptr [EDX],0x0
JNZ 0x0004f57f
CMP EAX,0x5f
JA 0x0004f57f
MOVZX EDI,word ptr [ESI + 0xa]
CMP EDI,EAX
JA 0x0004f754
TEST DI,DI
JNZ 0x0004f862
LEA EAX,[EBX + 0xfffe5c7a]
PUSH EDI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141b0
MOV dword ptr [ESP],EAX
CALL 0x00029550
ADD ESP,0x10
XOR EAX,EAX
MOV EDX,dword ptr [ESP + 0x44]
MOV byte ptr [EDX + 0x10],0x5
MOVZX EDX,word ptr [ESI + 0x8]
ADD EAX,EDX
MOV EDX,dword ptr [ESP + 0x44]
MOV dword ptr [EDX + 0x8],EAX
MOV EAX,0x1
MOV dword ptr [EDX + 0xc],0x0
JMP 0x0004f471
CMP byte ptr [EBP + 0x1],0x75
JNZ 0x0004f57f
CMP byte ptr [EBP + 0x2],0x74
JNZ 0x0004f57f
MOVZX EDX,byte ptr [EBP + 0x3]
MOV EAX,dword ptr [EBX + 0xffffff84]
TEST byte ptr [EAX + EDX*0x2],0x4
JZ 0x0004f57f
LEA EDI,[EBP + 0x3]
MOVZX EAX,byte ptr [EBP + 0x3]
MOV EDX,0x3
LEA ESI,[EBX + 0x9d78]
JMP 0x0004f6e5
CMP byte ptr [EBP + 0x1],0x6f
JNZ 0x0004f57f
CMP byte ptr [EBP + 0x2],0x63
JNZ 0x0004f57f
MOVZX EDX,byte ptr [EBP + 0x3]
MOV EAX,dword ptr [EBX + 0xffffff84]
TEST byte ptr [EAX + EDX*0x2],0x4
JZ 0x0004f57f
LEA EDI,[EBP + 0x3]
MOVZX EAX,byte ptr [EBP + 0x3]
MOV EDX,0x3
LEA ESI,[EBX + 0x9d6c]
JMP 0x0004f6e5
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe5c54]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141b0
MOV dword ptr [ESP],EAX
CALL 0x00029550
MOV EAX,dword ptr [EDI]
ADD ESP,0x10
JMP 0x0004f6a4
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe5050]
PUSH 0x5
JMP 0x0004f80a
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe5c60]
PUSH 0x5
JMP 0x0004f80a
MOV EAX,dword ptr [EDI]
MOV ESI,0xc
JMP 0x0004f68b
MOV EAX,dword ptr [EDI]
MOV ESI,0xd
JMP 0x0004f68b
MOV EAX,dword ptr [EDI]
MOV ESI,0xe
JMP 0x0004f68b
LEA EAX,[EBX + 0xfffe507c]
PUSH EBP
SUB EDI,0x1
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141b0
POP EDX
POP ECX
PUSH EDI
PUSH EAX
CALL 0x00029550
ADD ESP,0x10
XOR EAX,EAX
JMP 0x0004f754
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_0004f3d0(char *param_1,int param_2,char *param_3)\n\n{\n  char cVar1;\n  byte bVar2;\n  int iVar3;\n  undefined4 uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined *puVar8;\n  undefined **ppuVar9;\n  uint uVar10;\n  undefined8 uVar11;\n  longlong lVar12;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4f3d9;\n  if (*param_1 != '@') {\n    iVar7 = FUN_00022b40(DAT_00087944,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }\n    iVar7 = FUN_00022b40(DAT_0008794c,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }\n    cVar1 = *param_1;\n    if (cVar1 == 'l') {\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }\n    if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    local_20[0] = (char *)xstrdup(param_1);\n    uVar4 = FUN_0004e9c0(local_20[0]);\n    iVar7 = FUN_00022b40(DAT_00087948,uVar4);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }\n    free(local_20[0]);\n    return 0;\n  }\n  ppuVar9 = &PTR_DAT_0007edc0;\n  iVar7 = 0;\n  while (((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0))) {\n    iVar7 = iVar7 + 1;\n    ppuVar9 = ppuVar9 + 3;\n    if (iVar7 == 0x2d) {\n      return 0;\n    }\n  }\n  iVar3 = (&DAT_0007edc4)[iVar7 * 3];\n  if (iVar3 == 2) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 2;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }\n  if (iVar3 == 3) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 5;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }\n  if (iVar3 != 1) {\n    return 0;\n  }\n  local_20[0] = DAT_00088118;\n  if (*param_3 != '(') {\n    uVar4 = dcgettext(0,"Expected \'(\'",5);\n    FUN_00029550(uVar4);\n    return 1;\n  }\n  DAT_00088118 = DAT_00088118 + 1;\n  FUN_00020530(0,param_2,1);\n  if (*DAT_00088118 == ')') {\n    DAT_00088118 = DAT_00088118 + 1;\n    if (*(char *)(param_2 + 0x10) == '\x03') {\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }\n    if (*(char *)(param_2 + 0x10) == '?') {\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar6 = "Not a symbolic expression";\n    }\n  }\n  else {\n    pcVar6 = "Missing \')\'";\n  }\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_00029550(uVar4);\n  pcVar6 = DAT_00088118;\nLAB_0004f6a4:\n  *param_3 = *pcVar6;\n  return 1;\n}\n\n" comment (function_definition "undefined4 FUN_0004f3d0(char *param_1,int param_2,char *param_3)\n\n{\n  char cVar1;\n  byte bVar2;\n  int iVar3;\n  undefined4 uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined *puVar8;\n  undefined **ppuVar9;\n  uint uVar10;\n  undefined8 uVar11;\n  longlong lVar12;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4f3d9;\n  if (*param_1 != '@') {\n    iVar7 = FUN_00022b40(DAT_00087944,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }\n    iVar7 = FUN_00022b40(DAT_0008794c,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }\n    cVar1 = *param_1;\n    if (cVar1 == 'l') {\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }\n    if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    local_20[0] = (char *)xstrdup(param_1);\n    uVar4 = FUN_0004e9c0(local_20[0]);\n    iVar7 = FUN_00022b40(DAT_00087948,uVar4);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }\n    free(local_20[0]);\n    return 0;\n  }\n  ppuVar9 = &PTR_DAT_0007edc0;\n  iVar7 = 0;\n  while (((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0))) {\n    iVar7 = iVar7 + 1;\n    ppuVar9 = ppuVar9 + 3;\n    if (iVar7 == 0x2d) {\n      return 0;\n    }\n  }\n  iVar3 = (&DAT_0007edc4)[iVar7 * 3];\n  if (iVar3 == 2) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 2;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }\n  if (iVar3 == 3) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 5;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }\n  if (iVar3 != 1) {\n    return 0;\n  }\n  local_20[0] = DAT_00088118;\n  if (*param_3 != '(') {\n    uVar4 = dcgettext(0,"Expected \'(\'",5);\n    FUN_00029550(uVar4);\n    return 1;\n  }\n  DAT_00088118 = DAT_00088118 + 1;\n  FUN_00020530(0,param_2,1);\n  if (*DAT_00088118 == ')') {\n    DAT_00088118 = DAT_00088118 + 1;\n    if (*(char *)(param_2 + 0x10) == '\x03') {\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }\n    if (*(char *)(param_2 + 0x10) == '?') {\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar6 = "Not a symbolic expression";\n    }\n  }\n  else {\n    pcVar6 = "Missing \')\'";\n  }\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_00029550(uVar4);\n  pcVar6 = DAT_00088118;\nLAB_0004f6a4:\n  *param_3 = *pcVar6;\n  return 1;\n}" type_identifier (function_declarator "FUN_0004f3d0(char *param_1,int param_2,char *param_3)" identifier (parameter_list "(char *param_1,int param_2,char *param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  int iVar3;\n  undefined4 uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined *puVar8;\n  undefined **ppuVar9;\n  uint uVar10;\n  undefined8 uVar11;\n  longlong lVar12;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4f3d9;\n  if (*param_1 != '@') {\n    iVar7 = FUN_00022b40(DAT_00087944,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }\n    iVar7 = FUN_00022b40(DAT_0008794c,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }\n    cVar1 = *param_1;\n    if (cVar1 == 'l') {\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }\n    if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    local_20[0] = (char *)xstrdup(param_1);\n    uVar4 = FUN_0004e9c0(local_20[0]);\n    iVar7 = FUN_00022b40(DAT_00087948,uVar4);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }\n    free(local_20[0]);\n    return 0;\n  }\n  ppuVar9 = &PTR_DAT_0007edc0;\n  iVar7 = 0;\n  while (((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0))) {\n    iVar7 = iVar7 + 1;\n    ppuVar9 = ppuVar9 + 3;\n    if (iVar7 == 0x2d) {\n      return 0;\n    }\n  }\n  iVar3 = (&DAT_0007edc4)[iVar7 * 3];\n  if (iVar3 == 2) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 2;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }\n  if (iVar3 == 3) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 5;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }\n  if (iVar3 != 1) {\n    return 0;\n  }\n  local_20[0] = DAT_00088118;\n  if (*param_3 != '(') {\n    uVar4 = dcgettext(0,"Expected \'(\'",5);\n    FUN_00029550(uVar4);\n    return 1;\n  }\n  DAT_00088118 = DAT_00088118 + 1;\n  FUN_00020530(0,param_2,1);\n  if (*DAT_00088118 == ')') {\n    DAT_00088118 = DAT_00088118 + 1;\n    if (*(char *)(param_2 + 0x10) == '\x03') {\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }\n    if (*(char *)(param_2 + 0x10) == '?') {\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar6 = "Not a symbolic expression";\n    }\n  }\n  else {\n    pcVar6 = "Missing \')\'";\n  }\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_00029550(uVar4);\n  pcVar6 = DAT_00088118;\nLAB_0004f6a4:\n  *param_3 = *pcVar6;\n  return 1;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined **ppuVar9;" type_identifier (pointer_declarator "**ppuVar9" * (pointer_declarator "*ppuVar9" * identifier)) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "longlong lVar12;" type_identifier identifier ;) (declaration "char *local_20 [3];" primitive_type (pointer_declarator "*local_20 [3]" * (array_declarator "local_20 [3]" identifier [ number_literal ])) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x4f3d9;" (assignment_expression "uStack_14 = 0x4f3d9" identifier = number_literal) ;) (if_statement "if (*param_1 != '@') {\n    iVar7 = FUN_00022b40(DAT_00087944,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }\n    iVar7 = FUN_00022b40(DAT_0008794c,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }\n    cVar1 = *param_1;\n    if (cVar1 == 'l') {\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }\n    if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    local_20[0] = (char *)xstrdup(param_1);\n    uVar4 = FUN_0004e9c0(local_20[0]);\n    iVar7 = FUN_00022b40(DAT_00087948,uVar4);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }\n    free(local_20[0]);\n    return 0;\n  }" if (parenthesized_expression "(*param_1 != '@')" ( (binary_expression "*param_1 != '@'" (pointer_expression "*param_1" * identifier) != (char_literal "'@'" ' character ')) )) (compound_statement "{\n    iVar7 = FUN_00022b40(DAT_00087944,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }\n    iVar7 = FUN_00022b40(DAT_0008794c,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }\n    cVar1 = *param_1;\n    if (cVar1 == 'l') {\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }\n    if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    local_20[0] = (char *)xstrdup(param_1);\n    uVar4 = FUN_0004e9c0(local_20[0]);\n    iVar7 = FUN_00022b40(DAT_00087948,uVar4);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }\n    free(local_20[0]);\n    return 0;\n  }" { (expression_statement "iVar7 = FUN_00022b40(DAT_00087944,param_1);" (assignment_expression "iVar7 = FUN_00022b40(DAT_00087944,param_1)" identifier = (call_expression "FUN_00022b40(DAT_00087944,param_1)" identifier (argument_list "(DAT_00087944,param_1)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }" { (expression_statement "*(undefined1 *)(param_2 + 0x10) = 5;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 5" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" * (cast_expression "(undefined1 *)(param_2 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = FUN_000375e0(iVar7);" (assignment_expression "uVar11 = FUN_000375e0(iVar7)" identifier = (call_expression "FUN_000375e0(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "*(undefined8 *)(param_2 + 8) = uVar11;" (assignment_expression "*(undefined8 *)(param_2 + 8) = uVar11" (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar7 = FUN_00022b40(DAT_0008794c,param_1);" (assignment_expression "iVar7 = FUN_00022b40(DAT_0008794c,param_1)" identifier = (call_expression "FUN_00022b40(DAT_0008794c,param_1)" identifier (argument_list "(DAT_0008794c,param_1)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }" { (expression_statement "*(undefined1 *)(param_2 + 0x10) = 2;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 2" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" * (cast_expression "(undefined1 *)(param_2 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar4 = *(undefined4 *)(iVar7 + 4);" (assignment_expression "uVar4 = *(undefined4 *)(iVar7 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);" (assignment_expression "*(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8)" (pointer_expression "*(undefined4 *)(param_2 + 0xc)" * (cast_expression "(undefined4 *)(param_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar7 + 8)" * (cast_expression "(undefined4 *)(iVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_2 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(param_2 + 8) = uVar4" (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (cVar1 == 'l') {\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }" if (parenthesized_expression "(cVar1 == 'l')" ( (binary_expression "cVar1 == 'l'" identifier == (char_literal "'l'" ' character ')) )) (compound_statement "{\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }" { (if_statement "if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;" if (parenthesized_expression "(((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0))" ( (binary_expression "((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)" (parenthesized_expression "((param_1[1] != 'o') || (param_1[2] != 'c'))" ( (binary_expression "(param_1[1] != 'o') || (param_1[2] != 'c')" (parenthesized_expression "(param_1[1] != 'o')" ( (binary_expression "param_1[1] != 'o'" (subscript_expression "param_1[1]" identifier [ number_literal ]) != (char_literal "'o'" ' character ')) )) || (parenthesized_expression "(param_1[2] != 'c')" ( (binary_expression "param_1[2] != 'c'" (subscript_expression "param_1[2]" identifier [ number_literal ]) != (char_literal "'c'" ' character ')) ))) )) || (parenthesized_expression "((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)" ( (binary_expression "(PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0" (parenthesized_expression "(PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4)" ( (binary_expression "PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4" (subscript_expression "PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2]" identifier [ (binary_expression "(uint)(byte)param_1[3] * 2" (cast_expression "(uint)(byte)param_1[3]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)param_1[3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) * number_literal) ]) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_0004f57f;" goto statement_identifier ;)) (expression_statement "pcVar6 = param_1 + 3;" (assignment_expression "pcVar6 = param_1 + 3" identifier = (binary_expression "param_1 + 3" identifier + number_literal)) ;) (expression_statement "bVar2 = param_1[3];" (assignment_expression "bVar2 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (expression_statement "puVar8 = &DAT_00087d6c;" (assignment_expression "puVar8 = &DAT_00087d6c" identifier = (pointer_expression "&DAT_00087d6c" & identifier)) ;) }) (else_clause "else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }" else (if_statement "if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }" if (parenthesized_expression "(cVar1 == 'o')" ( (binary_expression "cVar1 == 'o'" identifier == (char_literal "'o'" ' character ')) )) (compound_statement "{\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }" { (if_statement "if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;" if (parenthesized_expression "(((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0))" ( (binary_expression "((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)" (parenthesized_expression "((param_1[1] != 'u') || (param_1[2] != 't'))" ( (binary_expression "(param_1[1] != 'u') || (param_1[2] != 't')" (parenthesized_expression "(param_1[1] != 'u')" ( (binary_expression "param_1[1] != 'u'" (subscript_expression "param_1[1]" identifier [ number_literal ]) != (char_literal "'u'" ' character ')) )) || (parenthesized_expression "(param_1[2] != 't')" ( (binary_expression "param_1[2] != 't'" (subscript_expression "param_1[2]" identifier [ number_literal ]) != (char_literal "'t'" ' character ')) ))) )) || (parenthesized_expression "((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)" ( (binary_expression "(PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0" (parenthesized_expression "(PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4)" ( (binary_expression "PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4" (subscript_expression "PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2]" identifier [ (binary_expression "(uint)(byte)param_1[3] * 2" (cast_expression "(uint)(byte)param_1[3]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)param_1[3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) * number_literal) ]) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_0004f57f;" goto statement_identifier ;)) (expression_statement "pcVar6 = param_1 + 3;" (assignment_expression "pcVar6 = param_1 + 3" identifier = (binary_expression "param_1 + 3" identifier + number_literal)) ;) (expression_statement "bVar2 = param_1[3];" (assignment_expression "bVar2 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (expression_statement "puVar8 = &DAT_00087d78;" (assignment_expression "puVar8 = &DAT_00087d78" identifier = (pointer_expression "&DAT_00087d78" & identifier)) ;) }) (else_clause "else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }" else (compound_statement "{\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }" { (if_statement "if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;" if (parenthesized_expression "(((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))" ( (binary_expression "((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0)" (parenthesized_expression "((cVar1 != 'i') || (param_1[1] != 'n'))" ( (binary_expression "(cVar1 != 'i') || (param_1[1] != 'n')" (parenthesized_expression "(cVar1 != 'i')" ( (binary_expression "cVar1 != 'i'" identifier != (char_literal "'i'" ' character ')) )) || (parenthesized_expression "(param_1[1] != 'n')" ( (binary_expression "param_1[1] != 'n'" (subscript_expression "param_1[1]" identifier [ number_literal ]) != (char_literal "'n'" ' character ')) ))) )) || (parenthesized_expression "(bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0)" ( (comma_expression "bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0" (assignment_expression "bVar2 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) , (binary_expression "(PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0" (parenthesized_expression "(PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4)" ( (binary_expression "PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4" (subscript_expression "PTR__sch_istable_0007df84[(uint)bVar2 * 2]" identifier [ (binary_expression "(uint)bVar2 * 2" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal)) ))) )) (goto_statement "goto LAB_0004f57f;" goto statement_identifier ;)) (expression_statement "pcVar6 = param_1 + 2;" (assignment_expression "pcVar6 = param_1 + 2" identifier = (binary_expression "param_1 + 2" identifier + number_literal)) ;) (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) (expression_statement "puVar8 = &DAT_00087d60;" (assignment_expression "puVar8 = &DAT_00087d60" identifier = (pointer_expression "&DAT_00087d60" & identifier)) ;) }))))) (if_statement "if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }" if (parenthesized_expression "(((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60))))))" ( (binary_expression "((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))" (parenthesized_expression "((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0'))" ( (binary_expression "(bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')" (parenthesized_expression "(bVar2 != 0x30)" ( (binary_expression "bVar2 != 0x30" identifier != number_literal) )) || (parenthesized_expression "(param_1[iVar7 + 1] == '\0')" ( (binary_expression "param_1[iVar7 + 1] == '\0'" (subscript_expression "param_1[iVar7 + 1]" identifier [ (binary_expression "iVar7 + 1" identifier + number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))" ( (parenthesized_expression "(uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60))))" ( (comma_expression "uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))" (assignment_expression "uVar5 = strtoul(pcVar6,local_20,10)" identifier = (call_expression "strtoul(pcVar6,local_20,10)" identifier (argument_list "(pcVar6,local_20,10)" ( identifier , identifier , number_literal )))) , (binary_expression "pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))" (binary_expression "pcVar6 < local_20[0]" identifier < (subscript_expression "local_20[0]" identifier [ number_literal ])) && (parenthesized_expression "((*local_20[0] == '\0' && (uVar5 < 0x60)))" ( (parenthesized_expression "(*local_20[0] == '\0' && (uVar5 < 0x60))" ( (binary_expression "*local_20[0] == '\0' && (uVar5 < 0x60)" (binary_expression "*local_20[0] == '\0'" (pointer_expression "*local_20[0]" * (subscript_expression "local_20[0]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(uVar5 < 0x60)" ( (binary_expression "uVar5 < 0x60" identifier < number_literal) ))) )) )))) )) ))) )) (compound_statement "{\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }" { (expression_statement "uVar10 = (uint)*(ushort *)(puVar8 + 10);" (assignment_expression "uVar10 = (uint)*(ushort *)(puVar8 + 10)" identifier = (binary_expression "(uint)*(ushort *)(puVar8 + 10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(puVar8 + 10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 10)" ( (binary_expression "puVar8 + 10" identifier + number_literal) ))))) ;) (if_statement "if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }" if (parenthesized_expression "(uVar10 <= uVar5)" ( (binary_expression "uVar10 <= uVar5" identifier <= identifier) )) (compound_statement "{\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }" { (if_statement "if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }" if (parenthesized_expression "(*(ushort *)(puVar8 + 10) == 0)" ( (binary_expression "*(ushort *)(puVar8 + 10) == 0" (pointer_expression "*(ushort *)(puVar8 + 10)" * (cast_expression "(ushort *)(puVar8 + 10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 10)" ( (binary_expression "puVar8 + 10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }" { (expression_statement "uVar4 = dcgettext(0,"No current frame",5,uVar10);" (assignment_expression "uVar4 = dcgettext(0,"No current frame",5,uVar10)" identifier = (call_expression "dcgettext(0,"No current frame",5,uVar10)" identifier (argument_list "(0,"No current frame",5,uVar10)" ( number_literal , (string_literal ""No current frame"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_00029550(uVar4);" (call_expression "FUN_00029550(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }" else (compound_statement "{\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }" { (expression_statement "uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);" (assignment_expression "uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1)" identifier = (call_expression "dcgettext(0,"Register number out of range 0..%u",5,param_1)" identifier (argument_list "(0,"Register number out of range 0..%u",5,param_1)" ( number_literal , (string_literal ""Register number out of range 0..%u"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_00029550(uVar4,uVar10 - 1);" (call_expression "FUN_00029550(uVar4,uVar10 - 1)" identifier (argument_list "(uVar4,uVar10 - 1)" ( identifier , (binary_expression "uVar10 - 1" identifier - number_literal) ))) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) })) (expression_statement "*(undefined1 *)(param_2 + 0x10) = 5;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 5" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" * (cast_expression "(undefined1 *)(param_2 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);" (assignment_expression "*(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8)" (pointer_expression "*(ulong *)(param_2 + 8)" * (cast_expression "(ulong *)(param_2 + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) = (binary_expression "uVar5 + *(ushort *)(puVar8 + 8)" identifier + (pointer_expression "*(ushort *)(puVar8 + 8)" * (cast_expression "(ushort *)(puVar8 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 8)" ( (binary_expression "puVar8 + 8" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(param_2 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0xc) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0xc)" * (cast_expression "(undefined4 *)(param_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_0004f57f:\n    local_20[0] = (char *)xstrdup(param_1);" statement_identifier : (expression_statement "local_20[0] = (char *)xstrdup(param_1);" (assignment_expression "local_20[0] = (char *)xstrdup(param_1)" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (cast_expression "(char *)xstrdup(param_1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;)) (expression_statement "uVar4 = FUN_0004e9c0(local_20[0]);" (assignment_expression "uVar4 = FUN_0004e9c0(local_20[0])" identifier = (call_expression "FUN_0004e9c0(local_20[0])" identifier (argument_list "(local_20[0])" ( (subscript_expression "local_20[0]" identifier [ number_literal ]) )))) ;) (expression_statement "iVar7 = FUN_00022b40(DAT_00087948,uVar4);" (assignment_expression "iVar7 = FUN_00022b40(DAT_00087948,uVar4)" identifier = (call_expression "FUN_00022b40(DAT_00087948,uVar4)" identifier (argument_list "(DAT_00087948,uVar4)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }" { (expression_statement "*(undefined1 *)(param_2 + 0x10) = 5;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 5" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" * (cast_expression "(undefined1 *)(param_2 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = *(int *)(iVar7 + 8);" (assignment_expression "iVar7 = *(int *)(iVar7 + 8)" identifier = (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_2 + 8) = iVar7;" (assignment_expression "*(int *)(param_2 + 8) = iVar7" (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_2 + 0xc) = iVar7 >> 0x1f;" (assignment_expression "*(int *)(param_2 + 0xc) = iVar7 >> 0x1f" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) = (binary_expression "iVar7 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "free(local_20[0]);" (call_expression "free(local_20[0])" identifier (argument_list "(local_20[0])" ( (subscript_expression "local_20[0]" identifier [ number_literal ]) ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "free(local_20[0]);" (call_expression "free(local_20[0])" identifier (argument_list "(local_20[0])" ( (subscript_expression "local_20[0]" identifier [ number_literal ]) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "ppuVar9 = &PTR_DAT_0007edc0;" (assignment_expression "ppuVar9 = &PTR_DAT_0007edc0" identifier = (pointer_expression "&PTR_DAT_0007edc0" & identifier)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (while_statement "while (((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0))) {\n    iVar7 = iVar7 + 1;\n    ppuVar9 = ppuVar9 + 3;\n    if (iVar7 == 0x2d) {\n      return 0;\n    }\n  }" while (parenthesized_expression "(((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0)))" ( (parenthesized_expression "((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0))" ( (binary_expression "(pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0)" (parenthesized_expression "(pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1]))" ( (comma_expression "pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])" (assignment_expression "pcVar6 = *ppuVar9" identifier = (pointer_expression "*ppuVar9" * identifier)) , (binary_expression "pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])" (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(*pcVar6 != param_1[1])" ( (binary_expression "*pcVar6 != param_1[1]" (pointer_expression "*pcVar6" * identifier) != (subscript_expression "param_1[1]" identifier [ number_literal ])) )))) )) || (parenthesized_expression "(iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0)" ( (comma_expression "iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0" (assignment_expression "iVar3 = strcmp(pcVar6 + 1,param_1 + 2)" identifier = (call_expression "strcmp(pcVar6 + 1,param_1 + 2)" identifier (argument_list "(pcVar6 + 1,param_1 + 2)" ( (binary_expression "pcVar6 + 1" identifier + number_literal) , (binary_expression "param_1 + 2" identifier + number_literal) )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) )) (compound_statement "{\n    iVar7 = iVar7 + 1;\n    ppuVar9 = ppuVar9 + 3;\n    if (iVar7 == 0x2d) {\n      return 0;\n    }\n  }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "ppuVar9 = ppuVar9 + 3;" (assignment_expression "ppuVar9 = ppuVar9 + 3" identifier = (binary_expression "ppuVar9 + 3" identifier + number_literal)) ;) (if_statement "if (iVar7 == 0x2d) {\n      return 0;\n    }" if (parenthesized_expression "(iVar7 == 0x2d)" ( (binary_expression "iVar7 == 0x2d" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "iVar3 = (&DAT_0007edc4)[iVar7 * 3];" (assignment_expression "iVar3 = (&DAT_0007edc4)[iVar7 * 3]" identifier = (subscript_expression "(&DAT_0007edc4)[iVar7 * 3]" (parenthesized_expression "(&DAT_0007edc4)" ( (pointer_expression "&DAT_0007edc4" & identifier) )) [ (binary_expression "iVar7 * 3" identifier * number_literal) ])) ;) (if_statement "if (iVar3 == 2) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 2;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }" if (parenthesized_expression "(iVar3 == 2)" ( (binary_expression "iVar3 == 2" identifier == number_literal) )) (compound_statement "{\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 2;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }" { (expression_statement "uVar4 = (&DAT_0007edc8)[iVar7 * 3];" (assignment_expression "uVar4 = (&DAT_0007edc8)[iVar7 * 3]" identifier = (subscript_expression "(&DAT_0007edc8)[iVar7 * 3]" (parenthesized_expression "(&DAT_0007edc8)" ( (pointer_expression "&DAT_0007edc8" & identifier) )) [ (binary_expression "iVar7 * 3" identifier * number_literal) ])) ;) (expression_statement "*(undefined1 *)(param_2 + 0x10) = 2;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 2" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" * (cast_expression "(undefined1 *)(param_2 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_2 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(param_2 + 8) = uVar4" (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_2 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0xc) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0xc)" * (cast_expression "(undefined4 *)(param_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) (if_statement "if (iVar3 == 3) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 5;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }" if (parenthesized_expression "(iVar3 == 3)" ( (binary_expression "iVar3 == 3" identifier == number_literal) )) (compound_statement "{\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 5;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }" { (expression_statement "uVar4 = (&DAT_0007edc8)[iVar7 * 3];" (assignment_expression "uVar4 = (&DAT_0007edc8)[iVar7 * 3]" identifier = (subscript_expression "(&DAT_0007edc8)[iVar7 * 3]" (parenthesized_expression "(&DAT_0007edc8)" ( (pointer_expression "&DAT_0007edc8" & identifier) )) [ (binary_expression "iVar7 * 3" identifier * number_literal) ])) ;) (expression_statement "*(undefined1 *)(param_2 + 0x10) = 5;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 5" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" * (cast_expression "(undefined1 *)(param_2 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_2 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(param_2 + 8) = uVar4" (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_2 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0xc) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0xc)" * (cast_expression "(undefined4 *)(param_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) (if_statement "if (iVar3 != 1) {\n    return 0;\n  }" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_20[0] = DAT_00088118;" (assignment_expression "local_20[0] = DAT_00088118" (subscript_expression "local_20[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*param_3 != '(') {\n    uVar4 = dcgettext(0,"Expected \'(\'",5);\n    FUN_00029550(uVar4);\n    return 1;\n  }" if (parenthesized_expression "(*param_3 != '(')" ( (binary_expression "*param_3 != '('" (pointer_expression "*param_3" * identifier) != (char_literal "'('" ' character ')) )) (compound_statement "{\n    uVar4 = dcgettext(0,"Expected \'(\'",5);\n    FUN_00029550(uVar4);\n    return 1;\n  }" { (expression_statement "uVar4 = dcgettext(0,"Expected \'(\'",5);" (assignment_expression "uVar4 = dcgettext(0,"Expected \'(\'",5)" identifier = (call_expression "dcgettext(0,"Expected \'(\'",5)" identifier (argument_list "(0,"Expected \'(\'",5)" ( number_literal , (string_literal ""Expected \'(\'"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00029550(uVar4);" (call_expression "FUN_00029550(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "DAT_00088118 = DAT_00088118 + 1;" (assignment_expression "DAT_00088118 = DAT_00088118 + 1" identifier = (binary_expression "DAT_00088118 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00020530(0,param_2,1);" (call_expression "FUN_00020530(0,param_2,1)" identifier (argument_list "(0,param_2,1)" ( number_literal , identifier , number_literal ))) ;) (if_statement "if (*DAT_00088118 == ')') {\n    DAT_00088118 = DAT_00088118 + 1;\n    if (*(char *)(param_2 + 0x10) == '\x03') {\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }\n    if (*(char *)(param_2 + 0x10) == '?') {\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar6 = "Not a symbolic expression";\n    }\n  }\n  else {\n    pcVar6 = "Missing \')\'";\n  }" if (parenthesized_expression "(*DAT_00088118 == ')')" ( (binary_expression "*DAT_00088118 == ')'" (pointer_expression "*DAT_00088118" * identifier) == (char_literal "')'" ' character ')) )) (compound_statement "{\n    DAT_00088118 = DAT_00088118 + 1;\n    if (*(char *)(param_2 + 0x10) == '\x03') {\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }\n    if (*(char *)(param_2 + 0x10) == '?') {\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar6 = "Not a symbolic expression";\n    }\n  }" { (expression_statement "DAT_00088118 = DAT_00088118 + 1;" (assignment_expression "DAT_00088118 = DAT_00088118 + 1" identifier = (binary_expression "DAT_00088118 + 1" identifier + number_literal)) ;) (if_statement "if (*(char *)(param_2 + 0x10) == '\x03') {\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }" if (parenthesized_expression "(*(char *)(param_2 + 0x10) == '\x03')" ( (binary_expression "*(char *)(param_2 + 0x10) == '\x03'" (pointer_expression "*(char *)(param_2 + 0x10)" * (cast_expression "(char *)(param_2 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }" { (labeled_statement "LAB_0004f68b:\n      pcVar6 = DAT_00088118;" statement_identifier : (expression_statement "pcVar6 = DAT_00088118;" (assignment_expression "pcVar6 = DAT_00088118" identifier = identifier) ;)) (expression_statement "*(undefined1 *)(param_2 + 0x10) = 0x3f;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 0x3f" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" * (cast_expression "(undefined1 *)(param_2 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];" (assignment_expression "*(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3]" (pointer_expression "*(undefined4 *)(param_2 + 4)" * (cast_expression "(undefined4 *)(param_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = (subscript_expression "(&DAT_0007edc8)[iVar7 * 3]" (parenthesized_expression "(&DAT_0007edc8)" ( (pointer_expression "&DAT_0007edc8" & identifier) )) [ (binary_expression "iVar7 * 3" identifier * number_literal) ])) ;) (goto_statement "goto LAB_0004f6a4;" goto statement_identifier ;) })) (if_statement "if (*(char *)(param_2 + 0x10) == '?') {\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar6 = "Not a symbolic expression";\n    }" if (parenthesized_expression "(*(char *)(param_2 + 0x10) == '?')" ( (binary_expression "*(char *)(param_2 + 0x10) == '?'" (pointer_expression "*(char *)(param_2 + 0x10)" * (cast_expression "(char *)(param_2 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) == (char_literal "'?'" ' character ')) )) (compound_statement "{\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }" { (if_statement "if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }" if (parenthesized_expression "(iVar7 == 4)" ( (binary_expression "iVar7 == 4" identifier == number_literal) )) (compound_statement "{\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }" { (expression_statement "lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));" (assignment_expression "lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4))" identifier = (call_expression "FUN_000375e0(*(undefined4 *)(param_2 + 4))" identifier (argument_list "(*(undefined4 *)(param_2 + 4))" ( (pointer_expression "*(undefined4 *)(param_2 + 4)" * (cast_expression "(undefined4 *)(param_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) )))) ;) (if_statement "if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" if (parenthesized_expression "(lVar12 == 1)" ( (binary_expression "lVar12 == 1" identifier == number_literal) )) (compound_statement "{\n          iVar7 = 0xe;\n        }" { (expression_statement "iVar7 = 0xe;" (assignment_expression "iVar7 = 0xe" identifier = number_literal) ;) }) (else_clause "else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" else (if_statement "if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar7 = 0xd;\n        }" { (expression_statement "iVar7 = 0xd;" (assignment_expression "iVar7 = 0xd" identifier = number_literal) ;) }) (else_clause "else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" else (if_statement "if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" if (parenthesized_expression "(lVar12 == 2)" ( (binary_expression "lVar12 == 2" identifier == number_literal) )) (compound_statement "{\n          iVar7 = 0xc;\n        }" { (expression_statement "iVar7 = 0xc;" (assignment_expression "iVar7 = 0xc" identifier = number_literal) ;) }) (else_clause "else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" else (compound_statement "{\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" { (if_statement "if (lVar12 != 10) goto LAB_0004f824;" if (parenthesized_expression "(lVar12 != 10)" ( (binary_expression "lVar12 != 10" identifier != number_literal) )) (goto_statement "goto LAB_0004f824;" goto statement_identifier ;)) (expression_statement "iVar7 = 0xf;" (assignment_expression "iVar7 = 0xf" identifier = number_literal) ;) }))))))) (goto_statement "goto LAB_0004f68b;" goto statement_identifier ;) })) (labeled_statement "LAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";" statement_identifier : (expression_statement "pcVar6 = "Illegal combination of relocation functions";" (assignment_expression "pcVar6 = "Illegal combination of relocation functions"" identifier = (string_literal ""Illegal combination of relocation functions"" " string_content ")) ;)) }) (else_clause "else {\n      pcVar6 = "Not a symbolic expression";\n    }" else (compound_statement "{\n      pcVar6 = "Not a symbolic expression";\n    }" { (expression_statement "pcVar6 = "Not a symbolic expression";" (assignment_expression "pcVar6 = "Not a symbolic expression"" identifier = (string_literal ""Not a symbolic expression"" " string_content ")) ;) }))) }) (else_clause "else {\n    pcVar6 = "Missing \')\'";\n  }" else (compound_statement "{\n    pcVar6 = "Missing \')\'";\n  }" { (expression_statement "pcVar6 = "Missing \')\'";" (assignment_expression "pcVar6 = "Missing \')\'"" identifier = (string_literal ""Missing \')\'"" " string_content escape_sequence string_content escape_sequence ")) ;) }))) (expression_statement "uVar4 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar6,5)" identifier = (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00029550(uVar4);" (call_expression "FUN_00029550(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "pcVar6 = DAT_00088118;" (assignment_expression "pcVar6 = DAT_00088118" identifier = identifier) ;) (labeled_statement "LAB_0004f6a4:\n  *param_3 = *pcVar6;" statement_identifier : (expression_statement "*param_3 = *pcVar6;" (assignment_expression "*param_3 = *pcVar6" (pointer_expression "*param_3" * identifier) = (pointer_expression "*pcVar6" * identifier)) ;)) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nint ia64_parse_name(char *name,expressionS *e,char *nextcharP)\n\n{\n  char cVar1;\n  pseudo_type pVar2;\n  anon_union_4_2_62362db2_for_u aVar3;\n  undefined4 uVar4;\n  byte bVar5;\n  int iVar6;\n  char *pcVar7;\n  symbolS *s;\n  void *pvVar8;\n  ulong uVar9;\n  int iVar10;\n  anon_struct_12_3_33555352 *paVar11;\n  uint uVar12;\n  valueT vVar13;\n  char *end;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4f3d9;\n  if (*name != '@') {\n    s = (symbolS *)hash_find(md.reg_hash,name);\n    if (s != (symbolS *)0x0) {\n      e->field_0x10 = 5;\n      vVar13 = S_GET_VALUE(s);\n      e->X_add_number = vVar13;\n      return 1;\n    }\n    pvVar8 = hash_find(md.const_hash,name);\n    if (pvVar8 != (void *)0x0) {\n      e->field_0x10 = 2;\n      uVar4 = *(undefined4 *)((int)pvVar8 + 4);\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)pvVar8 + 8);\n      *(undefined4 *)&e->X_add_number = uVar4;\n      return 1;\n    }\n    cVar1 = *name;\n    if (cVar1 == 'l') {\n      if (((name[1] != 'o') || (name[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar7 = name + 3;\n      bVar5 = name[3];\n      iVar6 = 3;\n      iVar10 = 0x87d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((name[1] != 'u') || (name[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar7 = name + 3;\n      bVar5 = name[3];\n      iVar6 = 3;\n      iVar10 = 0x87d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (name[1] != 'n')) ||\n         (bVar5 = name[2], (PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar7 = name + 2;\n      iVar6 = 2;\n      iVar10 = 0x87d60;\n    }\n    if (((bVar5 != 0x30) || (name[iVar6 + 1] == '\0')) &&\n       ((uVar9 = strtoul(pcVar7,&end,10), pcVar7 < end && ((*end == '\0' && (uVar9 < 0x60)))))) {\n      uVar12 = (uint)*(ushort *)(iVar10 + 10);\n      if (uVar12 <= uVar9) {\n        if (*(ushort *)(iVar10 + 10) == 0) {\n          pcVar7 = (char *)dcgettext(0,"No current frame",5,uVar12);\n          as_bad(pcVar7);\n          uVar9 = 0;\n        }\n        else {\n          pcVar7 = (char *)dcgettext(0,"Register number out of range 0..%u",5,name);\n          as_bad(pcVar7,uVar12 - 1);\n          uVar9 = 0;\n        }\n      }\n      e->field_0x10 = 5;\n      *(ulong *)&e->X_add_number = uVar9 + *(ushort *)(iVar10 + 8);\n      *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    end = (char *)xstrdup(name);\n    pcVar7 = ia64_canonicalize_symbol_name(end);\n    pvVar8 = hash_find(md.dynreg_hash,pcVar7);\n    if (pvVar8 != (void *)0x0) {\n      e->field_0x10 = 5;\n      iVar10 = *(int *)((int)pvVar8 + 8);\n      *(int *)&e->X_add_number = iVar10;\n      *(int *)((int)&e->X_add_number + 4) = iVar10 >> 0x1f;\n      free(end);\n      return 1;\n    }\n    free(end);\n    return 0;\n  }\n  paVar11 = pseudo_func;\n  iVar10 = 0;\n  while (((pcVar7 = paVar11->name, pcVar7 == (char *)0x0 || (*pcVar7 != name[1])) ||\n         (iVar6 = strcmp(pcVar7 + 1,name + 2), iVar6 != 0))) {\n    iVar10 = iVar10 + 1;\n    paVar11 = paVar11 + 1;\n    if (iVar10 == 0x2d) {\n      return 0;\n    }\n  }\n  pVar2 = pseudo_func[iVar10].type;\n  if (pVar2 == PSEUDO_FUNC_CONST) {\n    aVar3 = pseudo_func[iVar10].u;\n    e->field_0x10 = 2;\n    *(anon_union_4_2_62362db2_for_u *)&e->X_add_number = aVar3;\n    *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n    return 1;\n  }\n  if (pVar2 == PSEUDO_FUNC_REG) {\n    aVar3 = pseudo_func[iVar10].u;\n    e->field_0x10 = 5;\n    *(anon_union_4_2_62362db2_for_u *)&e->X_add_number = aVar3;\n    *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n    return 1;\n  }\n  if (pVar2 != PSEUDO_FUNC_RELOC) {\n    return 0;\n  }\n  end = input_line_pointer;\n  if (*nextcharP != '(') {\n    pcVar7 = (char *)dcgettext(0,"Expected \'(\'",5);\n    as_bad(pcVar7);\n    return 1;\n  }\n  input_line_pointer = input_line_pointer + 1;\n  expr(0,e,expr_normal);\n  if (*input_line_pointer == ')') {\n    input_line_pointer = input_line_pointer + 1;\n    if (e->field_0x10 == '\x03') {\nLAB_0004f68b:\n      pcVar7 = input_line_pointer;\n      e->field_0x10 = 0x3f;\n      e->X_op_symbol = (symbolS *)pseudo_func[iVar10].u;\n      goto LAB_0004f6a4;\n    }\n    if (e->field_0x10 == '?') {\n      if (iVar10 == 4) {\n        vVar13 = S_GET_VALUE(e->X_op_symbol);\n        if (vVar13 == 1) {\n          iVar10 = 0xe;\n        }\n        else if (vVar13 == 0) {\n          iVar10 = 0xd;\n        }\n        else if (vVar13 == 2) {\n          iVar10 = 0xc;\n        }\n        else {\n          if (vVar13 != 10) goto LAB_0004f824;\n          iVar10 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar7 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar7 = "Not a symbolic expression";\n    }\n  }\n  else {\n    pcVar7 = "Missing \')\'";\n  }\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);\n  as_bad(pcVar7);\n  pcVar7 = input_line_pointer;\nLAB_0004f6a4:\n  *nextcharP = *pcVar7;\n  return 1;\n}\n\n" comment comment (function_definition "int ia64_parse_name(char *name,expressionS *e,char *nextcharP)\n\n{\n  char cVar1;\n  pseudo_type pVar2;\n  anon_union_4_2_62362db2_for_u aVar3;\n  undefined4 uVar4;\n  byte bVar5;\n  int iVar6;\n  char *pcVar7;\n  symbolS *s;\n  void *pvVar8;\n  ulong uVar9;\n  int iVar10;\n  anon_struct_12_3_33555352 *paVar11;\n  uint uVar12;\n  valueT vVar13;\n  char *end;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4f3d9;\n  if (*name != '@') {\n    s = (symbolS *)hash_find(md.reg_hash,name);\n    if (s != (symbolS *)0x0) {\n      e->field_0x10 = 5;\n      vVar13 = S_GET_VALUE(s);\n      e->X_add_number = vVar13;\n      return 1;\n    }\n    pvVar8 = hash_find(md.const_hash,name);\n    if (pvVar8 != (void *)0x0) {\n      e->field_0x10 = 2;\n      uVar4 = *(undefined4 *)((int)pvVar8 + 4);\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)pvVar8 + 8);\n      *(undefined4 *)&e->X_add_number = uVar4;\n      return 1;\n    }\n    cVar1 = *name;\n    if (cVar1 == 'l') {\n      if (((name[1] != 'o') || (name[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar7 = name + 3;\n      bVar5 = name[3];\n      iVar6 = 3;\n      iVar10 = 0x87d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((name[1] != 'u') || (name[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar7 = name + 3;\n      bVar5 = name[3];\n      iVar6 = 3;\n      iVar10 = 0x87d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (name[1] != 'n')) ||\n         (bVar5 = name[2], (PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar7 = name + 2;\n      iVar6 = 2;\n      iVar10 = 0x87d60;\n    }\n    if (((bVar5 != 0x30) || (name[iVar6 + 1] == '\0')) &&\n       ((uVar9 = strtoul(pcVar7,&end,10), pcVar7 < end && ((*end == '\0' && (uVar9 < 0x60)))))) {\n      uVar12 = (uint)*(ushort *)(iVar10 + 10);\n      if (uVar12 <= uVar9) {\n        if (*(ushort *)(iVar10 + 10) == 0) {\n          pcVar7 = (char *)dcgettext(0,"No current frame",5,uVar12);\n          as_bad(pcVar7);\n          uVar9 = 0;\n        }\n        else {\n          pcVar7 = (char *)dcgettext(0,"Register number out of range 0..%u",5,name);\n          as_bad(pcVar7,uVar12 - 1);\n          uVar9 = 0;\n        }\n      }\n      e->field_0x10 = 5;\n      *(ulong *)&e->X_add_number = uVar9 + *(ushort *)(iVar10 + 8);\n      *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    end = (char *)xstrdup(name);\n    pcVar7 = ia64_canonicalize_symbol_name(end);\n    pvVar8 = hash_find(md.dynreg_hash,pcVar7);\n    if (pvVar8 != (void *)0x0) {\n      e->field_0x10 = 5;\n      iVar10 = *(int *)((int)pvVar8 + 8);\n      *(int *)&e->X_add_number = iVar10;\n      *(int *)((int)&e->X_add_number + 4) = iVar10 >> 0x1f;\n      free(end);\n      return 1;\n    }\n    free(end);\n    return 0;\n  }\n  paVar11 = pseudo_func;\n  iVar10 = 0;\n  while (((pcVar7 = paVar11->name, pcVar7 == (char *)0x0 || (*pcVar7 != name[1])) ||\n         (iVar6 = strcmp(pcVar7 + 1,name + 2), iVar6 != 0))) {\n    iVar10 = iVar10 + 1;\n    paVar11 = paVar11 + 1;\n    if (iVar10 == 0x2d) {\n      return 0;\n    }\n  }\n  pVar2 = pseudo_func[iVar10].type;\n  if (pVar2 == PSEUDO_FUNC_CONST) {\n    aVar3 = pseudo_func[iVar10].u;\n    e->field_0x10 = 2;\n    *(anon_union_4_2_62362db2_for_u *)&e->X_add_number = aVar3;\n    *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n    return 1;\n  }\n  if (pVar2 == PSEUDO_FUNC_REG) {\n    aVar3 = pseudo_func[iVar10].u;\n    e->field_0x10 = 5;\n    *(anon_union_4_2_62362db2_for_u *)&e->X_add_number = aVar3;\n    *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n    return 1;\n  }\n  if (pVar2 != PSEUDO_FUNC_RELOC) {\n    return 0;\n  }\n  end = input_line_pointer;\n  if (*nextcharP != '(') {\n    pcVar7 = (char *)dcgettext(0,"Expected \'(\'",5);\n    as_bad(pcVar7);\n    return 1;\n  }\n  input_line_pointer = input_line_pointer + 1;\n  expr(0,e,expr_normal);\n  if (*input_line_pointer == ')') {\n    input_line_pointer = input_line_pointer + 1;\n    if (e->field_0x10 == '\x03') {\nLAB_0004f68b:\n      pcVar7 = input_line_pointer;\n      e->field_0x10 = 0x3f;\n      e->X_op_symbol = (symbolS *)pseudo_func[iVar10].u;\n      goto LAB_0004f6a4;\n    }\n    if (e->field_0x10 == '?') {\n      if (iVar10 == 4) {\n        vVar13 = S_GET_VALUE(e->X_op_symbol);\n        if (vVar13 == 1) {\n          iVar10 = 0xe;\n        }\n        else if (vVar13 == 0) {\n          iVar10 = 0xd;\n        }\n        else if (vVar13 == 2) {\n          iVar10 = 0xc;\n        }\n        else {\n          if (vVar13 != 10) goto LAB_0004f824;\n          iVar10 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar7 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar7 = "Not a symbolic expression";\n    }\n  }\n  else {\n    pcVar7 = "Missing \')\'";\n  }\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);\n  as_bad(pcVar7);\n  pcVar7 = input_line_pointer;\nLAB_0004f6a4:\n  *nextcharP = *pcVar7;\n  return 1;\n}" primitive_type (function_declarator "ia64_parse_name(char *name,expressionS *e,char *nextcharP)" identifier (parameter_list "(char *name,expressionS *e,char *nextcharP)" ( (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "expressionS *e" type_identifier (pointer_declarator "*e" * identifier)) , (parameter_declaration "char *nextcharP" primitive_type (pointer_declarator "*nextcharP" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  pseudo_type pVar2;\n  anon_union_4_2_62362db2_for_u aVar3;\n  undefined4 uVar4;\n  byte bVar5;\n  int iVar6;\n  char *pcVar7;\n  symbolS *s;\n  void *pvVar8;\n  ulong uVar9;\n  int iVar10;\n  anon_struct_12_3_33555352 *paVar11;\n  uint uVar12;\n  valueT vVar13;\n  char *end;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4f3d9;\n  if (*name != '@') {\n    s = (symbolS *)hash_find(md.reg_hash,name);\n    if (s != (symbolS *)0x0) {\n      e->field_0x10 = 5;\n      vVar13 = S_GET_VALUE(s);\n      e->X_add_number = vVar13;\n      return 1;\n    }\n    pvVar8 = hash_find(md.const_hash,name);\n    if (pvVar8 != (void *)0x0) {\n      e->field_0x10 = 2;\n      uVar4 = *(undefined4 *)((int)pvVar8 + 4);\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)pvVar8 + 8);\n      *(undefined4 *)&e->X_add_number = uVar4;\n      return 1;\n    }\n    cVar1 = *name;\n    if (cVar1 == 'l') {\n      if (((name[1] != 'o') || (name[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar7 = name + 3;\n      bVar5 = name[3];\n      iVar6 = 3;\n      iVar10 = 0x87d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((name[1] != 'u') || (name[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar7 = name + 3;\n      bVar5 = name[3];\n      iVar6 = 3;\n      iVar10 = 0x87d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (name[1] != 'n')) ||\n         (bVar5 = name[2], (PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar7 = name + 2;\n      iVar6 = 2;\n      iVar10 = 0x87d60;\n    }\n    if (((bVar5 != 0x30) || (name[iVar6 + 1] == '\0')) &&\n       ((uVar9 = strtoul(pcVar7,&end,10), pcVar7 < end && ((*end == '\0' && (uVar9 < 0x60)))))) {\n      uVar12 = (uint)*(ushort *)(iVar10 + 10);\n      if (uVar12 <= uVar9) {\n        if (*(ushort *)(iVar10 + 10) == 0) {\n          pcVar7 = (char *)dcgettext(0,"No current frame",5,uVar12);\n          as_bad(pcVar7);\n          uVar9 = 0;\n        }\n        else {\n          pcVar7 = (char *)dcgettext(0,"Register number out of range 0..%u",5,name);\n          as_bad(pcVar7,uVar12 - 1);\n          uVar9 = 0;\n        }\n      }\n      e->field_0x10 = 5;\n      *(ulong *)&e->X_add_number = uVar9 + *(ushort *)(iVar10 + 8);\n      *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    end = (char *)xstrdup(name);\n    pcVar7 = ia64_canonicalize_symbol_name(end);\n    pvVar8 = hash_find(md.dynreg_hash,pcVar7);\n    if (pvVar8 != (void *)0x0) {\n      e->field_0x10 = 5;\n      iVar10 = *(int *)((int)pvVar8 + 8);\n      *(int *)&e->X_add_number = iVar10;\n      *(int *)((int)&e->X_add_number + 4) = iVar10 >> 0x1f;\n      free(end);\n      return 1;\n    }\n    free(end);\n    return 0;\n  }\n  paVar11 = pseudo_func;\n  iVar10 = 0;\n  while (((pcVar7 = paVar11->name, pcVar7 == (char *)0x0 || (*pcVar7 != name[1])) ||\n         (iVar6 = strcmp(pcVar7 + 1,name + 2), iVar6 != 0))) {\n    iVar10 = iVar10 + 1;\n    paVar11 = paVar11 + 1;\n    if (iVar10 == 0x2d) {\n      return 0;\n    }\n  }\n  pVar2 = pseudo_func[iVar10].type;\n  if (pVar2 == PSEUDO_FUNC_CONST) {\n    aVar3 = pseudo_func[iVar10].u;\n    e->field_0x10 = 2;\n    *(anon_union_4_2_62362db2_for_u *)&e->X_add_number = aVar3;\n    *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n    return 1;\n  }\n  if (pVar2 == PSEUDO_FUNC_REG) {\n    aVar3 = pseudo_func[iVar10].u;\n    e->field_0x10 = 5;\n    *(anon_union_4_2_62362db2_for_u *)&e->X_add_number = aVar3;\n    *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n    return 1;\n  }\n  if (pVar2 != PSEUDO_FUNC_RELOC) {\n    return 0;\n  }\n  end = input_line_pointer;\n  if (*nextcharP != '(') {\n    pcVar7 = (char *)dcgettext(0,"Expected \'(\'",5);\n    as_bad(pcVar7);\n    return 1;\n  }\n  input_line_pointer = input_line_pointer + 1;\n  expr(0,e,expr_normal);\n  if (*input_line_pointer == ')') {\n    input_line_pointer = input_line_pointer + 1;\n    if (e->field_0x10 == '\x03') {\nLAB_0004f68b:\n      pcVar7 = input_line_pointer;\n      e->field_0x10 = 0x3f;\n      e->X_op_symbol = (symbolS *)pseudo_func[iVar10].u;\n      goto LAB_0004f6a4;\n    }\n    if (e->field_0x10 == '?') {\n      if (iVar10 == 4) {\n        vVar13 = S_GET_VALUE(e->X_op_symbol);\n        if (vVar13 == 1) {\n          iVar10 = 0xe;\n        }\n        else if (vVar13 == 0) {\n          iVar10 = 0xd;\n        }\n        else if (vVar13 == 2) {\n          iVar10 = 0xc;\n        }\n        else {\n          if (vVar13 != 10) goto LAB_0004f824;\n          iVar10 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar7 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar7 = "Not a symbolic expression";\n    }\n  }\n  else {\n    pcVar7 = "Missing \')\'";\n  }\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);\n  as_bad(pcVar7);\n  pcVar7 = input_line_pointer;\nLAB_0004f6a4:\n  *nextcharP = *pcVar7;\n  return 1;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "pseudo_type pVar2;" type_identifier identifier ;) (declaration "anon_union_4_2_62362db2_for_u aVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "symbolS *s;" type_identifier (pointer_declarator "*s" * identifier) ;) (declaration "void *pvVar8;" primitive_type (pointer_declarator "*pvVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "anon_struct_12_3_33555352 *paVar11;" type_identifier (pointer_declarator "*paVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "valueT vVar13;" type_identifier identifier ;) (declaration "char *end;" primitive_type (pointer_declarator "*end" * identifier) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x4f3d9;" (assignment_expression "uStack_14 = 0x4f3d9" identifier = number_literal) ;) (if_statement "if (*name != '@') {\n    s = (symbolS *)hash_find(md.reg_hash,name);\n    if (s != (symbolS *)0x0) {\n      e->field_0x10 = 5;\n      vVar13 = S_GET_VALUE(s);\n      e->X_add_number = vVar13;\n      return 1;\n    }\n    pvVar8 = hash_find(md.const_hash,name);\n    if (pvVar8 != (void *)0x0) {\n      e->field_0x10 = 2;\n      uVar4 = *(undefined4 *)((int)pvVar8 + 4);\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)pvVar8 + 8);\n      *(undefined4 *)&e->X_add_number = uVar4;\n      return 1;\n    }\n    cVar1 = *name;\n    if (cVar1 == 'l') {\n      if (((name[1] != 'o') || (name[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar7 = name + 3;\n      bVar5 = name[3];\n      iVar6 = 3;\n      iVar10 = 0x87d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((name[1] != 'u') || (name[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar7 = name + 3;\n      bVar5 = name[3];\n      iVar6 = 3;\n      iVar10 = 0x87d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (name[1] != 'n')) ||\n         (bVar5 = name[2], (PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar7 = name + 2;\n      iVar6 = 2;\n      iVar10 = 0x87d60;\n    }\n    if (((bVar5 != 0x30) || (name[iVar6 + 1] == '\0')) &&\n       ((uVar9 = strtoul(pcVar7,&end,10), pcVar7 < end && ((*end == '\0' && (uVar9 < 0x60)))))) {\n      uVar12 = (uint)*(ushort *)(iVar10 + 10);\n      if (uVar12 <= uVar9) {\n        if (*(ushort *)(iVar10 + 10) == 0) {\n          pcVar7 = (char *)dcgettext(0,"No current frame",5,uVar12);\n          as_bad(pcVar7);\n          uVar9 = 0;\n        }\n        else {\n          pcVar7 = (char *)dcgettext(0,"Register number out of range 0..%u",5,name);\n          as_bad(pcVar7,uVar12 - 1);\n          uVar9 = 0;\n        }\n      }\n      e->field_0x10 = 5;\n      *(ulong *)&e->X_add_number = uVar9 + *(ushort *)(iVar10 + 8);\n      *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    end = (char *)xstrdup(name);\n    pcVar7 = ia64_canonicalize_symbol_name(end);\n    pvVar8 = hash_find(md.dynreg_hash,pcVar7);\n    if (pvVar8 != (void *)0x0) {\n      e->field_0x10 = 5;\n      iVar10 = *(int *)((int)pvVar8 + 8);\n      *(int *)&e->X_add_number = iVar10;\n      *(int *)((int)&e->X_add_number + 4) = iVar10 >> 0x1f;\n      free(end);\n      return 1;\n    }\n    free(end);\n    return 0;\n  }" if (parenthesized_expression "(*name != '@')" ( (binary_expression "*name != '@'" (pointer_expression "*name" * identifier) != (char_literal "'@'" ' character ')) )) (compound_statement "{\n    s = (symbolS *)hash_find(md.reg_hash,name);\n    if (s != (symbolS *)0x0) {\n      e->field_0x10 = 5;\n      vVar13 = S_GET_VALUE(s);\n      e->X_add_number = vVar13;\n      return 1;\n    }\n    pvVar8 = hash_find(md.const_hash,name);\n    if (pvVar8 != (void *)0x0) {\n      e->field_0x10 = 2;\n      uVar4 = *(undefined4 *)((int)pvVar8 + 4);\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)pvVar8 + 8);\n      *(undefined4 *)&e->X_add_number = uVar4;\n      return 1;\n    }\n    cVar1 = *name;\n    if (cVar1 == 'l') {\n      if (((name[1] != 'o') || (name[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar7 = name + 3;\n      bVar5 = name[3];\n      iVar6 = 3;\n      iVar10 = 0x87d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((name[1] != 'u') || (name[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar7 = name + 3;\n      bVar5 = name[3];\n      iVar6 = 3;\n      iVar10 = 0x87d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (name[1] != 'n')) ||\n         (bVar5 = name[2], (PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar7 = name + 2;\n      iVar6 = 2;\n      iVar10 = 0x87d60;\n    }\n    if (((bVar5 != 0x30) || (name[iVar6 + 1] == '\0')) &&\n       ((uVar9 = strtoul(pcVar7,&end,10), pcVar7 < end && ((*end == '\0' && (uVar9 < 0x60)))))) {\n      uVar12 = (uint)*(ushort *)(iVar10 + 10);\n      if (uVar12 <= uVar9) {\n        if (*(ushort *)(iVar10 + 10) == 0) {\n          pcVar7 = (char *)dcgettext(0,"No current frame",5,uVar12);\n          as_bad(pcVar7);\n          uVar9 = 0;\n        }\n        else {\n          pcVar7 = (char *)dcgettext(0,"Register number out of range 0..%u",5,name);\n          as_bad(pcVar7,uVar12 - 1);\n          uVar9 = 0;\n        }\n      }\n      e->field_0x10 = 5;\n      *(ulong *)&e->X_add_number = uVar9 + *(ushort *)(iVar10 + 8);\n      *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    end = (char *)xstrdup(name);\n    pcVar7 = ia64_canonicalize_symbol_name(end);\n    pvVar8 = hash_find(md.dynreg_hash,pcVar7);\n    if (pvVar8 != (void *)0x0) {\n      e->field_0x10 = 5;\n      iVar10 = *(int *)((int)pvVar8 + 8);\n      *(int *)&e->X_add_number = iVar10;\n      *(int *)((int)&e->X_add_number + 4) = iVar10 >> 0x1f;\n      free(end);\n      return 1;\n    }\n    free(end);\n    return 0;\n  }" { (expression_statement "s = (symbolS *)hash_find(md.reg_hash,name);" (assignment_expression "s = (symbolS *)hash_find(md.reg_hash,name)" identifier = (cast_expression "(symbolS *)hash_find(md.reg_hash,name)" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "hash_find(md.reg_hash,name)" identifier (argument_list "(md.reg_hash,name)" ( (field_expression "md.reg_hash" identifier . field_identifier) , identifier ))))) ;) (if_statement "if (s != (symbolS *)0x0) {\n      e->field_0x10 = 5;\n      vVar13 = S_GET_VALUE(s);\n      e->X_add_number = vVar13;\n      return 1;\n    }" if (parenthesized_expression "(s != (symbolS *)0x0)" ( (binary_expression "s != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      e->field_0x10 = 5;\n      vVar13 = S_GET_VALUE(s);\n      e->X_add_number = vVar13;\n      return 1;\n    }" { (expression_statement "e->field_0x10 = 5;" (assignment_expression "e->field_0x10 = 5" (field_expression "e->field_0x10" identifier -> field_identifier) = number_literal) ;) (expression_statement "vVar13 = S_GET_VALUE(s);" (assignment_expression "vVar13 = S_GET_VALUE(s)" identifier = (call_expression "S_GET_VALUE(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "e->X_add_number = vVar13;" (assignment_expression "e->X_add_number = vVar13" (field_expression "e->X_add_number" identifier -> field_identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "pvVar8 = hash_find(md.const_hash,name);" (assignment_expression "pvVar8 = hash_find(md.const_hash,name)" identifier = (call_expression "hash_find(md.const_hash,name)" identifier (argument_list "(md.const_hash,name)" ( (field_expression "md.const_hash" identifier . field_identifier) , identifier )))) ;) (if_statement "if (pvVar8 != (void *)0x0) {\n      e->field_0x10 = 2;\n      uVar4 = *(undefined4 *)((int)pvVar8 + 4);\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)pvVar8 + 8);\n      *(undefined4 *)&e->X_add_number = uVar4;\n      return 1;\n    }" if (parenthesized_expression "(pvVar8 != (void *)0x0)" ( (binary_expression "pvVar8 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      e->field_0x10 = 2;\n      uVar4 = *(undefined4 *)((int)pvVar8 + 4);\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)pvVar8 + 8);\n      *(undefined4 *)&e->X_add_number = uVar4;\n      return 1;\n    }" { (expression_statement "e->field_0x10 = 2;" (assignment_expression "e->field_0x10 = 2" (field_expression "e->field_0x10" identifier -> field_identifier) = number_literal) ;) (expression_statement "uVar4 = *(undefined4 *)((int)pvVar8 + 4);" (assignment_expression "uVar4 = *(undefined4 *)((int)pvVar8 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pvVar8 + 4)" * (cast_expression "(undefined4 *)((int)pvVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar8 + 4)" ( (binary_expression "(int)pvVar8 + 4" (cast_expression "(int)pvVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)pvVar8 + 8);" (assignment_expression "*(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)pvVar8 + 8)" (pointer_expression "*(undefined4 *)((int)&e->X_add_number + 4)" * (cast_expression "(undefined4 *)((int)&e->X_add_number + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&e->X_add_number + 4)" ( (binary_expression "(int)&e->X_add_number + 4" (cast_expression "(int)&e->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pvVar8 + 8)" * (cast_expression "(undefined4 *)((int)pvVar8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar8 + 8)" ( (binary_expression "(int)pvVar8 + 8" (cast_expression "(int)pvVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)&e->X_add_number = uVar4;" (assignment_expression "*(undefined4 *)&e->X_add_number = uVar4" (pointer_expression "*(undefined4 *)&e->X_add_number" * (cast_expression "(undefined4 *)&e->X_add_number" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier)))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "cVar1 = *name;" (assignment_expression "cVar1 = *name" identifier = (pointer_expression "*name" * identifier)) ;) (if_statement "if (cVar1 == 'l') {\n      if (((name[1] != 'o') || (name[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar7 = name + 3;\n      bVar5 = name[3];\n      iVar6 = 3;\n      iVar10 = 0x87d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((name[1] != 'u') || (name[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar7 = name + 3;\n      bVar5 = name[3];\n      iVar6 = 3;\n      iVar10 = 0x87d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (name[1] != 'n')) ||\n         (bVar5 = name[2], (PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar7 = name + 2;\n      iVar6 = 2;\n      iVar10 = 0x87d60;\n    }" if (parenthesized_expression "(cVar1 == 'l')" ( (binary_expression "cVar1 == 'l'" identifier == (char_literal "'l'" ' character ')) )) (compound_statement "{\n      if (((name[1] != 'o') || (name[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar7 = name + 3;\n      bVar5 = name[3];\n      iVar6 = 3;\n      iVar10 = 0x87d6c;\n    }" { (if_statement "if (((name[1] != 'o') || (name[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;" if (parenthesized_expression "(((name[1] != 'o') || (name[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0))" ( (binary_expression "((name[1] != 'o') || (name[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)" (parenthesized_expression "((name[1] != 'o') || (name[2] != 'c'))" ( (binary_expression "(name[1] != 'o') || (name[2] != 'c')" (parenthesized_expression "(name[1] != 'o')" ( (binary_expression "name[1] != 'o'" (subscript_expression "name[1]" identifier [ number_literal ]) != (char_literal "'o'" ' character ')) )) || (parenthesized_expression "(name[2] != 'c')" ( (binary_expression "name[2] != 'c'" (subscript_expression "name[2]" identifier [ number_literal ]) != (char_literal "'c'" ' character ')) ))) )) || (parenthesized_expression "((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)" ( (binary_expression "(PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0" (parenthesized_expression "(PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4)" ( (binary_expression "PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4" (subscript_expression "PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2]" identifier [ (binary_expression "(uint)(byte)name[3] * 2" (cast_expression "(uint)(byte)name[3]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)name[3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "name[3]" identifier [ number_literal ]))) * number_literal) ]) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_0004f57f;" goto statement_identifier ;)) (expression_statement "pcVar7 = name + 3;" (assignment_expression "pcVar7 = name + 3" identifier = (binary_expression "name + 3" identifier + number_literal)) ;) (expression_statement "bVar5 = name[3];" (assignment_expression "bVar5 = name[3]" identifier = (subscript_expression "name[3]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = 3;" (assignment_expression "iVar6 = 3" identifier = number_literal) ;) (expression_statement "iVar10 = 0x87d6c;" (assignment_expression "iVar10 = 0x87d6c" identifier = number_literal) ;) }) (else_clause "else if (cVar1 == 'o') {\n      if (((name[1] != 'u') || (name[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar7 = name + 3;\n      bVar5 = name[3];\n      iVar6 = 3;\n      iVar10 = 0x87d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (name[1] != 'n')) ||\n         (bVar5 = name[2], (PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar7 = name + 2;\n      iVar6 = 2;\n      iVar10 = 0x87d60;\n    }" else (if_statement "if (cVar1 == 'o') {\n      if (((name[1] != 'u') || (name[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar7 = name + 3;\n      bVar5 = name[3];\n      iVar6 = 3;\n      iVar10 = 0x87d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (name[1] != 'n')) ||\n         (bVar5 = name[2], (PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar7 = name + 2;\n      iVar6 = 2;\n      iVar10 = 0x87d60;\n    }" if (parenthesized_expression "(cVar1 == 'o')" ( (binary_expression "cVar1 == 'o'" identifier == (char_literal "'o'" ' character ')) )) (compound_statement "{\n      if (((name[1] != 'u') || (name[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar7 = name + 3;\n      bVar5 = name[3];\n      iVar6 = 3;\n      iVar10 = 0x87d78;\n    }" { (if_statement "if (((name[1] != 'u') || (name[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)) goto LAB_0004f57f;" if (parenthesized_expression "(((name[1] != 'u') || (name[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0))" ( (binary_expression "((name[1] != 'u') || (name[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)" (parenthesized_expression "((name[1] != 'u') || (name[2] != 't'))" ( (binary_expression "(name[1] != 'u') || (name[2] != 't')" (parenthesized_expression "(name[1] != 'u')" ( (binary_expression "name[1] != 'u'" (subscript_expression "name[1]" identifier [ number_literal ]) != (char_literal "'u'" ' character ')) )) || (parenthesized_expression "(name[2] != 't')" ( (binary_expression "name[2] != 't'" (subscript_expression "name[2]" identifier [ number_literal ]) != (char_literal "'t'" ' character ')) ))) )) || (parenthesized_expression "((PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0)" ( (binary_expression "(PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4) == 0" (parenthesized_expression "(PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4)" ( (binary_expression "PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2] & 4" (subscript_expression "PTR__sch_istable_0007df84[(uint)(byte)name[3] * 2]" identifier [ (binary_expression "(uint)(byte)name[3] * 2" (cast_expression "(uint)(byte)name[3]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)name[3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "name[3]" identifier [ number_literal ]))) * number_literal) ]) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_0004f57f;" goto statement_identifier ;)) (expression_statement "pcVar7 = name + 3;" (assignment_expression "pcVar7 = name + 3" identifier = (binary_expression "name + 3" identifier + number_literal)) ;) (expression_statement "bVar5 = name[3];" (assignment_expression "bVar5 = name[3]" identifier = (subscript_expression "name[3]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = 3;" (assignment_expression "iVar6 = 3" identifier = number_literal) ;) (expression_statement "iVar10 = 0x87d78;" (assignment_expression "iVar10 = 0x87d78" identifier = number_literal) ;) }) (else_clause "else {\n      if (((cVar1 != 'i') || (name[1] != 'n')) ||\n         (bVar5 = name[2], (PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar7 = name + 2;\n      iVar6 = 2;\n      iVar10 = 0x87d60;\n    }" else (compound_statement "{\n      if (((cVar1 != 'i') || (name[1] != 'n')) ||\n         (bVar5 = name[2], (PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar7 = name + 2;\n      iVar6 = 2;\n      iVar10 = 0x87d60;\n    }" { (if_statement "if (((cVar1 != 'i') || (name[1] != 'n')) ||\n         (bVar5 = name[2], (PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4) == 0))\n      goto LAB_0004f57f;" if (parenthesized_expression "(((cVar1 != 'i') || (name[1] != 'n')) ||\n         (bVar5 = name[2], (PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4) == 0))" ( (binary_expression "((cVar1 != 'i') || (name[1] != 'n')) ||\n         (bVar5 = name[2], (PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4) == 0)" (parenthesized_expression "((cVar1 != 'i') || (name[1] != 'n'))" ( (binary_expression "(cVar1 != 'i') || (name[1] != 'n')" (parenthesized_expression "(cVar1 != 'i')" ( (binary_expression "cVar1 != 'i'" identifier != (char_literal "'i'" ' character ')) )) || (parenthesized_expression "(name[1] != 'n')" ( (binary_expression "name[1] != 'n'" (subscript_expression "name[1]" identifier [ number_literal ]) != (char_literal "'n'" ' character ')) ))) )) || (parenthesized_expression "(bVar5 = name[2], (PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4) == 0)" ( (comma_expression "bVar5 = name[2], (PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4) == 0" (assignment_expression "bVar5 = name[2]" identifier = (subscript_expression "name[2]" identifier [ number_literal ])) , (binary_expression "(PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4) == 0" (parenthesized_expression "(PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4)" ( (binary_expression "PTR__sch_istable_0007df84[(uint)bVar5 * 2] & 4" (subscript_expression "PTR__sch_istable_0007df84[(uint)bVar5 * 2]" identifier [ (binary_expression "(uint)bVar5 * 2" (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal)) ))) )) (goto_statement "goto LAB_0004f57f;" goto statement_identifier ;)) (expression_statement "pcVar7 = name + 2;" (assignment_expression "pcVar7 = name + 2" identifier = (binary_expression "name + 2" identifier + number_literal)) ;) (expression_statement "iVar6 = 2;" (assignment_expression "iVar6 = 2" identifier = number_literal) ;) (expression_statement "iVar10 = 0x87d60;" (assignment_expression "iVar10 = 0x87d60" identifier = number_literal) ;) }))))) (if_statement "if (((bVar5 != 0x30) || (name[iVar6 + 1] == '\0')) &&\n       ((uVar9 = strtoul(pcVar7,&end,10), pcVar7 < end && ((*end == '\0' && (uVar9 < 0x60)))))) {\n      uVar12 = (uint)*(ushort *)(iVar10 + 10);\n      if (uVar12 <= uVar9) {\n        if (*(ushort *)(iVar10 + 10) == 0) {\n          pcVar7 = (char *)dcgettext(0,"No current frame",5,uVar12);\n          as_bad(pcVar7);\n          uVar9 = 0;\n        }\n        else {\n          pcVar7 = (char *)dcgettext(0,"Register number out of range 0..%u",5,name);\n          as_bad(pcVar7,uVar12 - 1);\n          uVar9 = 0;\n        }\n      }\n      e->field_0x10 = 5;\n      *(ulong *)&e->X_add_number = uVar9 + *(ushort *)(iVar10 + 8);\n      *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n      return 1;\n    }" if (parenthesized_expression "(((bVar5 != 0x30) || (name[iVar6 + 1] == '\0')) &&\n       ((uVar9 = strtoul(pcVar7,&end,10), pcVar7 < end && ((*end == '\0' && (uVar9 < 0x60))))))" ( (binary_expression "((bVar5 != 0x30) || (name[iVar6 + 1] == '\0')) &&\n       ((uVar9 = strtoul(pcVar7,&end,10), pcVar7 < end && ((*end == '\0' && (uVar9 < 0x60)))))" (parenthesized_expression "((bVar5 != 0x30) || (name[iVar6 + 1] == '\0'))" ( (binary_expression "(bVar5 != 0x30) || (name[iVar6 + 1] == '\0')" (parenthesized_expression "(bVar5 != 0x30)" ( (binary_expression "bVar5 != 0x30" identifier != number_literal) )) || (parenthesized_expression "(name[iVar6 + 1] == '\0')" ( (binary_expression "name[iVar6 + 1] == '\0'" (subscript_expression "name[iVar6 + 1]" identifier [ (binary_expression "iVar6 + 1" identifier + number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((uVar9 = strtoul(pcVar7,&end,10), pcVar7 < end && ((*end == '\0' && (uVar9 < 0x60)))))" ( (parenthesized_expression "(uVar9 = strtoul(pcVar7,&end,10), pcVar7 < end && ((*end == '\0' && (uVar9 < 0x60))))" ( (comma_expression "uVar9 = strtoul(pcVar7,&end,10), pcVar7 < end && ((*end == '\0' && (uVar9 < 0x60)))" (assignment_expression "uVar9 = strtoul(pcVar7,&end,10)" identifier = (call_expression "strtoul(pcVar7,&end,10)" identifier (argument_list "(pcVar7,&end,10)" ( identifier , (pointer_expression "&end" & identifier) , number_literal )))) , (binary_expression "pcVar7 < end && ((*end == '\0' && (uVar9 < 0x60)))" (binary_expression "pcVar7 < end" identifier < identifier) && (parenthesized_expression "((*end == '\0' && (uVar9 < 0x60)))" ( (parenthesized_expression "(*end == '\0' && (uVar9 < 0x60))" ( (binary_expression "*end == '\0' && (uVar9 < 0x60)" (binary_expression "*end == '\0'" (pointer_expression "*end" * identifier) == (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(uVar9 < 0x60)" ( (binary_expression "uVar9 < 0x60" identifier < number_literal) ))) )) )))) )) ))) )) (compound_statement "{\n      uVar12 = (uint)*(ushort *)(iVar10 + 10);\n      if (uVar12 <= uVar9) {\n        if (*(ushort *)(iVar10 + 10) == 0) {\n          pcVar7 = (char *)dcgettext(0,"No current frame",5,uVar12);\n          as_bad(pcVar7);\n          uVar9 = 0;\n        }\n        else {\n          pcVar7 = (char *)dcgettext(0,"Register number out of range 0..%u",5,name);\n          as_bad(pcVar7,uVar12 - 1);\n          uVar9 = 0;\n        }\n      }\n      e->field_0x10 = 5;\n      *(ulong *)&e->X_add_number = uVar9 + *(ushort *)(iVar10 + 8);\n      *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n      return 1;\n    }" { (expression_statement "uVar12 = (uint)*(ushort *)(iVar10 + 10);" (assignment_expression "uVar12 = (uint)*(ushort *)(iVar10 + 10)" identifier = (binary_expression "(uint)*(ushort *)(iVar10 + 10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar10 + 10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 10)" ( (binary_expression "iVar10 + 10" identifier + number_literal) ))))) ;) (if_statement "if (uVar12 <= uVar9) {\n        if (*(ushort *)(iVar10 + 10) == 0) {\n          pcVar7 = (char *)dcgettext(0,"No current frame",5,uVar12);\n          as_bad(pcVar7);\n          uVar9 = 0;\n        }\n        else {\n          pcVar7 = (char *)dcgettext(0,"Register number out of range 0..%u",5,name);\n          as_bad(pcVar7,uVar12 - 1);\n          uVar9 = 0;\n        }\n      }" if (parenthesized_expression "(uVar12 <= uVar9)" ( (binary_expression "uVar12 <= uVar9" identifier <= identifier) )) (compound_statement "{\n        if (*(ushort *)(iVar10 + 10) == 0) {\n          pcVar7 = (char *)dcgettext(0,"No current frame",5,uVar12);\n          as_bad(pcVar7);\n          uVar9 = 0;\n        }\n        else {\n          pcVar7 = (char *)dcgettext(0,"Register number out of range 0..%u",5,name);\n          as_bad(pcVar7,uVar12 - 1);\n          uVar9 = 0;\n        }\n      }" { (if_statement "if (*(ushort *)(iVar10 + 10) == 0) {\n          pcVar7 = (char *)dcgettext(0,"No current frame",5,uVar12);\n          as_bad(pcVar7);\n          uVar9 = 0;\n        }\n        else {\n          pcVar7 = (char *)dcgettext(0,"Register number out of range 0..%u",5,name);\n          as_bad(pcVar7,uVar12 - 1);\n          uVar9 = 0;\n        }" if (parenthesized_expression "(*(ushort *)(iVar10 + 10) == 0)" ( (binary_expression "*(ushort *)(iVar10 + 10) == 0" (pointer_expression "*(ushort *)(iVar10 + 10)" * (cast_expression "(ushort *)(iVar10 + 10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 10)" ( (binary_expression "iVar10 + 10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          pcVar7 = (char *)dcgettext(0,"No current frame",5,uVar12);\n          as_bad(pcVar7);\n          uVar9 = 0;\n        }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"No current frame",5,uVar12);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"No current frame",5,uVar12)" identifier = (cast_expression "(char *)dcgettext(0,"No current frame",5,uVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"No current frame",5,uVar12)" identifier (argument_list "(0,"No current frame",5,uVar12)" ( number_literal , (string_literal ""No current frame"" " string_content ") , number_literal , identifier ))))) ;) (expression_statement "as_bad(pcVar7);" (call_expression "as_bad(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          pcVar7 = (char *)dcgettext(0,"Register number out of range 0..%u",5,name);\n          as_bad(pcVar7,uVar12 - 1);\n          uVar9 = 0;\n        }" else (compound_statement "{\n          pcVar7 = (char *)dcgettext(0,"Register number out of range 0..%u",5,name);\n          as_bad(pcVar7,uVar12 - 1);\n          uVar9 = 0;\n        }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"Register number out of range 0..%u",5,name);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"Register number out of range 0..%u",5,name)" identifier = (cast_expression "(char *)dcgettext(0,"Register number out of range 0..%u",5,name)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Register number out of range 0..%u",5,name)" identifier (argument_list "(0,"Register number out of range 0..%u",5,name)" ( number_literal , (string_literal ""Register number out of range 0..%u"" " string_content ") , number_literal , identifier ))))) ;) (expression_statement "as_bad(pcVar7,uVar12 - 1);" (call_expression "as_bad(pcVar7,uVar12 - 1)" identifier (argument_list "(pcVar7,uVar12 - 1)" ( identifier , (binary_expression "uVar12 - 1" identifier - number_literal) ))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }))) })) (expression_statement "e->field_0x10 = 5;" (assignment_expression "e->field_0x10 = 5" (field_expression "e->field_0x10" identifier -> field_identifier) = number_literal) ;) (expression_statement "*(ulong *)&e->X_add_number = uVar9 + *(ushort *)(iVar10 + 8);" (assignment_expression "*(ulong *)&e->X_add_number = uVar9 + *(ushort *)(iVar10 + 8)" (pointer_expression "*(ulong *)&e->X_add_number" * (cast_expression "(ulong *)&e->X_add_number" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier)))) = (binary_expression "uVar9 + *(ushort *)(iVar10 + 8)" identifier + (pointer_expression "*(ushort *)(iVar10 + 8)" * (cast_expression "(ushort *)(iVar10 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)((int)&e->X_add_number + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&e->X_add_number + 4) = 0" (pointer_expression "*(undefined4 *)((int)&e->X_add_number + 4)" * (cast_expression "(undefined4 *)((int)&e->X_add_number + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&e->X_add_number + 4)" ( (binary_expression "(int)&e->X_add_number + 4" (cast_expression "(int)&e->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_0004f57f:\n    end = (char *)xstrdup(name);" statement_identifier : (expression_statement "end = (char *)xstrdup(name);" (assignment_expression "end = (char *)xstrdup(name)" identifier = (cast_expression "(char *)xstrdup(name)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(name)" identifier (argument_list "(name)" ( identifier ))))) ;)) (expression_statement "pcVar7 = ia64_canonicalize_symbol_name(end);" (assignment_expression "pcVar7 = ia64_canonicalize_symbol_name(end)" identifier = (call_expression "ia64_canonicalize_symbol_name(end)" identifier (argument_list "(end)" ( identifier )))) ;) (expression_statement "pvVar8 = hash_find(md.dynreg_hash,pcVar7);" (assignment_expression "pvVar8 = hash_find(md.dynreg_hash,pcVar7)" identifier = (call_expression "hash_find(md.dynreg_hash,pcVar7)" identifier (argument_list "(md.dynreg_hash,pcVar7)" ( (field_expression "md.dynreg_hash" identifier . field_identifier) , identifier )))) ;) (if_statement "if (pvVar8 != (void *)0x0) {\n      e->field_0x10 = 5;\n      iVar10 = *(int *)((int)pvVar8 + 8);\n      *(int *)&e->X_add_number = iVar10;\n      *(int *)((int)&e->X_add_number + 4) = iVar10 >> 0x1f;\n      free(end);\n      return 1;\n    }" if (parenthesized_expression "(pvVar8 != (void *)0x0)" ( (binary_expression "pvVar8 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      e->field_0x10 = 5;\n      iVar10 = *(int *)((int)pvVar8 + 8);\n      *(int *)&e->X_add_number = iVar10;\n      *(int *)((int)&e->X_add_number + 4) = iVar10 >> 0x1f;\n      free(end);\n      return 1;\n    }" { (expression_statement "e->field_0x10 = 5;" (assignment_expression "e->field_0x10 = 5" (field_expression "e->field_0x10" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar10 = *(int *)((int)pvVar8 + 8);" (assignment_expression "iVar10 = *(int *)((int)pvVar8 + 8)" identifier = (pointer_expression "*(int *)((int)pvVar8 + 8)" * (cast_expression "(int *)((int)pvVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar8 + 8)" ( (binary_expression "(int)pvVar8 + 8" (cast_expression "(int)pvVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)&e->X_add_number = iVar10;" (assignment_expression "*(int *)&e->X_add_number = iVar10" (pointer_expression "*(int *)&e->X_add_number" * (cast_expression "(int *)&e->X_add_number" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&e->X_add_number + 4) = iVar10 >> 0x1f;" (assignment_expression "*(int *)((int)&e->X_add_number + 4) = iVar10 >> 0x1f" (pointer_expression "*(int *)((int)&e->X_add_number + 4)" * (cast_expression "(int *)((int)&e->X_add_number + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&e->X_add_number + 4)" ( (binary_expression "(int)&e->X_add_number + 4" (cast_expression "(int)&e->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "iVar10 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "free(end);" (call_expression "free(end)" identifier (argument_list "(end)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "free(end);" (call_expression "free(end)" identifier (argument_list "(end)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "paVar11 = pseudo_func;" (assignment_expression "paVar11 = pseudo_func" identifier = identifier) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (while_statement "while (((pcVar7 = paVar11->name, pcVar7 == (char *)0x0 || (*pcVar7 != name[1])) ||\n         (iVar6 = strcmp(pcVar7 + 1,name + 2), iVar6 != 0))) {\n    iVar10 = iVar10 + 1;\n    paVar11 = paVar11 + 1;\n    if (iVar10 == 0x2d) {\n      return 0;\n    }\n  }" while (parenthesized_expression "(((pcVar7 = paVar11->name, pcVar7 == (char *)0x0 || (*pcVar7 != name[1])) ||\n         (iVar6 = strcmp(pcVar7 + 1,name + 2), iVar6 != 0)))" ( (parenthesized_expression "((pcVar7 = paVar11->name, pcVar7 == (char *)0x0 || (*pcVar7 != name[1])) ||\n         (iVar6 = strcmp(pcVar7 + 1,name + 2), iVar6 != 0))" ( (binary_expression "(pcVar7 = paVar11->name, pcVar7 == (char *)0x0 || (*pcVar7 != name[1])) ||\n         (iVar6 = strcmp(pcVar7 + 1,name + 2), iVar6 != 0)" (parenthesized_expression "(pcVar7 = paVar11->name, pcVar7 == (char *)0x0 || (*pcVar7 != name[1]))" ( (comma_expression "pcVar7 = paVar11->name, pcVar7 == (char *)0x0 || (*pcVar7 != name[1])" (assignment_expression "pcVar7 = paVar11->name" identifier = (field_expression "paVar11->name" identifier -> field_identifier)) , (binary_expression "pcVar7 == (char *)0x0 || (*pcVar7 != name[1])" (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(*pcVar7 != name[1])" ( (binary_expression "*pcVar7 != name[1]" (pointer_expression "*pcVar7" * identifier) != (subscript_expression "name[1]" identifier [ number_literal ])) )))) )) || (parenthesized_expression "(iVar6 = strcmp(pcVar7 + 1,name + 2), iVar6 != 0)" ( (comma_expression "iVar6 = strcmp(pcVar7 + 1,name + 2), iVar6 != 0" (assignment_expression "iVar6 = strcmp(pcVar7 + 1,name + 2)" identifier = (call_expression "strcmp(pcVar7 + 1,name + 2)" identifier (argument_list "(pcVar7 + 1,name + 2)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) , (binary_expression "name + 2" identifier + number_literal) )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) ))) )) )) (compound_statement "{\n    iVar10 = iVar10 + 1;\n    paVar11 = paVar11 + 1;\n    if (iVar10 == 0x2d) {\n      return 0;\n    }\n  }" { (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "paVar11 = paVar11 + 1;" (assignment_expression "paVar11 = paVar11 + 1" identifier = (binary_expression "paVar11 + 1" identifier + number_literal)) ;) (if_statement "if (iVar10 == 0x2d) {\n      return 0;\n    }" if (parenthesized_expression "(iVar10 == 0x2d)" ( (binary_expression "iVar10 == 0x2d" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "pVar2 = pseudo_func[iVar10].type;" (assignment_expression "pVar2 = pseudo_func[iVar10].type" identifier = (field_expression "pseudo_func[iVar10].type" (subscript_expression "pseudo_func[iVar10]" identifier [ identifier ]) . field_identifier)) ;) (if_statement "if (pVar2 == PSEUDO_FUNC_CONST) {\n    aVar3 = pseudo_func[iVar10].u;\n    e->field_0x10 = 2;\n    *(anon_union_4_2_62362db2_for_u *)&e->X_add_number = aVar3;\n    *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n    return 1;\n  }" if (parenthesized_expression "(pVar2 == PSEUDO_FUNC_CONST)" ( (binary_expression "pVar2 == PSEUDO_FUNC_CONST" identifier == identifier) )) (compound_statement "{\n    aVar3 = pseudo_func[iVar10].u;\n    e->field_0x10 = 2;\n    *(anon_union_4_2_62362db2_for_u *)&e->X_add_number = aVar3;\n    *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n    return 1;\n  }" { (expression_statement "aVar3 = pseudo_func[iVar10].u;" (assignment_expression "aVar3 = pseudo_func[iVar10].u" identifier = (field_expression "pseudo_func[iVar10].u" (subscript_expression "pseudo_func[iVar10]" identifier [ identifier ]) . field_identifier)) ;) (expression_statement "e->field_0x10 = 2;" (assignment_expression "e->field_0x10 = 2" (field_expression "e->field_0x10" identifier -> field_identifier) = number_literal) ;) (expression_statement "*(anon_union_4_2_62362db2_for_u *)&e->X_add_number = aVar3;" (assignment_expression "*(anon_union_4_2_62362db2_for_u *)&e->X_add_number = aVar3" (pointer_expression "*(anon_union_4_2_62362db2_for_u *)&e->X_add_number" * (cast_expression "(anon_union_4_2_62362db2_for_u *)&e->X_add_number" ( (type_descriptor "anon_union_4_2_62362db2_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&e->X_add_number + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&e->X_add_number + 4) = 0" (pointer_expression "*(undefined4 *)((int)&e->X_add_number + 4)" * (cast_expression "(undefined4 *)((int)&e->X_add_number + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&e->X_add_number + 4)" ( (binary_expression "(int)&e->X_add_number + 4" (cast_expression "(int)&e->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) (if_statement "if (pVar2 == PSEUDO_FUNC_REG) {\n    aVar3 = pseudo_func[iVar10].u;\n    e->field_0x10 = 5;\n    *(anon_union_4_2_62362db2_for_u *)&e->X_add_number = aVar3;\n    *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n    return 1;\n  }" if (parenthesized_expression "(pVar2 == PSEUDO_FUNC_REG)" ( (binary_expression "pVar2 == PSEUDO_FUNC_REG" identifier == identifier) )) (compound_statement "{\n    aVar3 = pseudo_func[iVar10].u;\n    e->field_0x10 = 5;\n    *(anon_union_4_2_62362db2_for_u *)&e->X_add_number = aVar3;\n    *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n    return 1;\n  }" { (expression_statement "aVar3 = pseudo_func[iVar10].u;" (assignment_expression "aVar3 = pseudo_func[iVar10].u" identifier = (field_expression "pseudo_func[iVar10].u" (subscript_expression "pseudo_func[iVar10]" identifier [ identifier ]) . field_identifier)) ;) (expression_statement "e->field_0x10 = 5;" (assignment_expression "e->field_0x10 = 5" (field_expression "e->field_0x10" identifier -> field_identifier) = number_literal) ;) (expression_statement "*(anon_union_4_2_62362db2_for_u *)&e->X_add_number = aVar3;" (assignment_expression "*(anon_union_4_2_62362db2_for_u *)&e->X_add_number = aVar3" (pointer_expression "*(anon_union_4_2_62362db2_for_u *)&e->X_add_number" * (cast_expression "(anon_union_4_2_62362db2_for_u *)&e->X_add_number" ( (type_descriptor "anon_union_4_2_62362db2_for_u *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&e->X_add_number + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&e->X_add_number + 4) = 0" (pointer_expression "*(undefined4 *)((int)&e->X_add_number + 4)" * (cast_expression "(undefined4 *)((int)&e->X_add_number + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&e->X_add_number + 4)" ( (binary_expression "(int)&e->X_add_number + 4" (cast_expression "(int)&e->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) (if_statement "if (pVar2 != PSEUDO_FUNC_RELOC) {\n    return 0;\n  }" if (parenthesized_expression "(pVar2 != PSEUDO_FUNC_RELOC)" ( (binary_expression "pVar2 != PSEUDO_FUNC_RELOC" identifier != identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "end = input_line_pointer;" (assignment_expression "end = input_line_pointer" identifier = identifier) ;) (if_statement "if (*nextcharP != '(') {\n    pcVar7 = (char *)dcgettext(0,"Expected \'(\'",5);\n    as_bad(pcVar7);\n    return 1;\n  }" if (parenthesized_expression "(*nextcharP != '(')" ( (binary_expression "*nextcharP != '('" (pointer_expression "*nextcharP" * identifier) != (char_literal "'('" ' character ')) )) (compound_statement "{\n    pcVar7 = (char *)dcgettext(0,"Expected \'(\'",5);\n    as_bad(pcVar7);\n    return 1;\n  }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"Expected \'(\'",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"Expected \'(\'",5)" identifier = (cast_expression "(char *)dcgettext(0,"Expected \'(\'",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Expected \'(\'",5)" identifier (argument_list "(0,"Expected \'(\'",5)" ( number_literal , (string_literal ""Expected \'(\'"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar7);" (call_expression "as_bad(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "input_line_pointer = input_line_pointer + 1;" (assignment_expression "input_line_pointer = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) (expression_statement "expr(0,e,expr_normal);" (call_expression "expr(0,e,expr_normal)" identifier (argument_list "(0,e,expr_normal)" ( number_literal , identifier , identifier ))) ;) (if_statement "if (*input_line_pointer == ')') {\n    input_line_pointer = input_line_pointer + 1;\n    if (e->field_0x10 == '\x03') {\nLAB_0004f68b:\n      pcVar7 = input_line_pointer;\n      e->field_0x10 = 0x3f;\n      e->X_op_symbol = (symbolS *)pseudo_func[iVar10].u;\n      goto LAB_0004f6a4;\n    }\n    if (e->field_0x10 == '?') {\n      if (iVar10 == 4) {\n        vVar13 = S_GET_VALUE(e->X_op_symbol);\n        if (vVar13 == 1) {\n          iVar10 = 0xe;\n        }\n        else if (vVar13 == 0) {\n          iVar10 = 0xd;\n        }\n        else if (vVar13 == 2) {\n          iVar10 = 0xc;\n        }\n        else {\n          if (vVar13 != 10) goto LAB_0004f824;\n          iVar10 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar7 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar7 = "Not a symbolic expression";\n    }\n  }\n  else {\n    pcVar7 = "Missing \')\'";\n  }" if (parenthesized_expression "(*input_line_pointer == ')')" ( (binary_expression "*input_line_pointer == ')'" (pointer_expression "*input_line_pointer" * identifier) == (char_literal "')'" ' character ')) )) (compound_statement "{\n    input_line_pointer = input_line_pointer + 1;\n    if (e->field_0x10 == '\x03') {\nLAB_0004f68b:\n      pcVar7 = input_line_pointer;\n      e->field_0x10 = 0x3f;\n      e->X_op_symbol = (symbolS *)pseudo_func[iVar10].u;\n      goto LAB_0004f6a4;\n    }\n    if (e->field_0x10 == '?') {\n      if (iVar10 == 4) {\n        vVar13 = S_GET_VALUE(e->X_op_symbol);\n        if (vVar13 == 1) {\n          iVar10 = 0xe;\n        }\n        else if (vVar13 == 0) {\n          iVar10 = 0xd;\n        }\n        else if (vVar13 == 2) {\n          iVar10 = 0xc;\n        }\n        else {\n          if (vVar13 != 10) goto LAB_0004f824;\n          iVar10 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar7 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar7 = "Not a symbolic expression";\n    }\n  }" { (expression_statement "input_line_pointer = input_line_pointer + 1;" (assignment_expression "input_line_pointer = input_line_pointer + 1" identifier = (binary_expression "input_line_pointer + 1" identifier + number_literal)) ;) (if_statement "if (e->field_0x10 == '\x03') {\nLAB_0004f68b:\n      pcVar7 = input_line_pointer;\n      e->field_0x10 = 0x3f;\n      e->X_op_symbol = (symbolS *)pseudo_func[iVar10].u;\n      goto LAB_0004f6a4;\n    }" if (parenthesized_expression "(e->field_0x10 == '\x03')" ( (binary_expression "e->field_0x10 == '\x03'" (field_expression "e->field_0x10" identifier -> field_identifier) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004f68b:\n      pcVar7 = input_line_pointer;\n      e->field_0x10 = 0x3f;\n      e->X_op_symbol = (symbolS *)pseudo_func[iVar10].u;\n      goto LAB_0004f6a4;\n    }" { (labeled_statement "LAB_0004f68b:\n      pcVar7 = input_line_pointer;" statement_identifier : (expression_statement "pcVar7 = input_line_pointer;" (assignment_expression "pcVar7 = input_line_pointer" identifier = identifier) ;)) (expression_statement "e->field_0x10 = 0x3f;" (assignment_expression "e->field_0x10 = 0x3f" (field_expression "e->field_0x10" identifier -> field_identifier) = number_literal) ;) (expression_statement "e->X_op_symbol = (symbolS *)pseudo_func[iVar10].u;" (assignment_expression "e->X_op_symbol = (symbolS *)pseudo_func[iVar10].u" (field_expression "e->X_op_symbol" identifier -> field_identifier) = (cast_expression "(symbolS *)pseudo_func[iVar10].u" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pseudo_func[iVar10].u" (subscript_expression "pseudo_func[iVar10]" identifier [ identifier ]) . field_identifier))) ;) (goto_statement "goto LAB_0004f6a4;" goto statement_identifier ;) })) (if_statement "if (e->field_0x10 == '?') {\n      if (iVar10 == 4) {\n        vVar13 = S_GET_VALUE(e->X_op_symbol);\n        if (vVar13 == 1) {\n          iVar10 = 0xe;\n        }\n        else if (vVar13 == 0) {\n          iVar10 = 0xd;\n        }\n        else if (vVar13 == 2) {\n          iVar10 = 0xc;\n        }\n        else {\n          if (vVar13 != 10) goto LAB_0004f824;\n          iVar10 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar7 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar7 = "Not a symbolic expression";\n    }" if (parenthesized_expression "(e->field_0x10 == '?')" ( (binary_expression "e->field_0x10 == '?'" (field_expression "e->field_0x10" identifier -> field_identifier) == (char_literal "'?'" ' character ')) )) (compound_statement "{\n      if (iVar10 == 4) {\n        vVar13 = S_GET_VALUE(e->X_op_symbol);\n        if (vVar13 == 1) {\n          iVar10 = 0xe;\n        }\n        else if (vVar13 == 0) {\n          iVar10 = 0xd;\n        }\n        else if (vVar13 == 2) {\n          iVar10 = 0xc;\n        }\n        else {\n          if (vVar13 != 10) goto LAB_0004f824;\n          iVar10 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar7 = "Illegal combination of relocation functions";\n    }" { (if_statement "if (iVar10 == 4) {\n        vVar13 = S_GET_VALUE(e->X_op_symbol);\n        if (vVar13 == 1) {\n          iVar10 = 0xe;\n        }\n        else if (vVar13 == 0) {\n          iVar10 = 0xd;\n        }\n        else if (vVar13 == 2) {\n          iVar10 = 0xc;\n        }\n        else {\n          if (vVar13 != 10) goto LAB_0004f824;\n          iVar10 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }" if (parenthesized_expression "(iVar10 == 4)" ( (binary_expression "iVar10 == 4" identifier == number_literal) )) (compound_statement "{\n        vVar13 = S_GET_VALUE(e->X_op_symbol);\n        if (vVar13 == 1) {\n          iVar10 = 0xe;\n        }\n        else if (vVar13 == 0) {\n          iVar10 = 0xd;\n        }\n        else if (vVar13 == 2) {\n          iVar10 = 0xc;\n        }\n        else {\n          if (vVar13 != 10) goto LAB_0004f824;\n          iVar10 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }" { (expression_statement "vVar13 = S_GET_VALUE(e->X_op_symbol);" (assignment_expression "vVar13 = S_GET_VALUE(e->X_op_symbol)" identifier = (call_expression "S_GET_VALUE(e->X_op_symbol)" identifier (argument_list "(e->X_op_symbol)" ( (field_expression "e->X_op_symbol" identifier -> field_identifier) )))) ;) (if_statement "if (vVar13 == 1) {\n          iVar10 = 0xe;\n        }\n        else if (vVar13 == 0) {\n          iVar10 = 0xd;\n        }\n        else if (vVar13 == 2) {\n          iVar10 = 0xc;\n        }\n        else {\n          if (vVar13 != 10) goto LAB_0004f824;\n          iVar10 = 0xf;\n        }" if (parenthesized_expression "(vVar13 == 1)" ( (binary_expression "vVar13 == 1" identifier == number_literal) )) (compound_statement "{\n          iVar10 = 0xe;\n        }" { (expression_statement "iVar10 = 0xe;" (assignment_expression "iVar10 = 0xe" identifier = number_literal) ;) }) (else_clause "else if (vVar13 == 0) {\n          iVar10 = 0xd;\n        }\n        else if (vVar13 == 2) {\n          iVar10 = 0xc;\n        }\n        else {\n          if (vVar13 != 10) goto LAB_0004f824;\n          iVar10 = 0xf;\n        }" else (if_statement "if (vVar13 == 0) {\n          iVar10 = 0xd;\n        }\n        else if (vVar13 == 2) {\n          iVar10 = 0xc;\n        }\n        else {\n          if (vVar13 != 10) goto LAB_0004f824;\n          iVar10 = 0xf;\n        }" if (parenthesized_expression "(vVar13 == 0)" ( (binary_expression "vVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar10 = 0xd;\n        }" { (expression_statement "iVar10 = 0xd;" (assignment_expression "iVar10 = 0xd" identifier = number_literal) ;) }) (else_clause "else if (vVar13 == 2) {\n          iVar10 = 0xc;\n        }\n        else {\n          if (vVar13 != 10) goto LAB_0004f824;\n          iVar10 = 0xf;\n        }" else (if_statement "if (vVar13 == 2) {\n          iVar10 = 0xc;\n        }\n        else {\n          if (vVar13 != 10) goto LAB_0004f824;\n          iVar10 = 0xf;\n        }" if (parenthesized_expression "(vVar13 == 2)" ( (binary_expression "vVar13 == 2" identifier == number_literal) )) (compound_statement "{\n          iVar10 = 0xc;\n        }" { (expression_statement "iVar10 = 0xc;" (assignment_expression "iVar10 = 0xc" identifier = number_literal) ;) }) (else_clause "else {\n          if (vVar13 != 10) goto LAB_0004f824;\n          iVar10 = 0xf;\n        }" else (compound_statement "{\n          if (vVar13 != 10) goto LAB_0004f824;\n          iVar10 = 0xf;\n        }" { (if_statement "if (vVar13 != 10) goto LAB_0004f824;" if (parenthesized_expression "(vVar13 != 10)" ( (binary_expression "vVar13 != 10" identifier != number_literal) )) (goto_statement "goto LAB_0004f824;" goto statement_identifier ;)) (expression_statement "iVar10 = 0xf;" (assignment_expression "iVar10 = 0xf" identifier = number_literal) ;) }))))))) (goto_statement "goto LAB_0004f68b;" goto statement_identifier ;) })) (labeled_statement "LAB_0004f824:\n      pcVar7 = "Illegal combination of relocation functions";" statement_identifier : (expression_statement "pcVar7 = "Illegal combination of relocation functions";" (assignment_expression "pcVar7 = "Illegal combination of relocation functions"" identifier = (string_literal ""Illegal combination of relocation functions"" " string_content ")) ;)) }) (else_clause "else {\n      pcVar7 = "Not a symbolic expression";\n    }" else (compound_statement "{\n      pcVar7 = "Not a symbolic expression";\n    }" { (expression_statement "pcVar7 = "Not a symbolic expression";" (assignment_expression "pcVar7 = "Not a symbolic expression"" identifier = (string_literal ""Not a symbolic expression"" " string_content ")) ;) }))) }) (else_clause "else {\n    pcVar7 = "Missing \')\'";\n  }" else (compound_statement "{\n    pcVar7 = "Missing \')\'";\n  }" { (expression_statement "pcVar7 = "Missing \')\'";" (assignment_expression "pcVar7 = "Missing \')\'"" identifier = (string_literal ""Missing \')\'"" " string_content escape_sequence string_content escape_sequence ")) ;) }))) (expression_statement "pcVar7 = (char *)dcgettext(0,pcVar7,5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,pcVar7,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar7,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar7,5)" identifier (argument_list "(0,pcVar7,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "as_bad(pcVar7);" (call_expression "as_bad(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (expression_statement "pcVar7 = input_line_pointer;" (assignment_expression "pcVar7 = input_line_pointer" identifier = identifier) ;) (labeled_statement "LAB_0004f6a4:\n  *nextcharP = *pcVar7;" statement_identifier : (expression_statement "*nextcharP = *pcVar7;" (assignment_expression "*nextcharP = *pcVar7" (pointer_expression "*nextcharP" * identifier) = (pointer_expression "*pcVar7" * identifier)) ;)) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "undefined4 FUN_0004f3d0(char *param_1,int param_2,char *param_3)\n\n{\n  char cVar1;\n  byte bVar2;\n  int iVar3;\n  undefined4 uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined *puVar8;\n  undefined **ppuVar9;\n  uint uVar10;\n  undefined8 uVar11;\n  longlong lVar12;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4f3d9;\n  if (*param_1 != '@') {\n    iVar7 = FUN_00022b40(DAT_00087944,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }\n    iVar7 = FUN_00022b40(DAT_0008794c,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }\n    cVar1 = *param_1;\n    if (cVar1 == 'l') {\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }\n    if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    local_20[0] = (char *)xstrdup(param_1);\n    uVar4 = FUN_0004e9c0(local_20[0]);\n    iVar7 = FUN_00022b40(DAT_00087948,uVar4);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }\n    free(local_20[0]);\n    return 0;\n  }\n  ppuVar9 = &PTR_DAT_0007edc0;\n  iVar7 = 0;\n  while (((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0))) {\n    iVar7 = iVar7 + 1;\n    ppuVar9 = ppuVar9 + 3;\n    if (iVar7 == 0x2d) {\n      return 0;\n    }\n  }\n  iVar3 = (&DAT_0007edc4)[iVar7 * 3];\n  if (iVar3 == 2) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 2;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }\n  if (iVar3 == 3) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 5;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }\n  if (iVar3 != 1) {\n    return 0;\n  }\n  local_20[0] = DAT_00088118;\n  if (*param_3 != '(') {\n    uVar4 = dcgettext(0,"Expected \'(\'",5);\n    FUN_00029550(uVar4);\n    return 1;\n  }\n  DAT_00088118 = DAT_00088118 + 1;\n  FUN_00020530(0,param_2,1);\n  if (*DAT_00088118 == ')') {\n    DAT_00088118 = DAT_00088118 + 1;\n    if (*(char *)(param_2 + 0x10) == '\x03') {\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }\n    if (*(char *)(param_2 + 0x10) == '?') {\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar6 = "Not a symbolic expression";\n    }\n  }\n  else {\n    pcVar6 = "Missing \')\'";\n  }\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_00029550(uVar4);\n  pcVar6 = DAT_00088118;\nLAB_0004f6a4:\n  *param_3 = *pcVar6;\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_0004f3d0(char *param_1,int param_2,char *param_3)\n\n{\n  char cVar1;\n  byte bVar2;\n  int iVar3;\n  undefined4 uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined *puVar8;\n  undefined **ppuVar9;\n  uint uVar10;\n  undefined8 uVar11;\n  longlong lVar12;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4f3d9;\n  if (*param_1 != '@') {\n    iVar7 = FUN_00022b40(DAT_00087944,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }\n    iVar7 = FUN_00022b40(DAT_0008794c,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }\n    cVar1 = *param_1;\n    if (cVar1 == 'l') {\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }\n    if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    local_20[0] = (char *)xstrdup(param_1);\n    uVar4 = FUN_0004e9c0(local_20[0]);\n    iVar7 = FUN_00022b40(DAT_00087948,uVar4);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }\n    free(local_20[0]);\n    return 0;\n  }\n  ppuVar9 = &PTR_DAT_0007edc0;\n  iVar7 = 0;\n  while (((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0))) {\n    iVar7 = iVar7 + 1;\n    ppuVar9 = ppuVar9 + 3;\n    if (iVar7 == 0x2d) {\n      return 0;\n    }\n  }\n  iVar3 = (&DAT_0007edc4)[iVar7 * 3];\n  if (iVar3 == 2) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 2;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }\n  if (iVar3 == 3) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 5;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }\n  if (iVar3 != 1) {\n    return 0;\n  }\n  local_20[0] = DAT_00088118;\n  if (*param_3 != '(') {\n    uVar4 = dcgettext(0,"Expected \'(\'",5);\n    FUN_00029550(uVar4);\n    return 1;\n  }\n  DAT_00088118 = DAT_00088118 + 1;\n  FUN_00020530(0,param_2,1);\n  if (*DAT_00088118 == ')') {\n    DAT_00088118 = DAT_00088118 + 1;\n    if (*(char *)(param_2 + 0x10) == '\x03') {\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }\n    if (*(char *)(param_2 + 0x10) == '?') {\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar6 = "Not a symbolic expression";\n    }\n  }\n  else {\n    pcVar6 = "Missing \')\'";\n  }\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_00029550(uVar4);\n  pcVar6 = DAT_00088118;\nLAB_0004f6a4:\n  *param_3 = *pcVar6;\n  return 1;\n}" type_identifier (function_declarator "FUN_0004f3d0(char *param_1,int param_2,char *param_3)" identifier (parameter_list "(char *param_1,int param_2,char *param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  int iVar3;\n  undefined4 uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined *puVar8;\n  undefined **ppuVar9;\n  uint uVar10;\n  undefined8 uVar11;\n  longlong lVar12;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4f3d9;\n  if (*param_1 != '@') {\n    iVar7 = FUN_00022b40(DAT_00087944,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }\n    iVar7 = FUN_00022b40(DAT_0008794c,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }\n    cVar1 = *param_1;\n    if (cVar1 == 'l') {\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }\n    if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    local_20[0] = (char *)xstrdup(param_1);\n    uVar4 = FUN_0004e9c0(local_20[0]);\n    iVar7 = FUN_00022b40(DAT_00087948,uVar4);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }\n    free(local_20[0]);\n    return 0;\n  }\n  ppuVar9 = &PTR_DAT_0007edc0;\n  iVar7 = 0;\n  while (((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0))) {\n    iVar7 = iVar7 + 1;\n    ppuVar9 = ppuVar9 + 3;\n    if (iVar7 == 0x2d) {\n      return 0;\n    }\n  }\n  iVar3 = (&DAT_0007edc4)[iVar7 * 3];\n  if (iVar3 == 2) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 2;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }\n  if (iVar3 == 3) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 5;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }\n  if (iVar3 != 1) {\n    return 0;\n  }\n  local_20[0] = DAT_00088118;\n  if (*param_3 != '(') {\n    uVar4 = dcgettext(0,"Expected \'(\'",5);\n    FUN_00029550(uVar4);\n    return 1;\n  }\n  DAT_00088118 = DAT_00088118 + 1;\n  FUN_00020530(0,param_2,1);\n  if (*DAT_00088118 == ')') {\n    DAT_00088118 = DAT_00088118 + 1;\n    if (*(char *)(param_2 + 0x10) == '\x03') {\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }\n    if (*(char *)(param_2 + 0x10) == '?') {\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar6 = "Not a symbolic expression";\n    }\n  }\n  else {\n    pcVar6 = "Missing \')\'";\n  }\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_00029550(uVar4);\n  pcVar6 = DAT_00088118;\nLAB_0004f6a4:\n  *param_3 = *pcVar6;\n  return 1;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined **ppuVar9;" type_identifier (pointer_declarator "**ppuVar9" * (pointer_declarator "*ppuVar9" * identifier)) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "longlong lVar12;" type_identifier identifier ;) (declaration "char *local_20 [3];" primitive_type (pointer_declarator "*local_20 [3]" * (array_declarator "local_20 [3]" identifier [ number_literal ])) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x4f3d9;" (assignment_expression "uStack_14 = 0x4f3d9" identifier = number_literal) ;) (if_statement "if (*param_1 != '@') {\n    iVar7 = FUN_00022b40(DAT_00087944,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }\n    iVar7 = FUN_00022b40(DAT_0008794c,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }\n    cVar1 = *param_1;\n    if (cVar1 == 'l') {\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }\n    if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    local_20[0] = (char *)xstrdup(param_1);\n    uVar4 = FUN_0004e9c0(local_20[0]);\n    iVar7 = FUN_00022b40(DAT_00087948,uVar4);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }\n    free(local_20[0]);\n    return 0;\n  }" if (parenthesized_expression "(*param_1 != '@')" ( (binary_expression "*param_1 != '@'" (pointer_expression "*param_1" * identifier) != (char_literal "'@'" ' character ')) )) (compound_statement "{\n    iVar7 = FUN_00022b40(DAT_00087944,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }\n    iVar7 = FUN_00022b40(DAT_0008794c,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }\n    cVar1 = *param_1;\n    if (cVar1 == 'l') {\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }\n    if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    local_20[0] = (char *)xstrdup(param_1);\n    uVar4 = FUN_0004e9c0(local_20[0]);\n    iVar7 = FUN_00022b40(DAT_00087948,uVar4);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }\n    free(local_20[0]);\n    return 0;\n  }" { (expression_statement "iVar7 = FUN_00022b40(DAT_00087944,param_1);" (assignment_expression "iVar7 = FUN_00022b40(DAT_00087944,param_1)" identifier = (call_expression "FUN_00022b40(DAT_00087944,param_1)" identifier (argument_list "(DAT_00087944,param_1)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }" { (expression_statement "*(undefined1 *)(param_2 + 0x10) = 5;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 5" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" * (cast_expression "(undefined1 *)(param_2 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = FUN_000375e0(iVar7);" (assignment_expression "uVar11 = FUN_000375e0(iVar7)" identifier = (call_expression "FUN_000375e0(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "*(undefined8 *)(param_2 + 8) = uVar11;" (assignment_expression "*(undefined8 *)(param_2 + 8) = uVar11" (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar7 = FUN_00022b40(DAT_0008794c,param_1);" (assignment_expression "iVar7 = FUN_00022b40(DAT_0008794c,param_1)" identifier = (call_expression "FUN_00022b40(DAT_0008794c,param_1)" identifier (argument_list "(DAT_0008794c,param_1)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }" { (expression_statement "*(undefined1 *)(param_2 + 0x10) = 2;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 2" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" * (cast_expression "(undefined1 *)(param_2 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar4 = *(undefined4 *)(iVar7 + 4);" (assignment_expression "uVar4 = *(undefined4 *)(iVar7 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);" (assignment_expression "*(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8)" (pointer_expression "*(undefined4 *)(param_2 + 0xc)" * (cast_expression "(undefined4 *)(param_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar7 + 8)" * (cast_expression "(undefined4 *)(iVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_2 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(param_2 + 8) = uVar4" (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (cVar1 == 'l') {\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }" if (parenthesized_expression "(cVar1 == 'l')" ( (binary_expression "cVar1 == 'l'" identifier == (char_literal "'l'" ' character ')) )) (compound_statement "{\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }" { (if_statement "if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;" if (parenthesized_expression "(((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0))" ( (binary_expression "((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)" (parenthesized_expression "((param_1[1] != 'o') || (param_1[2] != 'c'))" ( (binary_expression "(param_1[1] != 'o') || (param_1[2] != 'c')" (parenthesized_expression "(param_1[1] != 'o')" ( (binary_expression "param_1[1] != 'o'" (subscript_expression "param_1[1]" identifier [ number_literal ]) != (char_literal "'o'" ' character ')) )) || (parenthesized_expression "(param_1[2] != 'c')" ( (binary_expression "param_1[2] != 'c'" (subscript_expression "param_1[2]" identifier [ number_literal ]) != (char_literal "'c'" ' character ')) ))) )) || (parenthesized_expression "((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)" ( (binary_expression "(PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0" (parenthesized_expression "(PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4)" ( (binary_expression "PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4" (subscript_expression "PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2]" identifier [ (binary_expression "(uint)(byte)param_1[3] * 2" (cast_expression "(uint)(byte)param_1[3]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)param_1[3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) * number_literal) ]) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_0004f57f;" goto statement_identifier ;)) (expression_statement "pcVar6 = param_1 + 3;" (assignment_expression "pcVar6 = param_1 + 3" identifier = (binary_expression "param_1 + 3" identifier + number_literal)) ;) (expression_statement "bVar2 = param_1[3];" (assignment_expression "bVar2 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (expression_statement "puVar8 = &DAT_00087d6c;" (assignment_expression "puVar8 = &DAT_00087d6c" identifier = (pointer_expression "&DAT_00087d6c" & identifier)) ;) }) (else_clause "else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }" else (if_statement "if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }" if (parenthesized_expression "(cVar1 == 'o')" ( (binary_expression "cVar1 == 'o'" identifier == (char_literal "'o'" ' character ')) )) (compound_statement "{\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }" { (if_statement "if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;" if (parenthesized_expression "(((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0))" ( (binary_expression "((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)" (parenthesized_expression "((param_1[1] != 'u') || (param_1[2] != 't'))" ( (binary_expression "(param_1[1] != 'u') || (param_1[2] != 't')" (parenthesized_expression "(param_1[1] != 'u')" ( (binary_expression "param_1[1] != 'u'" (subscript_expression "param_1[1]" identifier [ number_literal ]) != (char_literal "'u'" ' character ')) )) || (parenthesized_expression "(param_1[2] != 't')" ( (binary_expression "param_1[2] != 't'" (subscript_expression "param_1[2]" identifier [ number_literal ]) != (char_literal "'t'" ' character ')) ))) )) || (parenthesized_expression "((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)" ( (binary_expression "(PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0" (parenthesized_expression "(PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4)" ( (binary_expression "PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4" (subscript_expression "PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2]" identifier [ (binary_expression "(uint)(byte)param_1[3] * 2" (cast_expression "(uint)(byte)param_1[3]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)param_1[3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) * number_literal) ]) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_0004f57f;" goto statement_identifier ;)) (expression_statement "pcVar6 = param_1 + 3;" (assignment_expression "pcVar6 = param_1 + 3" identifier = (binary_expression "param_1 + 3" identifier + number_literal)) ;) (expression_statement "bVar2 = param_1[3];" (assignment_expression "bVar2 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (expression_statement "puVar8 = &DAT_00087d78;" (assignment_expression "puVar8 = &DAT_00087d78" identifier = (pointer_expression "&DAT_00087d78" & identifier)) ;) }) (else_clause "else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }" else (compound_statement "{\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }" { (if_statement "if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;" if (parenthesized_expression "(((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))" ( (binary_expression "((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0)" (parenthesized_expression "((cVar1 != 'i') || (param_1[1] != 'n'))" ( (binary_expression "(cVar1 != 'i') || (param_1[1] != 'n')" (parenthesized_expression "(cVar1 != 'i')" ( (binary_expression "cVar1 != 'i'" identifier != (char_literal "'i'" ' character ')) )) || (parenthesized_expression "(param_1[1] != 'n')" ( (binary_expression "param_1[1] != 'n'" (subscript_expression "param_1[1]" identifier [ number_literal ]) != (char_literal "'n'" ' character ')) ))) )) || (parenthesized_expression "(bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0)" ( (comma_expression "bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0" (assignment_expression "bVar2 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) , (binary_expression "(PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0" (parenthesized_expression "(PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4)" ( (binary_expression "PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4" (subscript_expression "PTR__sch_istable_0007df84[(uint)bVar2 * 2]" identifier [ (binary_expression "(uint)bVar2 * 2" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal)) ))) )) (goto_statement "goto LAB_0004f57f;" goto statement_identifier ;)) (expression_statement "pcVar6 = param_1 + 2;" (assignment_expression "pcVar6 = param_1 + 2" identifier = (binary_expression "param_1 + 2" identifier + number_literal)) ;) (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) (expression_statement "puVar8 = &DAT_00087d60;" (assignment_expression "puVar8 = &DAT_00087d60" identifier = (pointer_expression "&DAT_00087d60" & identifier)) ;) }))))) (if_statement "if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }" if (parenthesized_expression "(((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60))))))" ( (binary_expression "((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))" (parenthesized_expression "((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0'))" ( (binary_expression "(bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')" (parenthesized_expression "(bVar2 != 0x30)" ( (binary_expression "bVar2 != 0x30" identifier != number_literal) )) || (parenthesized_expression "(param_1[iVar7 + 1] == '\0')" ( (binary_expression "param_1[iVar7 + 1] == '\0'" (subscript_expression "param_1[iVar7 + 1]" identifier [ (binary_expression "iVar7 + 1" identifier + number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))" ( (parenthesized_expression "(uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60))))" ( (comma_expression "uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))" (assignment_expression "uVar5 = strtoul(pcVar6,local_20,10)" identifier = (call_expression "strtoul(pcVar6,local_20,10)" identifier (argument_list "(pcVar6,local_20,10)" ( identifier , identifier , number_literal )))) , (binary_expression "pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))" (binary_expression "pcVar6 < local_20[0]" identifier < (subscript_expression "local_20[0]" identifier [ number_literal ])) && (parenthesized_expression "((*local_20[0] == '\0' && (uVar5 < 0x60)))" ( (parenthesized_expression "(*local_20[0] == '\0' && (uVar5 < 0x60))" ( (binary_expression "*local_20[0] == '\0' && (uVar5 < 0x60)" (binary_expression "*local_20[0] == '\0'" (pointer_expression "*local_20[0]" * (subscript_expression "local_20[0]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(uVar5 < 0x60)" ( (binary_expression "uVar5 < 0x60" identifier < number_literal) ))) )) )))) )) ))) )) (compound_statement "{\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }" { (expression_statement "uVar10 = (uint)*(ushort *)(puVar8 + 10);" (assignment_expression "uVar10 = (uint)*(ushort *)(puVar8 + 10)" identifier = (binary_expression "(uint)*(ushort *)(puVar8 + 10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(puVar8 + 10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 10)" ( (binary_expression "puVar8 + 10" identifier + number_literal) ))))) ;) (if_statement "if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }" if (parenthesized_expression "(uVar10 <= uVar5)" ( (binary_expression "uVar10 <= uVar5" identifier <= identifier) )) (compound_statement "{\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }" { (if_statement "if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }" if (parenthesized_expression "(*(ushort *)(puVar8 + 10) == 0)" ( (binary_expression "*(ushort *)(puVar8 + 10) == 0" (pointer_expression "*(ushort *)(puVar8 + 10)" * (cast_expression "(ushort *)(puVar8 + 10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 10)" ( (binary_expression "puVar8 + 10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }" { (expression_statement "uVar4 = dcgettext(0,"No current frame",5,uVar10);" (assignment_expression "uVar4 = dcgettext(0,"No current frame",5,uVar10)" identifier = (call_expression "dcgettext(0,"No current frame",5,uVar10)" identifier (argument_list "(0,"No current frame",5,uVar10)" ( number_literal , (string_literal ""No current frame"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_00029550(uVar4);" (call_expression "FUN_00029550(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }" else (compound_statement "{\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }" { (expression_statement "uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);" (assignment_expression "uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1)" identifier = (call_expression "dcgettext(0,"Register number out of range 0..%u",5,param_1)" identifier (argument_list "(0,"Register number out of range 0..%u",5,param_1)" ( number_literal , (string_literal ""Register number out of range 0..%u"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_00029550(uVar4,uVar10 - 1);" (call_expression "FUN_00029550(uVar4,uVar10 - 1)" identifier (argument_list "(uVar4,uVar10 - 1)" ( identifier , (binary_expression "uVar10 - 1" identifier - number_literal) ))) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) })) (expression_statement "*(undefined1 *)(param_2 + 0x10) = 5;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 5" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" * (cast_expression "(undefined1 *)(param_2 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);" (assignment_expression "*(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8)" (pointer_expression "*(ulong *)(param_2 + 8)" * (cast_expression "(ulong *)(param_2 + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) = (binary_expression "uVar5 + *(ushort *)(puVar8 + 8)" identifier + (pointer_expression "*(ushort *)(puVar8 + 8)" * (cast_expression "(ushort *)(puVar8 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 8)" ( (binary_expression "puVar8 + 8" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(param_2 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0xc) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0xc)" * (cast_expression "(undefined4 *)(param_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_0004f57f:\n    local_20[0] = (char *)xstrdup(param_1);" statement_identifier : (expression_statement "local_20[0] = (char *)xstrdup(param_1);" (assignment_expression "local_20[0] = (char *)xstrdup(param_1)" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (cast_expression "(char *)xstrdup(param_1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;)) (expression_statement "uVar4 = FUN_0004e9c0(local_20[0]);" (assignment_expression "uVar4 = FUN_0004e9c0(local_20[0])" identifier = (call_expression "FUN_0004e9c0(local_20[0])" identifier (argument_list "(local_20[0])" ( (subscript_expression "local_20[0]" identifier [ number_literal ]) )))) ;) (expression_statement "iVar7 = FUN_00022b40(DAT_00087948,uVar4);" (assignment_expression "iVar7 = FUN_00022b40(DAT_00087948,uVar4)" identifier = (call_expression "FUN_00022b40(DAT_00087948,uVar4)" identifier (argument_list "(DAT_00087948,uVar4)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }" { (expression_statement "*(undefined1 *)(param_2 + 0x10) = 5;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 5" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" * (cast_expression "(undefined1 *)(param_2 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = *(int *)(iVar7 + 8);" (assignment_expression "iVar7 = *(int *)(iVar7 + 8)" identifier = (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_2 + 8) = iVar7;" (assignment_expression "*(int *)(param_2 + 8) = iVar7" (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_2 + 0xc) = iVar7 >> 0x1f;" (assignment_expression "*(int *)(param_2 + 0xc) = iVar7 >> 0x1f" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) = (binary_expression "iVar7 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "free(local_20[0]);" (call_expression "free(local_20[0])" identifier (argument_list "(local_20[0])" ( (subscript_expression "local_20[0]" identifier [ number_literal ]) ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "free(local_20[0]);" (call_expression "free(local_20[0])" identifier (argument_list "(local_20[0])" ( (subscript_expression "local_20[0]" identifier [ number_literal ]) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "ppuVar9 = &PTR_DAT_0007edc0;" (assignment_expression "ppuVar9 = &PTR_DAT_0007edc0" identifier = (pointer_expression "&PTR_DAT_0007edc0" & identifier)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (while_statement "while (((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0))) {\n    iVar7 = iVar7 + 1;\n    ppuVar9 = ppuVar9 + 3;\n    if (iVar7 == 0x2d) {\n      return 0;\n    }\n  }" while (parenthesized_expression "(((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0)))" ( (parenthesized_expression "((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0))" ( (binary_expression "(pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0)" (parenthesized_expression "(pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1]))" ( (comma_expression "pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])" (assignment_expression "pcVar6 = *ppuVar9" identifier = (pointer_expression "*ppuVar9" * identifier)) , (binary_expression "pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])" (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(*pcVar6 != param_1[1])" ( (binary_expression "*pcVar6 != param_1[1]" (pointer_expression "*pcVar6" * identifier) != (subscript_expression "param_1[1]" identifier [ number_literal ])) )))) )) || (parenthesized_expression "(iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0)" ( (comma_expression "iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0" (assignment_expression "iVar3 = strcmp(pcVar6 + 1,param_1 + 2)" identifier = (call_expression "strcmp(pcVar6 + 1,param_1 + 2)" identifier (argument_list "(pcVar6 + 1,param_1 + 2)" ( (binary_expression "pcVar6 + 1" identifier + number_literal) , (binary_expression "param_1 + 2" identifier + number_literal) )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) )) (compound_statement "{\n    iVar7 = iVar7 + 1;\n    ppuVar9 = ppuVar9 + 3;\n    if (iVar7 == 0x2d) {\n      return 0;\n    }\n  }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "ppuVar9 = ppuVar9 + 3;" (assignment_expression "ppuVar9 = ppuVar9 + 3" identifier = (binary_expression "ppuVar9 + 3" identifier + number_literal)) ;) (if_statement "if (iVar7 == 0x2d) {\n      return 0;\n    }" if (parenthesized_expression "(iVar7 == 0x2d)" ( (binary_expression "iVar7 == 0x2d" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "iVar3 = (&DAT_0007edc4)[iVar7 * 3];" (assignment_expression "iVar3 = (&DAT_0007edc4)[iVar7 * 3]" identifier = (subscript_expression "(&DAT_0007edc4)[iVar7 * 3]" (parenthesized_expression "(&DAT_0007edc4)" ( (pointer_expression "&DAT_0007edc4" & identifier) )) [ (binary_expression "iVar7 * 3" identifier * number_literal) ])) ;) (if_statement "if (iVar3 == 2) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 2;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }" if (parenthesized_expression "(iVar3 == 2)" ( (binary_expression "iVar3 == 2" identifier == number_literal) )) (compound_statement "{\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 2;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }" { (expression_statement "uVar4 = (&DAT_0007edc8)[iVar7 * 3];" (assignment_expression "uVar4 = (&DAT_0007edc8)[iVar7 * 3]" identifier = (subscript_expression "(&DAT_0007edc8)[iVar7 * 3]" (parenthesized_expression "(&DAT_0007edc8)" ( (pointer_expression "&DAT_0007edc8" & identifier) )) [ (binary_expression "iVar7 * 3" identifier * number_literal) ])) ;) (expression_statement "*(undefined1 *)(param_2 + 0x10) = 2;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 2" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" * (cast_expression "(undefined1 *)(param_2 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_2 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(param_2 + 8) = uVar4" (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_2 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0xc) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0xc)" * (cast_expression "(undefined4 *)(param_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) (if_statement "if (iVar3 == 3) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 5;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }" if (parenthesized_expression "(iVar3 == 3)" ( (binary_expression "iVar3 == 3" identifier == number_literal) )) (compound_statement "{\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 5;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }" { (expression_statement "uVar4 = (&DAT_0007edc8)[iVar7 * 3];" (assignment_expression "uVar4 = (&DAT_0007edc8)[iVar7 * 3]" identifier = (subscript_expression "(&DAT_0007edc8)[iVar7 * 3]" (parenthesized_expression "(&DAT_0007edc8)" ( (pointer_expression "&DAT_0007edc8" & identifier) )) [ (binary_expression "iVar7 * 3" identifier * number_literal) ])) ;) (expression_statement "*(undefined1 *)(param_2 + 0x10) = 5;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 5" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" * (cast_expression "(undefined1 *)(param_2 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_2 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(param_2 + 8) = uVar4" (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_2 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0xc) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0xc)" * (cast_expression "(undefined4 *)(param_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) (if_statement "if (iVar3 != 1) {\n    return 0;\n  }" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_20[0] = DAT_00088118;" (assignment_expression "local_20[0] = DAT_00088118" (subscript_expression "local_20[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*param_3 != '(') {\n    uVar4 = dcgettext(0,"Expected \'(\'",5);\n    FUN_00029550(uVar4);\n    return 1;\n  }" if (parenthesized_expression "(*param_3 != '(')" ( (binary_expression "*param_3 != '('" (pointer_expression "*param_3" * identifier) != (char_literal "'('" ' character ')) )) (compound_statement "{\n    uVar4 = dcgettext(0,"Expected \'(\'",5);\n    FUN_00029550(uVar4);\n    return 1;\n  }" { (expression_statement "uVar4 = dcgettext(0,"Expected \'(\'",5);" (assignment_expression "uVar4 = dcgettext(0,"Expected \'(\'",5)" identifier = (call_expression "dcgettext(0,"Expected \'(\'",5)" identifier (argument_list "(0,"Expected \'(\'",5)" ( number_literal , (string_literal ""Expected \'(\'"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00029550(uVar4);" (call_expression "FUN_00029550(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "DAT_00088118 = DAT_00088118 + 1;" (assignment_expression "DAT_00088118 = DAT_00088118 + 1" identifier = (binary_expression "DAT_00088118 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00020530(0,param_2,1);" (call_expression "FUN_00020530(0,param_2,1)" identifier (argument_list "(0,param_2,1)" ( number_literal , identifier , number_literal ))) ;) (if_statement "if (*DAT_00088118 == ')') {\n    DAT_00088118 = DAT_00088118 + 1;\n    if (*(char *)(param_2 + 0x10) == '\x03') {\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }\n    if (*(char *)(param_2 + 0x10) == '?') {\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar6 = "Not a symbolic expression";\n    }\n  }\n  else {\n    pcVar6 = "Missing \')\'";\n  }" if (parenthesized_expression "(*DAT_00088118 == ')')" ( (binary_expression "*DAT_00088118 == ')'" (pointer_expression "*DAT_00088118" * identifier) == (char_literal "')'" ' character ')) )) (compound_statement "{\n    DAT_00088118 = DAT_00088118 + 1;\n    if (*(char *)(param_2 + 0x10) == '\x03') {\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }\n    if (*(char *)(param_2 + 0x10) == '?') {\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar6 = "Not a symbolic expression";\n    }\n  }" { (expression_statement "DAT_00088118 = DAT_00088118 + 1;" (assignment_expression "DAT_00088118 = DAT_00088118 + 1" identifier = (binary_expression "DAT_00088118 + 1" identifier + number_literal)) ;) (if_statement "if (*(char *)(param_2 + 0x10) == '\x03') {\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }" if (parenthesized_expression "(*(char *)(param_2 + 0x10) == '\x03')" ( (binary_expression "*(char *)(param_2 + 0x10) == '\x03'" (pointer_expression "*(char *)(param_2 + 0x10)" * (cast_expression "(char *)(param_2 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }" { (labeled_statement "LAB_0004f68b:\n      pcVar6 = DAT_00088118;" statement_identifier : (expression_statement "pcVar6 = DAT_00088118;" (assignment_expression "pcVar6 = DAT_00088118" identifier = identifier) ;)) (expression_statement "*(undefined1 *)(param_2 + 0x10) = 0x3f;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 0x3f" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" * (cast_expression "(undefined1 *)(param_2 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];" (assignment_expression "*(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3]" (pointer_expression "*(undefined4 *)(param_2 + 4)" * (cast_expression "(undefined4 *)(param_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = (subscript_expression "(&DAT_0007edc8)[iVar7 * 3]" (parenthesized_expression "(&DAT_0007edc8)" ( (pointer_expression "&DAT_0007edc8" & identifier) )) [ (binary_expression "iVar7 * 3" identifier * number_literal) ])) ;) (goto_statement "goto LAB_0004f6a4;" goto statement_identifier ;) })) (if_statement "if (*(char *)(param_2 + 0x10) == '?') {\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar6 = "Not a symbolic expression";\n    }" if (parenthesized_expression "(*(char *)(param_2 + 0x10) == '?')" ( (binary_expression "*(char *)(param_2 + 0x10) == '?'" (pointer_expression "*(char *)(param_2 + 0x10)" * (cast_expression "(char *)(param_2 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) == (char_literal "'?'" ' character ')) )) (compound_statement "{\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }" { (if_statement "if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }" if (parenthesized_expression "(iVar7 == 4)" ( (binary_expression "iVar7 == 4" identifier == number_literal) )) (compound_statement "{\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }" { (expression_statement "lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));" (assignment_expression "lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4))" identifier = (call_expression "FUN_000375e0(*(undefined4 *)(param_2 + 4))" identifier (argument_list "(*(undefined4 *)(param_2 + 4))" ( (pointer_expression "*(undefined4 *)(param_2 + 4)" * (cast_expression "(undefined4 *)(param_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) )))) ;) (if_statement "if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" if (parenthesized_expression "(lVar12 == 1)" ( (binary_expression "lVar12 == 1" identifier == number_literal) )) (compound_statement "{\n          iVar7 = 0xe;\n        }" { (expression_statement "iVar7 = 0xe;" (assignment_expression "iVar7 = 0xe" identifier = number_literal) ;) }) (else_clause "else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" else (if_statement "if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar7 = 0xd;\n        }" { (expression_statement "iVar7 = 0xd;" (assignment_expression "iVar7 = 0xd" identifier = number_literal) ;) }) (else_clause "else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" else (if_statement "if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" if (parenthesized_expression "(lVar12 == 2)" ( (binary_expression "lVar12 == 2" identifier == number_literal) )) (compound_statement "{\n          iVar7 = 0xc;\n        }" { (expression_statement "iVar7 = 0xc;" (assignment_expression "iVar7 = 0xc" identifier = number_literal) ;) }) (else_clause "else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" else (compound_statement "{\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" { (if_statement "if (lVar12 != 10) goto LAB_0004f824;" if (parenthesized_expression "(lVar12 != 10)" ( (binary_expression "lVar12 != 10" identifier != number_literal) )) (goto_statement "goto LAB_0004f824;" goto statement_identifier ;)) (expression_statement "iVar7 = 0xf;" (assignment_expression "iVar7 = 0xf" identifier = number_literal) ;) }))))))) (goto_statement "goto LAB_0004f68b;" goto statement_identifier ;) })) (labeled_statement "LAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";" statement_identifier : (expression_statement "pcVar6 = "Illegal combination of relocation functions";" (assignment_expression "pcVar6 = "Illegal combination of relocation functions"" identifier = (string_literal ""Illegal combination of relocation functions"" " string_content ")) ;)) }) (else_clause "else {\n      pcVar6 = "Not a symbolic expression";\n    }" else (compound_statement "{\n      pcVar6 = "Not a symbolic expression";\n    }" { (expression_statement "pcVar6 = "Not a symbolic expression";" (assignment_expression "pcVar6 = "Not a symbolic expression"" identifier = (string_literal ""Not a symbolic expression"" " string_content ")) ;) }))) }) (else_clause "else {\n    pcVar6 = "Missing \')\'";\n  }" else (compound_statement "{\n    pcVar6 = "Missing \')\'";\n  }" { (expression_statement "pcVar6 = "Missing \')\'";" (assignment_expression "pcVar6 = "Missing \')\'"" identifier = (string_literal ""Missing \')\'"" " string_content escape_sequence string_content escape_sequence ")) ;) }))) (expression_statement "uVar4 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar6,5)" identifier = (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00029550(uVar4);" (call_expression "FUN_00029550(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "pcVar6 = DAT_00088118;" (assignment_expression "pcVar6 = DAT_00088118" identifier = identifier) ;) (labeled_statement "LAB_0004f6a4:\n  *param_3 = *pcVar6;" statement_identifier : (expression_statement "*param_3 = *pcVar6;" (assignment_expression "*param_3 = *pcVar6" (pointer_expression "*param_3" * identifier) = (pointer_expression "*pcVar6" * identifier)) ;)) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) * LIT) ]) & LIT) )) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) * LIT) ]) & LIT) )) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }))))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) == (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) , (binary_expression (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT - LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT >> LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) )))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) )))) , (binary_expression IDENT != LIT)) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) })) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ])) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))))))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence ")) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;)) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_0004f3d0(char *param_1,int param_2,char *param_3)\n\n{\n  char cVar1;\n  byte bVar2;\n  int iVar3;\n  undefined4 uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined *puVar8;\n  undefined **ppuVar9;\n  uint uVar10;\n  undefined8 uVar11;\n  longlong lVar12;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4f3d9;\n  if (*param_1 != '@') {\n    iVar7 = FUN_00022b40(DAT_00087944,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }\n    iVar7 = FUN_00022b40(DAT_0008794c,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }\n    cVar1 = *param_1;\n    if (cVar1 == 'l') {\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }\n    if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    local_20[0] = (char *)xstrdup(param_1);\n    uVar4 = FUN_0004e9c0(local_20[0]);\n    iVar7 = FUN_00022b40(DAT_00087948,uVar4);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }\n    free(local_20[0]);\n    return 0;\n  }\n  ppuVar9 = &PTR_DAT_0007edc0;\n  iVar7 = 0;\n  while (((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0))) {\n    iVar7 = iVar7 + 1;\n    ppuVar9 = ppuVar9 + 3;\n    if (iVar7 == 0x2d) {\n      return 0;\n    }\n  }\n  iVar3 = (&DAT_0007edc4)[iVar7 * 3];\n  if (iVar3 == 2) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 2;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }\n  if (iVar3 == 3) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 5;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }\n  if (iVar3 != 1) {\n    return 0;\n  }\n  local_20[0] = DAT_00088118;\n  if (*param_3 != '(') {\n    uVar4 = dcgettext(0,"Expected \'(\'",5);\n    FUN_00029550(uVar4);\n    return 1;\n  }\n  DAT_00088118 = DAT_00088118 + 1;\n  FUN_00020530(0,param_2,1);\n  if (*DAT_00088118 == ')') {\n    DAT_00088118 = DAT_00088118 + 1;\n    if (*(char *)(param_2 + 0x10) == '\x03') {\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }\n    if (*(char *)(param_2 + 0x10) == '?') {\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar6 = "Not a symbolic expression";\n    }\n  }\n  else {\n    pcVar6 = "Missing \')\'";\n  }\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_00029550(uVar4);\n  pcVar6 = DAT_00088118;\nLAB_0004f6a4:\n  *param_3 = *pcVar6;\n  return 1;\n}" (type_identifier "undefined4") (function_declarator "FUN_0004f3d0(char *param_1,int param_2,char *param_3)" (identifier "FUN_0004f3d0") (parameter_list "(char *param_1,int param_2,char *param_3)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  int iVar3;\n  undefined4 uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined *puVar8;\n  undefined **ppuVar9;\n  uint uVar10;\n  undefined8 uVar11;\n  longlong lVar12;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x4f3d9;\n  if (*param_1 != '@') {\n    iVar7 = FUN_00022b40(DAT_00087944,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }\n    iVar7 = FUN_00022b40(DAT_0008794c,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }\n    cVar1 = *param_1;\n    if (cVar1 == 'l') {\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }\n    if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    local_20[0] = (char *)xstrdup(param_1);\n    uVar4 = FUN_0004e9c0(local_20[0]);\n    iVar7 = FUN_00022b40(DAT_00087948,uVar4);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }\n    free(local_20[0]);\n    return 0;\n  }\n  ppuVar9 = &PTR_DAT_0007edc0;\n  iVar7 = 0;\n  while (((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0))) {\n    iVar7 = iVar7 + 1;\n    ppuVar9 = ppuVar9 + 3;\n    if (iVar7 == 0x2d) {\n      return 0;\n    }\n  }\n  iVar3 = (&DAT_0007edc4)[iVar7 * 3];\n  if (iVar3 == 2) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 2;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }\n  if (iVar3 == 3) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 5;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }\n  if (iVar3 != 1) {\n    return 0;\n  }\n  local_20[0] = DAT_00088118;\n  if (*param_3 != '(') {\n    uVar4 = dcgettext(0,"Expected \'(\'",5);\n    FUN_00029550(uVar4);\n    return 1;\n  }\n  DAT_00088118 = DAT_00088118 + 1;\n  FUN_00020530(0,param_2,1);\n  if (*DAT_00088118 == ')') {\n    DAT_00088118 = DAT_00088118 + 1;\n    if (*(char *)(param_2 + 0x10) == '\x03') {\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }\n    if (*(char *)(param_2 + 0x10) == '?') {\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar6 = "Not a symbolic expression";\n    }\n  }\n  else {\n    pcVar6 = "Missing \')\'";\n  }\n  uVar4 = dcgettext(0,pcVar6,5);\n  FUN_00029550(uVar4);\n  pcVar6 = DAT_00088118;\nLAB_0004f6a4:\n  *param_3 = *pcVar6;\n  return 1;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "ulong uVar5;" (type_identifier "ulong") (identifier "uVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined **ppuVar9;" (type_identifier "undefined") (pointer_declarator "**ppuVar9" (* "*") (pointer_declarator "*ppuVar9" (* "*") (identifier "ppuVar9"))) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "undefined8 uVar11;" (type_identifier "undefined8") (identifier "uVar11") (; ";")) (declaration "longlong lVar12;" (type_identifier "longlong") (identifier "lVar12") (; ";")) (declaration "char *local_20 [3];" (primitive_type "char") (pointer_declarator "*local_20 [3]" (* "*") (array_declarator "local_20 [3]" (identifier "local_20") ([ "[") (number_literal "3") (] "]"))) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x4f3d9;" (assignment_expression "uStack_14 = 0x4f3d9" (identifier "uStack_14") (= "=") (number_literal "0x4f3d9")) (; ";")) (if_statement "if (*param_1 != '@') {\n    iVar7 = FUN_00022b40(DAT_00087944,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }\n    iVar7 = FUN_00022b40(DAT_0008794c,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }\n    cVar1 = *param_1;\n    if (cVar1 == 'l') {\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }\n    if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    local_20[0] = (char *)xstrdup(param_1);\n    uVar4 = FUN_0004e9c0(local_20[0]);\n    iVar7 = FUN_00022b40(DAT_00087948,uVar4);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }\n    free(local_20[0]);\n    return 0;\n  }" (if "if") (parenthesized_expression "(*param_1 != '@')" (( "(") (binary_expression "*param_1 != '@'" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (!= "!=") (char_literal "'@'" (' "'") (character "@") (' "'"))) () ")")) (compound_statement "{\n    iVar7 = FUN_00022b40(DAT_00087944,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }\n    iVar7 = FUN_00022b40(DAT_0008794c,param_1);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }\n    cVar1 = *param_1;\n    if (cVar1 == 'l') {\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }\n    if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }\nLAB_0004f57f:\n    local_20[0] = (char *)xstrdup(param_1);\n    uVar4 = FUN_0004e9c0(local_20[0]);\n    iVar7 = FUN_00022b40(DAT_00087948,uVar4);\n    if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }\n    free(local_20[0]);\n    return 0;\n  }" ({ "{") (expression_statement "iVar7 = FUN_00022b40(DAT_00087944,param_1);" (assignment_expression "iVar7 = FUN_00022b40(DAT_00087944,param_1)" (identifier "iVar7") (= "=") (call_expression "FUN_00022b40(DAT_00087944,param_1)" (identifier "FUN_00022b40") (argument_list "(DAT_00087944,param_1)" (( "(") (identifier "DAT_00087944") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      uVar11 = FUN_000375e0(iVar7);\n      *(undefined8 *)(param_2 + 8) = uVar11;\n      return 1;\n    }" ({ "{") (expression_statement "*(undefined1 *)(param_2 + 0x10) = 5;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 5" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" (* "*") (cast_expression "(undefined1 *)(param_2 + 0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "5")) (; ";")) (expression_statement "uVar11 = FUN_000375e0(iVar7);" (assignment_expression "uVar11 = FUN_000375e0(iVar7)" (identifier "uVar11") (= "=") (call_expression "FUN_000375e0(iVar7)" (identifier "FUN_000375e0") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(param_2 + 8) = uVar11;" (assignment_expression "*(undefined8 *)(param_2 + 8) = uVar11" (pointer_expression "*(undefined8 *)(param_2 + 8)" (* "*") (cast_expression "(undefined8 *)(param_2 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar7 = FUN_00022b40(DAT_0008794c,param_1);" (assignment_expression "iVar7 = FUN_00022b40(DAT_0008794c,param_1)" (identifier "iVar7") (= "=") (call_expression "FUN_00022b40(DAT_0008794c,param_1)" (identifier "FUN_00022b40") (argument_list "(DAT_0008794c,param_1)" (( "(") (identifier "DAT_0008794c") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined1 *)(param_2 + 0x10) = 2;\n      uVar4 = *(undefined4 *)(iVar7 + 4);\n      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);\n      *(undefined4 *)(param_2 + 8) = uVar4;\n      return 1;\n    }" ({ "{") (expression_statement "*(undefined1 *)(param_2 + 0x10) = 2;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 2" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" (* "*") (cast_expression "(undefined1 *)(param_2 + 0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(iVar7 + 4);" (assignment_expression "uVar4 = *(undefined4 *)(iVar7 + 4)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(iVar7 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);" (assignment_expression "*(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8)" (pointer_expression "*(undefined4 *)(param_2 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar7 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_2 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(param_2 + 8) = uVar4" (pointer_expression "*(undefined4 *)(param_2 + 8)" (* "*") (cast_expression "(undefined4 *)(param_2 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" (identifier "cVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (cVar1 == 'l') {\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }\n    else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }" (if "if") (parenthesized_expression "(cVar1 == 'l')" (( "(") (binary_expression "cVar1 == 'l'" (identifier "cVar1") (== "==") (char_literal "'l'" (' "'") (character "l") (' "'"))) () ")")) (compound_statement "{\n      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d6c;\n    }" ({ "{") (if_statement "if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;" (if "if") (parenthesized_expression "(((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0))" (( "(") (binary_expression "((param_1[1] != 'o') || (param_1[2] != 'c')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)" (parenthesized_expression "((param_1[1] != 'o') || (param_1[2] != 'c'))" (( "(") (binary_expression "(param_1[1] != 'o') || (param_1[2] != 'c')" (parenthesized_expression "(param_1[1] != 'o')" (( "(") (binary_expression "param_1[1] != 'o'" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'o'" (' "'") (character "o") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(param_1[2] != 'c')" (( "(") (binary_expression "param_1[2] != 'c'" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (!= "!=") (char_literal "'c'" (' "'") (character "c") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)" (( "(") (binary_expression "(PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0" (parenthesized_expression "(PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4)" (( "(") (binary_expression "PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4" (subscript_expression "PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2]" (identifier "PTR__sch_istable_0007df84") ([ "[") (binary_expression "(uint)(byte)param_1[3] * 2" (cast_expression "(uint)(byte)param_1[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)param_1[3]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")))) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0004f57f;" (goto "goto") (statement_identifier "LAB_0004f57f") (; ";"))) (expression_statement "pcVar6 = param_1 + 3;" (assignment_expression "pcVar6 = param_1 + 3" (identifier "pcVar6") (= "=") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "bVar2 = param_1[3];" (assignment_expression "bVar2 = param_1[3]" (identifier "bVar2") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" (identifier "iVar7") (= "=") (number_literal "3")) (; ";")) (expression_statement "puVar8 = &DAT_00087d6c;" (assignment_expression "puVar8 = &DAT_00087d6c" (identifier "puVar8") (= "=") (pointer_expression "&DAT_00087d6c" (& "&") (identifier "DAT_00087d6c"))) (; ";")) (} "}")) (else_clause "else if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }" (else "else") (if_statement "if (cVar1 == 'o') {\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }\n    else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }" (if "if") (parenthesized_expression "(cVar1 == 'o')" (( "(") (binary_expression "cVar1 == 'o'" (identifier "cVar1") (== "==") (char_literal "'o'" (' "'") (character "o") (' "'"))) () ")")) (compound_statement "{\n      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;\n      pcVar6 = param_1 + 3;\n      bVar2 = param_1[3];\n      iVar7 = 3;\n      puVar8 = &DAT_00087d78;\n    }" ({ "{") (if_statement "if (((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;" (if "if") (parenthesized_expression "(((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0))" (( "(") (binary_expression "((param_1[1] != 'u') || (param_1[2] != 't')) ||\n         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)" (parenthesized_expression "((param_1[1] != 'u') || (param_1[2] != 't'))" (( "(") (binary_expression "(param_1[1] != 'u') || (param_1[2] != 't')" (parenthesized_expression "(param_1[1] != 'u')" (( "(") (binary_expression "param_1[1] != 'u'" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'u'" (' "'") (character "u") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(param_1[2] != 't')" (( "(") (binary_expression "param_1[2] != 't'" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (!= "!=") (char_literal "'t'" (' "'") (character "t") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)" (( "(") (binary_expression "(PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0" (parenthesized_expression "(PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4)" (( "(") (binary_expression "PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4" (subscript_expression "PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2]" (identifier "PTR__sch_istable_0007df84") ([ "[") (binary_expression "(uint)(byte)param_1[3] * 2" (cast_expression "(uint)(byte)param_1[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)param_1[3]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")))) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0004f57f;" (goto "goto") (statement_identifier "LAB_0004f57f") (; ";"))) (expression_statement "pcVar6 = param_1 + 3;" (assignment_expression "pcVar6 = param_1 + 3" (identifier "pcVar6") (= "=") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "bVar2 = param_1[3];" (assignment_expression "bVar2 = param_1[3]" (identifier "bVar2") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" (identifier "iVar7") (= "=") (number_literal "3")) (; ";")) (expression_statement "puVar8 = &DAT_00087d78;" (assignment_expression "puVar8 = &DAT_00087d78" (identifier "puVar8") (= "=") (pointer_expression "&DAT_00087d78" (& "&") (identifier "DAT_00087d78"))) (; ";")) (} "}")) (else_clause "else {\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }" (else "else") (compound_statement "{\n      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;\n      pcVar6 = param_1 + 2;\n      iVar7 = 2;\n      puVar8 = &DAT_00087d60;\n    }" ({ "{") (if_statement "if (((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))\n      goto LAB_0004f57f;" (if "if") (parenthesized_expression "(((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))" (( "(") (binary_expression "((cVar1 != 'i') || (param_1[1] != 'n')) ||\n         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0)" (parenthesized_expression "((cVar1 != 'i') || (param_1[1] != 'n'))" (( "(") (binary_expression "(cVar1 != 'i') || (param_1[1] != 'n')" (parenthesized_expression "(cVar1 != 'i')" (( "(") (binary_expression "cVar1 != 'i'" (identifier "cVar1") (!= "!=") (char_literal "'i'" (' "'") (character "i") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(param_1[1] != 'n')" (( "(") (binary_expression "param_1[1] != 'n'" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'n'" (' "'") (character "n") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0)" (( "(") (comma_expression "bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0" (assignment_expression "bVar2 = param_1[2]" (identifier "bVar2") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (, ",") (binary_expression "(PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0" (parenthesized_expression "(PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4)" (( "(") (binary_expression "PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4" (subscript_expression "PTR__sch_istable_0007df84[(uint)bVar2 * 2]" (identifier "PTR__sch_istable_0007df84") ([ "[") (binary_expression "(uint)bVar2 * 2" (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0004f57f;" (goto "goto") (statement_identifier "LAB_0004f57f") (; ";"))) (expression_statement "pcVar6 = param_1 + 2;" (assignment_expression "pcVar6 = param_1 + 2" (identifier "pcVar6") (= "=") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" (identifier "iVar7") (= "=") (number_literal "2")) (; ";")) (expression_statement "puVar8 = &DAT_00087d60;" (assignment_expression "puVar8 = &DAT_00087d60" (identifier "puVar8") (= "=") (pointer_expression "&DAT_00087d60" (& "&") (identifier "DAT_00087d60"))) (; ";")) (} "}")))))) (if_statement "if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }" (if "if") (parenthesized_expression "(((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60))))))" (( "(") (binary_expression "((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&\n       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))" (parenthesized_expression "((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0'))" (( "(") (binary_expression "(bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')" (parenthesized_expression "(bVar2 != 0x30)" (( "(") (binary_expression "bVar2 != 0x30" (identifier "bVar2") (!= "!=") (number_literal "0x30")) () ")")) (|| "||") (parenthesized_expression "(param_1[iVar7 + 1] == '\0')" (( "(") (binary_expression "param_1[iVar7 + 1] == '\0'" (subscript_expression "param_1[iVar7 + 1]" (identifier "param_1") ([ "[") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1")) (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))" (( "(") (parenthesized_expression "(uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60))))" (( "(") (comma_expression "uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))" (assignment_expression "uVar5 = strtoul(pcVar6,local_20,10)" (identifier "uVar5") (= "=") (call_expression "strtoul(pcVar6,local_20,10)" (identifier "strtoul") (argument_list "(pcVar6,local_20,10)" (( "(") (identifier "pcVar6") (, ",") (identifier "local_20") (, ",") (number_literal "10") () ")")))) (, ",") (binary_expression "pcVar6 < local_20[0] &&\n        ((*local_20[0] == '\0' && (uVar5 < 0x60)))" (binary_expression "pcVar6 < local_20[0]" (identifier "pcVar6") (< "<") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]"))) (&& "&&") (parenthesized_expression "((*local_20[0] == '\0' && (uVar5 < 0x60)))" (( "(") (parenthesized_expression "(*local_20[0] == '\0' && (uVar5 < 0x60))" (( "(") (binary_expression "*local_20[0] == '\0' && (uVar5 < 0x60)" (binary_expression "*local_20[0] == '\0'" (pointer_expression "*local_20[0]" (* "*") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (&& "&&") (parenthesized_expression "(uVar5 < 0x60)" (( "(") (binary_expression "uVar5 < 0x60" (identifier "uVar5") (< "<") (number_literal "0x60")) () ")"))) () ")")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n      uVar10 = (uint)*(ushort *)(puVar8 + 10);\n      if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);\n      *(undefined4 *)(param_2 + 0xc) = 0;\n      return 1;\n    }" ({ "{") (expression_statement "uVar10 = (uint)*(ushort *)(puVar8 + 10);" (assignment_expression "uVar10 = (uint)*(ushort *)(puVar8 + 10)" (identifier "uVar10") (= "=") (binary_expression "(uint)*(ushort *)(puVar8 + 10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(puVar8 + 10)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 10)" (( "(") (binary_expression "puVar8 + 10" (identifier "puVar8") (+ "+") (number_literal "10")) () ")"))))) (; ";")) (if_statement "if (uVar10 <= uVar5) {\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }" (if "if") (parenthesized_expression "(uVar10 <= uVar5)" (( "(") (binary_expression "uVar10 <= uVar5" (identifier "uVar10") (<= "<=") (identifier "uVar5")) () ")")) (compound_statement "{\n        if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }\n      }" ({ "{") (if_statement "if (*(ushort *)(puVar8 + 10) == 0) {\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }\n        else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }" (if "if") (parenthesized_expression "(*(ushort *)(puVar8 + 10) == 0)" (( "(") (binary_expression "*(ushort *)(puVar8 + 10) == 0" (pointer_expression "*(ushort *)(puVar8 + 10)" (* "*") (cast_expression "(ushort *)(puVar8 + 10)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 10)" (( "(") (binary_expression "puVar8 + 10" (identifier "puVar8") (+ "+") (number_literal "10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar4 = dcgettext(0,"No current frame",5,uVar10);\n          FUN_00029550(uVar4);\n          uVar5 = 0;\n        }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"No current frame",5,uVar10);" (assignment_expression "uVar4 = dcgettext(0,"No current frame",5,uVar10)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"No current frame",5,uVar10)" (identifier "dcgettext") (argument_list "(0,"No current frame",5,uVar10)" (( "(") (number_literal "0") (, ",") (string_literal ""No current frame"" (" """) (string_content "No current frame") (" """)) (, ",") (number_literal "5") (, ",") (identifier "uVar10") () ")")))) (; ";")) (expression_statement "FUN_00029550(uVar4);" (call_expression "FUN_00029550(uVar4)" (identifier "FUN_00029550") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }" (else "else") (compound_statement "{\n          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);\n          FUN_00029550(uVar4,uVar10 - 1);\n          uVar5 = 0;\n        }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);" (assignment_expression "uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"Register number out of range 0..%u",5,param_1)" (identifier "dcgettext") (argument_list "(0,"Register number out of range 0..%u",5,param_1)" (( "(") (number_literal "0") (, ",") (string_literal ""Register number out of range 0..%u"" (" """) (string_content "Register number out of range 0..%u") (" """)) (, ",") (number_literal "5") (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "FUN_00029550(uVar4,uVar10 - 1);" (call_expression "FUN_00029550(uVar4,uVar10 - 1)" (identifier "FUN_00029550") (argument_list "(uVar4,uVar10 - 1)" (( "(") (identifier "uVar4") (, ",") (binary_expression "uVar10 - 1" (identifier "uVar10") (- "-") (number_literal "1")) () ")"))) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (expression_statement "*(undefined1 *)(param_2 + 0x10) = 5;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 5" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" (* "*") (cast_expression "(undefined1 *)(param_2 + 0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "5")) (; ";")) (expression_statement "*(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);" (assignment_expression "*(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8)" (pointer_expression "*(ulong *)(param_2 + 8)" (* "*") (cast_expression "(ulong *)(param_2 + 8)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "uVar5 + *(ushort *)(puVar8 + 8)" (identifier "uVar5") (+ "+") (pointer_expression "*(ushort *)(puVar8 + 8)" (* "*") (cast_expression "(ushort *)(puVar8 + 8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 8)" (( "(") (binary_expression "puVar8 + 8" (identifier "puVar8") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "*(undefined4 *)(param_2 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0xc) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_0004f57f:\n    local_20[0] = (char *)xstrdup(param_1);" (statement_identifier "LAB_0004f57f") (: ":") (expression_statement "local_20[0] = (char *)xstrdup(param_1);" (assignment_expression "local_20[0] = (char *)xstrdup(param_1)" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)xstrdup(param_1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xstrdup(param_1)" (identifier "xstrdup") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";"))) (expression_statement "uVar4 = FUN_0004e9c0(local_20[0]);" (assignment_expression "uVar4 = FUN_0004e9c0(local_20[0])" (identifier "uVar4") (= "=") (call_expression "FUN_0004e9c0(local_20[0])" (identifier "FUN_0004e9c0") (argument_list "(local_20[0])" (( "(") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) () ")")))) (; ";")) (expression_statement "iVar7 = FUN_00022b40(DAT_00087948,uVar4);" (assignment_expression "iVar7 = FUN_00022b40(DAT_00087948,uVar4)" (identifier "iVar7") (= "=") (call_expression "FUN_00022b40(DAT_00087948,uVar4)" (identifier "FUN_00022b40") (argument_list "(DAT_00087948,uVar4)" (( "(") (identifier "DAT_00087948") (, ",") (identifier "uVar4") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined1 *)(param_2 + 0x10) = 5;\n      iVar7 = *(int *)(iVar7 + 8);\n      *(int *)(param_2 + 8) = iVar7;\n      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;\n      free(local_20[0]);\n      return 1;\n    }" ({ "{") (expression_statement "*(undefined1 *)(param_2 + 0x10) = 5;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 5" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" (* "*") (cast_expression "(undefined1 *)(param_2 + 0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "5")) (; ";")) (expression_statement "iVar7 = *(int *)(iVar7 + 8);" (assignment_expression "iVar7 = *(int *)(iVar7 + 8)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar7 + 8)" (* "*") (cast_expression "(int *)(iVar7 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(int *)(param_2 + 8) = iVar7;" (assignment_expression "*(int *)(param_2 + 8) = iVar7" (pointer_expression "*(int *)(param_2 + 8)" (* "*") (cast_expression "(int *)(param_2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "*(int *)(param_2 + 0xc) = iVar7 >> 0x1f;" (assignment_expression "*(int *)(param_2 + 0xc) = iVar7 >> 0x1f" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "iVar7 >> 0x1f" (identifier "iVar7") (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "free(local_20[0]);" (call_expression "free(local_20[0])" (identifier "free") (argument_list "(local_20[0])" (( "(") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "free(local_20[0]);" (call_expression "free(local_20[0])" (identifier "free") (argument_list "(local_20[0])" (( "(") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "ppuVar9 = &PTR_DAT_0007edc0;" (assignment_expression "ppuVar9 = &PTR_DAT_0007edc0" (identifier "ppuVar9") (= "=") (pointer_expression "&PTR_DAT_0007edc0" (& "&") (identifier "PTR_DAT_0007edc0"))) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (while_statement "while (((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0))) {\n    iVar7 = iVar7 + 1;\n    ppuVar9 = ppuVar9 + 3;\n    if (iVar7 == 0x2d) {\n      return 0;\n    }\n  }" (while "while") (parenthesized_expression "(((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0)))" (( "(") (parenthesized_expression "((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0))" (( "(") (binary_expression "(pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||\n         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0)" (parenthesized_expression "(pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1]))" (( "(") (comma_expression "pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])" (assignment_expression "pcVar6 = *ppuVar9" (identifier "pcVar6") (= "=") (pointer_expression "*ppuVar9" (* "*") (identifier "ppuVar9"))) (, ",") (binary_expression "pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])" (binary_expression "pcVar6 == (char *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (parenthesized_expression "(*pcVar6 != param_1[1])" (( "(") (binary_expression "*pcVar6 != param_1[1]" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (!= "!=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")")))) () ")")) (|| "||") (parenthesized_expression "(iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0)" (( "(") (comma_expression "iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0" (assignment_expression "iVar3 = strcmp(pcVar6 + 1,param_1 + 2)" (identifier "iVar3") (= "=") (call_expression "strcmp(pcVar6 + 1,param_1 + 2)" (identifier "strcmp") (argument_list "(pcVar6 + 1,param_1 + 2)" (( "(") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1")) (, ",") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")")) (compound_statement "{\n    iVar7 = iVar7 + 1;\n    ppuVar9 = ppuVar9 + 3;\n    if (iVar7 == 0x2d) {\n      return 0;\n    }\n  }" ({ "{") (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppuVar9 = ppuVar9 + 3;" (assignment_expression "ppuVar9 = ppuVar9 + 3" (identifier "ppuVar9") (= "=") (binary_expression "ppuVar9 + 3" (identifier "ppuVar9") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (iVar7 == 0x2d) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar7 == 0x2d)" (( "(") (binary_expression "iVar7 == 0x2d" (identifier "iVar7") (== "==") (number_literal "0x2d")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar3 = (&DAT_0007edc4)[iVar7 * 3];" (assignment_expression "iVar3 = (&DAT_0007edc4)[iVar7 * 3]" (identifier "iVar3") (= "=") (subscript_expression "(&DAT_0007edc4)[iVar7 * 3]" (parenthesized_expression "(&DAT_0007edc4)" (( "(") (pointer_expression "&DAT_0007edc4" (& "&") (identifier "DAT_0007edc4")) () ")")) ([ "[") (binary_expression "iVar7 * 3" (identifier "iVar7") (* "*") (number_literal "3")) (] "]"))) (; ";")) (if_statement "if (iVar3 == 2) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 2;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }" (if "if") (parenthesized_expression "(iVar3 == 2)" (( "(") (binary_expression "iVar3 == 2" (identifier "iVar3") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 2;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }" ({ "{") (expression_statement "uVar4 = (&DAT_0007edc8)[iVar7 * 3];" (assignment_expression "uVar4 = (&DAT_0007edc8)[iVar7 * 3]" (identifier "uVar4") (= "=") (subscript_expression "(&DAT_0007edc8)[iVar7 * 3]" (parenthesized_expression "(&DAT_0007edc8)" (( "(") (pointer_expression "&DAT_0007edc8" (& "&") (identifier "DAT_0007edc8")) () ")")) ([ "[") (binary_expression "iVar7 * 3" (identifier "iVar7") (* "*") (number_literal "3")) (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(param_2 + 0x10) = 2;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 2" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" (* "*") (cast_expression "(undefined1 *)(param_2 + 0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)(param_2 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(param_2 + 8) = uVar4" (pointer_expression "*(undefined4 *)(param_2 + 8)" (* "*") (cast_expression "(undefined4 *)(param_2 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(undefined4 *)(param_2 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0xc) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (iVar3 == 3) {\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 5;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }" (if "if") (parenthesized_expression "(iVar3 == 3)" (( "(") (binary_expression "iVar3 == 3" (identifier "iVar3") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n    uVar4 = (&DAT_0007edc8)[iVar7 * 3];\n    *(undefined1 *)(param_2 + 0x10) = 5;\n    *(undefined4 *)(param_2 + 8) = uVar4;\n    *(undefined4 *)(param_2 + 0xc) = 0;\n    return 1;\n  }" ({ "{") (expression_statement "uVar4 = (&DAT_0007edc8)[iVar7 * 3];" (assignment_expression "uVar4 = (&DAT_0007edc8)[iVar7 * 3]" (identifier "uVar4") (= "=") (subscript_expression "(&DAT_0007edc8)[iVar7 * 3]" (parenthesized_expression "(&DAT_0007edc8)" (( "(") (pointer_expression "&DAT_0007edc8" (& "&") (identifier "DAT_0007edc8")) () ")")) ([ "[") (binary_expression "iVar7 * 3" (identifier "iVar7") (* "*") (number_literal "3")) (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(param_2 + 0x10) = 5;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 5" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" (* "*") (cast_expression "(undefined1 *)(param_2 + 0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "5")) (; ";")) (expression_statement "*(undefined4 *)(param_2 + 8) = uVar4;" (assignment_expression "*(undefined4 *)(param_2 + 8) = uVar4" (pointer_expression "*(undefined4 *)(param_2 + 8)" (* "*") (cast_expression "(undefined4 *)(param_2 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(undefined4 *)(param_2 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0xc) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (iVar3 != 1) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar3 != 1)" (( "(") (binary_expression "iVar3 != 1" (identifier "iVar3") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "local_20[0] = DAT_00088118;" (assignment_expression "local_20[0] = DAT_00088118" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "DAT_00088118")) (; ";")) (if_statement "if (*param_3 != '(') {\n    uVar4 = dcgettext(0,"Expected \'(\'",5);\n    FUN_00029550(uVar4);\n    return 1;\n  }" (if "if") (parenthesized_expression "(*param_3 != '(')" (( "(") (binary_expression "*param_3 != '('" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (char_literal "'('" (' "'") (character "(") (' "'"))) () ")")) (compound_statement "{\n    uVar4 = dcgettext(0,"Expected \'(\'",5);\n    FUN_00029550(uVar4);\n    return 1;\n  }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"Expected \'(\'",5);" (assignment_expression "uVar4 = dcgettext(0,"Expected \'(\'",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"Expected \'(\'",5)" (identifier "dcgettext") (argument_list "(0,"Expected \'(\'",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Expected \'(\'"" (" """) (string_content "Expected ") (escape_sequence "\'") (string_content "(") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00029550(uVar4);" (call_expression "FUN_00029550(uVar4)" (identifier "FUN_00029550") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "DAT_00088118 = DAT_00088118 + 1;" (assignment_expression "DAT_00088118 = DAT_00088118 + 1" (identifier "DAT_00088118") (= "=") (binary_expression "DAT_00088118 + 1" (identifier "DAT_00088118") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_00020530(0,param_2,1);" (call_expression "FUN_00020530(0,param_2,1)" (identifier "FUN_00020530") (argument_list "(0,param_2,1)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (number_literal "1") () ")"))) (; ";")) (if_statement "if (*DAT_00088118 == ')') {\n    DAT_00088118 = DAT_00088118 + 1;\n    if (*(char *)(param_2 + 0x10) == '\x03') {\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }\n    if (*(char *)(param_2 + 0x10) == '?') {\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar6 = "Not a symbolic expression";\n    }\n  }\n  else {\n    pcVar6 = "Missing \')\'";\n  }" (if "if") (parenthesized_expression "(*DAT_00088118 == ')')" (( "(") (binary_expression "*DAT_00088118 == ')'" (pointer_expression "*DAT_00088118" (* "*") (identifier "DAT_00088118")) (== "==") (char_literal "')'" (' "'") (character ")") (' "'"))) () ")")) (compound_statement "{\n    DAT_00088118 = DAT_00088118 + 1;\n    if (*(char *)(param_2 + 0x10) == '\x03') {\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }\n    if (*(char *)(param_2 + 0x10) == '?') {\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar6 = "Not a symbolic expression";\n    }\n  }" ({ "{") (expression_statement "DAT_00088118 = DAT_00088118 + 1;" (assignment_expression "DAT_00088118 = DAT_00088118 + 1" (identifier "DAT_00088118") (= "=") (binary_expression "DAT_00088118 + 1" (identifier "DAT_00088118") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(char *)(param_2 + 0x10) == '\x03') {\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }" (if "if") (parenthesized_expression "(*(char *)(param_2 + 0x10) == '\x03')" (( "(") (binary_expression "*(char *)(param_2 + 0x10) == '\x03'" (pointer_expression "*(char *)(param_2 + 0x10)" (* "*") (cast_expression "(char *)(param_2 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\nLAB_0004f68b:\n      pcVar6 = DAT_00088118;\n      *(undefined1 *)(param_2 + 0x10) = 0x3f;\n      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];\n      goto LAB_0004f6a4;\n    }" ({ "{") (labeled_statement "LAB_0004f68b:\n      pcVar6 = DAT_00088118;" (statement_identifier "LAB_0004f68b") (: ":") (expression_statement "pcVar6 = DAT_00088118;" (assignment_expression "pcVar6 = DAT_00088118" (identifier "pcVar6") (= "=") (identifier "DAT_00088118")) (; ";"))) (expression_statement "*(undefined1 *)(param_2 + 0x10) = 0x3f;" (assignment_expression "*(undefined1 *)(param_2 + 0x10) = 0x3f" (pointer_expression "*(undefined1 *)(param_2 + 0x10)" (* "*") (cast_expression "(undefined1 *)(param_2 + 0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0x3f")) (; ";")) (expression_statement "*(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];" (assignment_expression "*(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3]" (pointer_expression "*(undefined4 *)(param_2 + 4)" (* "*") (cast_expression "(undefined4 *)(param_2 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (= "=") (subscript_expression "(&DAT_0007edc8)[iVar7 * 3]" (parenthesized_expression "(&DAT_0007edc8)" (( "(") (pointer_expression "&DAT_0007edc8" (& "&") (identifier "DAT_0007edc8")) () ")")) ([ "[") (binary_expression "iVar7 * 3" (identifier "iVar7") (* "*") (number_literal "3")) (] "]"))) (; ";")) (goto_statement "goto LAB_0004f6a4;" (goto "goto") (statement_identifier "LAB_0004f6a4") (; ";")) (} "}"))) (if_statement "if (*(char *)(param_2 + 0x10) == '?') {\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }\n    else {\n      pcVar6 = "Not a symbolic expression";\n    }" (if "if") (parenthesized_expression "(*(char *)(param_2 + 0x10) == '?')" (( "(") (binary_expression "*(char *)(param_2 + 0x10) == '?'" (pointer_expression "*(char *)(param_2 + 0x10)" (* "*") (cast_expression "(char *)(param_2 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (char_literal "'?'" (' "'") (character "?") (' "'"))) () ")")) (compound_statement "{\n      if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }\nLAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";\n    }" ({ "{") (if_statement "if (iVar7 == 4) {\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }" (if "if") (parenthesized_expression "(iVar7 == 4)" (( "(") (binary_expression "iVar7 == 4" (identifier "iVar7") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));\n        if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }\n        goto LAB_0004f68b;\n      }" ({ "{") (expression_statement "lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));" (assignment_expression "lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4))" (identifier "lVar12") (= "=") (call_expression "FUN_000375e0(*(undefined4 *)(param_2 + 4))" (identifier "FUN_000375e0") (argument_list "(*(undefined4 *)(param_2 + 4))" (( "(") (pointer_expression "*(undefined4 *)(param_2 + 4)" (* "*") (cast_expression "(undefined4 *)(param_2 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (if_statement "if (lVar12 == 1) {\n          iVar7 = 0xe;\n        }\n        else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" (if "if") (parenthesized_expression "(lVar12 == 1)" (( "(") (binary_expression "lVar12 == 1" (identifier "lVar12") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          iVar7 = 0xe;\n        }" ({ "{") (expression_statement "iVar7 = 0xe;" (assignment_expression "iVar7 = 0xe" (identifier "iVar7") (= "=") (number_literal "0xe")) (; ";")) (} "}")) (else_clause "else if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" (else "else") (if_statement "if (lVar12 == 0) {\n          iVar7 = 0xd;\n        }\n        else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" (if "if") (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar7 = 0xd;\n        }" ({ "{") (expression_statement "iVar7 = 0xd;" (assignment_expression "iVar7 = 0xd" (identifier "iVar7") (= "=") (number_literal "0xd")) (; ";")) (} "}")) (else_clause "else if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" (else "else") (if_statement "if (lVar12 == 2) {\n          iVar7 = 0xc;\n        }\n        else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" (if "if") (parenthesized_expression "(lVar12 == 2)" (( "(") (binary_expression "lVar12 == 2" (identifier "lVar12") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          iVar7 = 0xc;\n        }" ({ "{") (expression_statement "iVar7 = 0xc;" (assignment_expression "iVar7 = 0xc" (identifier "iVar7") (= "=") (number_literal "0xc")) (; ";")) (} "}")) (else_clause "else {\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" (else "else") (compound_statement "{\n          if (lVar12 != 10) goto LAB_0004f824;\n          iVar7 = 0xf;\n        }" ({ "{") (if_statement "if (lVar12 != 10) goto LAB_0004f824;" (if "if") (parenthesized_expression "(lVar12 != 10)" (( "(") (binary_expression "lVar12 != 10" (identifier "lVar12") (!= "!=") (number_literal "10")) () ")")) (goto_statement "goto LAB_0004f824;" (goto "goto") (statement_identifier "LAB_0004f824") (; ";"))) (expression_statement "iVar7 = 0xf;" (assignment_expression "iVar7 = 0xf" (identifier "iVar7") (= "=") (number_literal "0xf")) (; ";")) (} "}")))))))) (goto_statement "goto LAB_0004f68b;" (goto "goto") (statement_identifier "LAB_0004f68b") (; ";")) (} "}"))) (labeled_statement "LAB_0004f824:\n      pcVar6 = "Illegal combination of relocation functions";" (statement_identifier "LAB_0004f824") (: ":") (expression_statement "pcVar6 = "Illegal combination of relocation functions";" (assignment_expression "pcVar6 = "Illegal combination of relocation functions"" (identifier "pcVar6") (= "=") (string_literal ""Illegal combination of relocation functions"" (" """) (string_content "Illegal combination of relocation functions") (" """))) (; ";"))) (} "}")) (else_clause "else {\n      pcVar6 = "Not a symbolic expression";\n    }" (else "else") (compound_statement "{\n      pcVar6 = "Not a symbolic expression";\n    }" ({ "{") (expression_statement "pcVar6 = "Not a symbolic expression";" (assignment_expression "pcVar6 = "Not a symbolic expression"" (identifier "pcVar6") (= "=") (string_literal ""Not a symbolic expression"" (" """) (string_content "Not a symbolic expression") (" """))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    pcVar6 = "Missing \')\'";\n  }" (else "else") (compound_statement "{\n    pcVar6 = "Missing \')\'";\n  }" ({ "{") (expression_statement "pcVar6 = "Missing \')\'";" (assignment_expression "pcVar6 = "Missing \')\'"" (identifier "pcVar6") (= "=") (string_literal ""Missing \')\'"" (" """) (string_content "Missing ") (escape_sequence "\'") (string_content ")") (escape_sequence "\'") (" """))) (; ";")) (} "}")))) (expression_statement "uVar4 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar6,5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,pcVar6,5)" (identifier "dcgettext") (argument_list "(0,pcVar6,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar6") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00029550(uVar4);" (call_expression "FUN_00029550(uVar4)" (identifier "FUN_00029550") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "pcVar6 = DAT_00088118;" (assignment_expression "pcVar6 = DAT_00088118" (identifier "pcVar6") (= "=") (identifier "DAT_00088118")) (; ";")) (labeled_statement "LAB_0004f6a4:\n  *param_3 = *pcVar6;" (statement_identifier "LAB_0004f6a4") (: ":") (expression_statement "*param_3 = *pcVar6;" (assignment_expression "*param_3 = *pcVar6" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

int function_1(char *var_6,type_1 *e,char *nextcharP)

{
  char var_5;
  type_2 var_22;
  type_3 aVar3;
  type_4 uVar4;
  type_5 var_7;
  int var_8;
  char *var_10;
  type_6 *var_2;
  void *var_4;
  type_7 var_12;
  int var_13;
  type_8 *var_21;
  type_9 var_14;
  type_10 var_28;
  char *var_11;
  type_4 uStack_14;
  
  uStack_14 = 0x4f3d9;
  if (*var_6 != '@') {
    var_2 = (type_6 *)var_1(md.reg_hash,var_6);
    if (var_2 != (type_6 *)0x0) {
      e->field_0x10 = 5;
      var_28 = var_3(var_2);
      e->X_add_number = var_28;
      return 1;
    }
    var_4 = var_1(md.const_hash,var_6);
    if (var_4 != (void *)0x0) {
      e->field_0x10 = 2;
      uVar4 = *(type_4 *)((int)var_4 + 4);
      *(type_4 *)((int)&e->X_add_number + 4) = *(type_4 *)((int)var_4 + 8);
      *(type_4 *)&e->X_add_number = uVar4;
      return 1;
    }
    var_5 = *var_6;
    if (var_5 == 'l') {
      if (((var_6[1] != 'o') || (var_6[2] != 'c')) ||
         ((PTR__sch_istable_0007df84[(type_9)(type_5)var_6[3] * 2] & 4) == 0)) goto LAB_0004f57f;
      var_10 = var_6 + 3;
      var_7 = var_6[3];
      var_8 = 3;
      var_13 = 0x87d6c;
    }
    else if (var_5 == 'o') {
      if (((var_6[1] != 'u') || (var_6[2] != 't')) ||
         ((PTR__sch_istable_0007df84[(type_9)(type_5)var_6[3] * 2] & 4) == 0)) goto LAB_0004f57f;
      var_10 = var_6 + 3;
      var_7 = var_6[3];
      var_8 = 3;
      var_13 = 0x87d78;
    }
    else {
      if (((var_5 != 'i') || (var_6[1] != 'n')) ||
         (var_7 = var_6[2], (PTR__sch_istable_0007df84[(type_9)var_7 * 2] & 4) == 0))
      goto LAB_0004f57f;
      var_10 = var_6 + 2;
      var_8 = 2;
      var_13 = 0x87d60;
    }
    if (((var_7 != 0x30) || (var_6[var_8 + 1] == '\0')) &&
       ((var_12 = var_9(var_10,&var_11,10), var_10 < var_11 && ((*var_11 == '\0' && (var_12 < 0x60)))))) {
      var_14 = (type_9)*(type_11 *)(var_13 + 10);
      if (var_14 <= var_12) {
        if (*(type_11 *)(var_13 + 10) == 0) {
          var_10 = (char *)var_15(0,"No current frame",5,var_14);
          var_16(var_10);
          var_12 = 0;
        }
        else {
          var_10 = (char *)var_15(0,"Register number out of range 0..%u",5,var_6);
          var_16(var_10,var_14 - 1);
          var_12 = 0;
        }
      }
      e->field_0x10 = 5;
      *(type_7 *)&e->X_add_number = var_12 + *(type_11 *)(var_13 + 8);
      *(type_4 *)((int)&e->X_add_number + 4) = 0;
      return 1;
    }
LAB_0004f57f:
    var_11 = (char *)var_17(var_6);
    var_10 = var_18(var_11);
    var_4 = var_1(md.dynreg_hash,var_10);
    if (var_4 != (void *)0x0) {
      e->field_0x10 = 5;
      var_13 = *(int *)((int)var_4 + 8);
      *(int *)&e->X_add_number = var_13;
      *(int *)((int)&e->X_add_number + 4) = var_13 >> 0x1f;
      var_19(var_11);
      return 1;
    }
    var_19(var_11);
    return 0;
  }
  var_21 = pseudo_func;
  var_13 = 0;
  while (((var_10 = var_21->var_6, var_10 == (char *)0x0 || (*var_10 != var_6[1])) ||
         (var_8 = var_20(var_10 + 1,var_6 + 2), var_8 != 0))) {
    var_13 = var_13 + 1;
    var_21 = var_21 + 1;
    if (var_13 == 0x2d) {
      return 0;
    }
  }
  var_22 = pseudo_func[var_13].type;
  if (var_22 == var_23) {
    aVar3 = pseudo_func[var_13].u;
    e->field_0x10 = 2;
    *(type_3 *)&e->X_add_number = aVar3;
    *(type_4 *)((int)&e->X_add_number + 4) = 0;
    return 1;
  }
  if (var_22 == var_24) {
    aVar3 = pseudo_func[var_13].u;
    e->field_0x10 = 5;
    *(type_3 *)&e->X_add_number = aVar3;
    *(type_4 *)((int)&e->X_add_number + 4) = 0;
    return 1;
  }
  if (var_22 != var_25) {
    return 0;
  }
  var_11 = var_26;
  if (*nextcharP != '(') {
    var_10 = (char *)var_15(0,"Expected \'(\'",5);
    var_16(var_10);
    return 1;
  }
  var_26 = var_26 + 1;
  var_27(0,e,expr_normal);
  if (*var_26 == ')') {
    var_26 = var_26 + 1;
    if (e->field_0x10 == '\x03') {
LAB_0004f68b:
      var_10 = var_26;
      e->field_0x10 = 0x3f;
      e->X_op_symbol = (type_6 *)pseudo_func[var_13].u;
      goto LAB_0004f6a4;
    }
    if (e->field_0x10 == '?') {
      if (var_13 == 4) {
        var_28 = var_3(e->X_op_symbol);
        if (var_28 == 1) {
          var_13 = 0xe;
        }
        else if (var_28 == 0) {
          var_13 = 0xd;
        }
        else if (var_28 == 2) {
          var_13 = 0xc;
        }
        else {
          if (var_28 != 10) goto LAB_0004f824;
          var_13 = 0xf;
        }
        goto LAB_0004f68b;
      }
LAB_0004f824:
      var_10 = "Illegal combination of relocation functions";
    }
    else {
      var_10 = "Not a symbolic expression";
    }
  }
  else {
    var_10 = "Missing \')\'";
  }
  var_10 = (char *)var_15(0,var_10,5);
  var_16(var_10);
  var_10 = var_26;
LAB_0004f6a4:
  *nextcharP = *var_10;
  return 1;
}


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

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

undefined4 MASKED(char *param_1,int param_2,char *param_3)

{
  char cVar1;
  byte bVar2;
  int iVar3;
  undefined4 uVar4;
  ulong uVar5;
  char *pcVar6;
  int iVar7;
  undefined *puVar8;
  undefined **ppuVar9;
  uint uVar10;
  undefined8 uVar11;
  longlong lVar12;
  char *local_20 [3];
  undefined4 uStack_14;
  
  uStack_14 = 0x4f3d9;
  if (*param_1 != '@') {
    iVar7 = FUN_00022b40(DAT_00087944,param_1);
    if (iVar7 != 0) {
      *(undefined1 *)(param_2 + 0x10) = 5;
      uVar11 = FUN_000375e0(iVar7);
      *(undefined8 *)(param_2 + 8) = uVar11;
      return 1;
    }
    iVar7 = FUN_00022b40(DAT_0008794c,param_1);
    if (iVar7 != 0) {
      *(undefined1 *)(param_2 + 0x10) = 2;
      uVar4 = *(undefined4 *)(iVar7 + 4);
      *(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar7 + 8);
      *(undefined4 *)(param_2 + 8) = uVar4;
      return 1;
    }
    cVar1 = *param_1;
    if (cVar1 == 'l') {
      if (((param_1[1] != 'o') || (param_1[2] != 'c')) ||
         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;
      pcVar6 = param_1 + 3;
      bVar2 = param_1[3];
      iVar7 = 3;
      puVar8 = &DAT_00087d6c;
    }
    else if (cVar1 == 'o') {
      if (((param_1[1] != 'u') || (param_1[2] != 't')) ||
         ((PTR__sch_istable_0007df84[(uint)(byte)param_1[3] * 2] & 4) == 0)) goto LAB_0004f57f;
      pcVar6 = param_1 + 3;
      bVar2 = param_1[3];
      iVar7 = 3;
      puVar8 = &DAT_00087d78;
    }
    else {
      if (((cVar1 != 'i') || (param_1[1] != 'n')) ||
         (bVar2 = param_1[2], (PTR__sch_istable_0007df84[(uint)bVar2 * 2] & 4) == 0))
      goto LAB_0004f57f;
      pcVar6 = param_1 + 2;
      iVar7 = 2;
      puVar8 = &DAT_00087d60;
    }
    if (((bVar2 != 0x30) || (param_1[iVar7 + 1] == '\0')) &&
       ((uVar5 = strtoul(pcVar6,local_20,10), pcVar6 < local_20[0] &&
        ((*local_20[0] == '\0' && (uVar5 < 0x60)))))) {
      uVar10 = (uint)*(ushort *)(puVar8 + 10);
      if (uVar10 <= uVar5) {
        if (*(ushort *)(puVar8 + 10) == 0) {
          uVar4 = dcgettext(0,"No current frame",5,uVar10);
          FUN_00029550(uVar4);
          uVar5 = 0;
        }
        else {
          uVar4 = dcgettext(0,"Register number out of range 0..%u",5,param_1);
          FUN_00029550(uVar4,uVar10 - 1);
          uVar5 = 0;
        }
      }
      *(undefined1 *)(param_2 + 0x10) = 5;
      *(ulong *)(param_2 + 8) = uVar5 + *(ushort *)(puVar8 + 8);
      *(undefined4 *)(param_2 + 0xc) = 0;
      return 1;
    }
LAB_0004f57f:
    local_20[0] = (char *)xstrdup(param_1);
    uVar4 = FUN_0004e9c0(local_20[0]);
    iVar7 = FUN_00022b40(DAT_00087948,uVar4);
    if (iVar7 != 0) {
      *(undefined1 *)(param_2 + 0x10) = 5;
      iVar7 = *(int *)(iVar7 + 8);
      *(int *)(param_2 + 8) = iVar7;
      *(int *)(param_2 + 0xc) = iVar7 >> 0x1f;
      free(local_20[0]);
      return 1;
    }
    free(local_20[0]);
    return 0;
  }
  ppuVar9 = &PTR_DAT_0007edc0;
  iVar7 = 0;
  while (((pcVar6 = *ppuVar9, pcVar6 == (char *)0x0 || (*pcVar6 != param_1[1])) ||
         (iVar3 = strcmp(pcVar6 + 1,param_1 + 2), iVar3 != 0))) {
    iVar7 = iVar7 + 1;
    ppuVar9 = ppuVar9 + 3;
    if (iVar7 == 0x2d) {
      return 0;
    }
  }
  iVar3 = (&DAT_0007edc4)[iVar7 * 3];
  if (iVar3 == 2) {
    uVar4 = (&DAT_0007edc8)[iVar7 * 3];
    *(undefined1 *)(param_2 + 0x10) = 2;
    *(undefined4 *)(param_2 + 8) = uVar4;
    *(undefined4 *)(param_2 + 0xc) = 0;
    return 1;
  }
  if (iVar3 == 3) {
    uVar4 = (&DAT_0007edc8)[iVar7 * 3];
    *(undefined1 *)(param_2 + 0x10) = 5;
    *(undefined4 *)(param_2 + 8) = uVar4;
    *(undefined4 *)(param_2 + 0xc) = 0;
    return 1;
  }
  if (iVar3 != 1) {
    return 0;
  }
  local_20[0] = DAT_00088118;
  if (*param_3 != '(') {
    uVar4 = dcgettext(0,"Expected \'(\'",5);
    FUN_00029550(uVar4);
    return 1;
  }
  DAT_00088118 = DAT_00088118 + 1;
  FUN_00020530(0,param_2,1);
  if (*DAT_00088118 == ')') {
    DAT_00088118 = DAT_00088118 + 1;
    if (*(char *)(param_2 + 0x10) == '\x03') {
LAB_0004f68b:
      pcVar6 = DAT_00088118;
      *(undefined1 *)(param_2 + 0x10) = 0x3f;
      *(undefined4 *)(param_2 + 4) = (&DAT_0007edc8)[iVar7 * 3];
      goto LAB_0004f6a4;
    }
    if (*(char *)(param_2 + 0x10) == '?') {
      if (iVar7 == 4) {
        lVar12 = FUN_000375e0(*(undefined4 *)(param_2 + 4));
        if (lVar12 == 1) {
          iVar7 = 0xe;
        }
        else if (lVar12 == 0) {
          iVar7 = 0xd;
        }
        else if (lVar12 == 2) {
          iVar7 = 0xc;
        }
        else {
          if (lVar12 != 10) goto LAB_0004f824;
          iVar7 = 0xf;
        }
        goto LAB_0004f68b;
      }
LAB_0004f824:
      pcVar6 = "Illegal combination of relocation functions";
    }
    else {
      pcVar6 = "Not a symbolic expression";
    }
  }
  else {
    pcVar6 = "Missing \')\'";
  }
  uVar4 = dcgettext(0,pcVar6,5);
  FUN_00029550(uVar4);
  pcVar6 = DAT_00088118;
LAB_0004f6a4:
  *param_3 = *pcVar6;
  return 1;
}

