
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Unknown calling convention */

char * read_symbol_name(void)

{
  byte bVar1;
  char *__dest;
  char *pcVar2;
  uint uVar3;
  size_t sVar4;
  char *pcVar5;
  byte *pbVar6;
  int iVar8;
  size_t local_24;
  byte *pbVar7;
  
  pcVar2 = input_line_pointer;
  pbVar7 = (byte *)(input_line_pointer + 1);
  bVar1 = *input_line_pointer;
  if (bVar1 == 0x22) {
    input_line_pointer = (char *)pbVar7;
    __dest = (char *)xmalloc(0x81);
    local_24 = 0x80;
    pcVar5 = __dest + 0x80;
    pcVar2 = __dest;
    while (uVar3 = next_char_of_string(), uVar3 < 0x100) {
      if (pcVar5 <= pcVar2) {
        iVar8 = (int)pcVar2 - (int)__dest;
        __dest = (char *)xrealloc(__dest,local_24 + 0x81);
        pcVar2 = __dest + iVar8;
        pcVar5 = __dest + local_24 + 0x80;
        local_24 = local_24 + 0x80;
      }
      *pcVar2 = (char)uVar3;
      pcVar2 = pcVar2 + 1;
    }
    *pcVar2 = '\0';
    sVar4 = mbstowcs((wchar_t *)0x0,pcVar2,local_24);
    if (sVar4 == 0xffffffff) {
      pcVar5 = (char *)dcgettext(0,"symbol name not recognised in the current locale",5);
      as_warn(pcVar5);
    }
  }
  else {
    if (((lex_type[bVar1] & 2) == 0) && ((bVar1 != 1 || (input_from_string == 0))))
    goto LAB_0003248e;
    do {
      do {
        pbVar6 = pbVar7 + 1;
        bVar1 = *pbVar7;
        pbVar7 = pbVar6;
      } while ((lex_type[bVar1] & 1) != 0);
    } while ((bVar1 == 1) && (input_from_string != 0));
    iVar8 = (int)pbVar6 - (int)input_line_pointer;
    input_line_pointer = (char *)pbVar6;
    __dest = (char *)xmalloc(iVar8);
    memcpy(__dest,pcVar2,iVar8 - 1);
    __dest[iVar8 + -1] = '\0';
    if ((lex_type[bVar1] & 4) == 0) {
      input_line_pointer = input_line_pointer + -1;
    }
  }
  pbVar7 = (byte *)input_line_pointer;
  if (pcVar2 != __dest) {
    if (*input_line_pointer == ' ') {
      input_line_pointer = input_line_pointer + 1;
    }
    return __dest;
  }
LAB_0003248e:
  input_line_pointer = (char *)pbVar7;
  pcVar2 = (char *)dcgettext(0,"expected symbol name",5);
  as_bad(pcVar2);
  ignore_rest_of_line();
  return (char *)0x0;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

byte * FUN_00032390(void)

{
  byte bVar1;
  undefined4 uVar2;
  uint uVar3;
  size_t sVar4;
  byte *pbVar5;
  byte *pbVar6;
  int iVar7;
  byte *__s;
  size_t local_24;
  
  __s = DAT_000817b4;
  pbVar5 = DAT_000817b4 + 1;
  bVar1 = *DAT_000817b4;
  if (bVar1 == 0x22) {
    DAT_000817b4 = pbVar5;
    pbVar6 = (byte *)xmalloc(0x81);
    local_24 = 0x80;
    pbVar5 = pbVar6 + 0x80;
    __s = pbVar6;
    while (uVar3 = FUN_00032160(), uVar3 < 0x100) {
      if (pbVar5 <= __s) {
        iVar7 = (int)__s - (int)pbVar6;
        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);
        __s = pbVar6 + iVar7;
        pbVar5 = pbVar6 + local_24 + 0x80;
        local_24 = local_24 + 0x80;
      }
      *__s = (byte)uVar3;
      __s = __s + 1;
    }
    *__s = 0;
    sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);
    if (sVar4 == 0xffffffff) {
      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);
      FUN_0002bf90(uVar2);
    }
  }
  else {
    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))
    goto LAB_0003248e;
    do {
      do {
        pbVar6 = pbVar5 + 1;
        bVar1 = *pbVar5;
        pbVar5 = pbVar6;
      } while (((&DAT_000783c0)[bVar1] & 1) != 0);
    } while ((bVar1 == 1) && (DAT_00080d5c != 0));
    iVar7 = (int)pbVar6 - (int)DAT_000817b4;
    DAT_000817b4 = pbVar6;
    pbVar6 = (byte *)xmalloc(iVar7);
    memcpy(pbVar6,__s,iVar7 - 1);
    pbVar6[iVar7 + -1] = 0;
    if (((&DAT_000783c0)[bVar1] & 4) == 0) {
      DAT_000817b4 = DAT_000817b4 + -1;
    }
  }
  pbVar5 = DAT_000817b4;
  if (__s != pbVar6) {
    if (*DAT_000817b4 == 0x20) {
      DAT_000817b4 = DAT_000817b4 + 1;
    }
    return pbVar6;
  }
LAB_0003248e:
  DAT_000817b4 = pbVar5;
  uVar2 = dcgettext(0,"expected symbol name",5);
  FUN_0002c070(uVar2);
  FUN_0002e1d0();
  return (byte *)0x0;
}


CALL 0x00018f5a
ADD EAX,0x45c6b
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x1c
LEA EDI,[EAX + 0x97b4]
MOV dword ptr [ESP + 0x4],EAX
MOV ECX,dword ptr [EDI]
LEA ESI,[ECX + 0x1]
MOV dword ptr [EDI],ESI
MOVZX EAX,byte ptr [ECX]
CMP AL,0x22
JZ 0x000324c8
MOV EBX,dword ptr [ESP + 0x4]
MOV EDX,dword ptr [EBX + 0x8d5c]
TEST EDX,EDX
MOVZX EDX,AL
SETNZ BL
MOV EBP,EBX
MOV EBX,dword ptr [ESP + 0x4]
TEST byte ptr [EBX + EDX*0x1 + 0x3c0],0x2
JZ 0x00032480
MOV EAX,dword ptr [ESP + 0x4]
LEA EBX,[EAX + 0x3c0]
LEA ESI,[ESI]
ADD ESI,0x1
MOV dword ptr [EDI],ESI
MOVZX EDX,byte ptr [ESI + -0x1]
TEST byte ptr [EBX + EDX*0x1],0x1
JNZ 0x000323f0
CMP DL,0x1
JNZ 0x0003240a
MOV EAX,EBP
TEST AL,AL
JNZ 0x000323f0
MOV dword ptr [ESP + 0xc],EDX
SUB ESI,ECX
SUB ESP,0xc
MOV dword ptr [ESP + 0x14],ECX
PUSH ESI
MOV EBX,dword ptr [ESP + 0x14]
CALL 0x00015770
ADD ESP,0xc
MOV EBP,EAX
LEA EAX,[ESI + -0x1]
PUSH EAX
MOV ECX,dword ptr [ESP + 0x10]
PUSH ECX
MOV dword ptr [ESP + 0x14],ECX
PUSH EBP
MOV EBX,dword ptr [ESP + 0x14]
CALL 0x000150f0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x4]
MOV EDX,dword ptr [ESP + 0xc]
MOV byte ptr [EBP + ESI*0x1 + -0x1],0x0
MOV ECX,dword ptr [ESP + 0x8]
TEST byte ptr [EAX + EDX*0x1 + 0x3c0],0x4
JNZ 0x0003245e
SUB dword ptr [EDI],0x1
CMP ECX,EBP
JZ 0x0003248e
MOV EAX,dword ptr [EDI]
CMP byte ptr [EAX],0x20
JNZ 0x0003246e
ADD EAX,0x1
MOV dword ptr [EDI],EAX
ADD ESP,0x1c
MOV EAX,EBP
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP AL,0x1
JNZ 0x0003248e
MOV EAX,EBP
TEST AL,AL
JNZ 0x000323e3
SUB ESP,0x4
XOR EBP,EBP
PUSH 0x5
MOV EDI,dword ptr [ESP + 0xc]
LEA EAX,[EDI + 0xfffdebb5]
MOV EBX,EDI
PUSH EAX
PUSH 0x0
CALL 0x000151a0
MOV dword ptr [ESP],EAX
CALL 0x0002c070
CALL 0x0002e1d0
ADD ESP,0x10
MOV EAX,EBP
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
MOV ESI,0x80
PUSH 0x81
MOV EBX,dword ptr [ESP + 0x14]
CALL 0x00015770
ADD ESP,0x10
MOV dword ptr [ESP + 0x8],ESI
LEA EBX,[EAX + 0x80]
MOV EBP,EAX
MOV ESI,EAX
JMP 0x000324fd
MOV byte ptr [ESI],DL
ADD ESI,0x1
CALL 0x00032160
MOV EDX,EAX
CMP EAX,0xff
JA 0x00032550
CMP ESI,EBX
JC 0x000324f8
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0xc],EDX
SUB ESP,0x8
SUB ESI,EBP
LEA ECX,[EAX + 0x80]
ADD EAX,0x81
MOV dword ptr [ESP + 0x10],ECX
PUSH EAX
PUSH EBP
MOV EBX,dword ptr [ESP + 0x14]
CALL 0x00015210
MOV ECX,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
MOV EBP,EAX
ADD ESI,EAX
LEA EBX,[EAX + ECX*0x1]
MOV dword ptr [ESP + 0x8],ECX
JMP 0x000324f8
MOV ECX,ESI
MOV ESI,dword ptr [ESP + 0x8]
SUB ESP,0x4
MOV byte ptr [ECX],0x0
PUSH ESI
PUSH ECX
MOV dword ptr [ESP + 0x14],ECX
PUSH 0x0
MOV EBX,dword ptr [ESP + 0x14]
CALL 0x00015620
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x8]
CMP EAX,-0x1
JNZ 0x0003245e
SUB ESP,0x4
PUSH 0x5
MOV ESI,dword ptr [ESP + 0xc]
LEA EAX,[ESI + 0xfffe0f80]
MOV EBX,ESI
PUSH EAX
PUSH 0x0
CALL 0x000151a0
MOV dword ptr [ESP],EAX
CALL 0x0002bf90
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x8]
JMP 0x0003245e
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nbyte * FUN_00032390(void)\n\n{\n  byte bVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  size_t sVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *__s;\n  size_t local_24;\n  \n  __s = DAT_000817b4;\n  pbVar5 = DAT_000817b4 + 1;\n  bVar1 = *DAT_000817b4;\n  if (bVar1 == 0x22) {\n    DAT_000817b4 = pbVar5;\n    pbVar6 = (byte *)xmalloc(0x81);\n    local_24 = 0x80;\n    pbVar5 = pbVar6 + 0x80;\n    __s = pbVar6;\n    while (uVar3 = FUN_00032160(), uVar3 < 0x100) {\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }\n    *__s = 0;\n    sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);\n    if (sVar4 == 0xffffffff) {\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }\n  }\n  else {\n    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));\n    iVar7 = (int)pbVar6 - (int)DAT_000817b4;\n    DAT_000817b4 = pbVar6;\n    pbVar6 = (byte *)xmalloc(iVar7);\n    memcpy(pbVar6,__s,iVar7 - 1);\n    pbVar6[iVar7 + -1] = 0;\n    if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }\n  }\n  pbVar5 = DAT_000817b4;\n  if (__s != pbVar6) {\n    if (*DAT_000817b4 == 0x20) {\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }\n    return pbVar6;\n  }\nLAB_0003248e:\n  DAT_000817b4 = pbVar5;\n  uVar2 = dcgettext(0,"expected symbol name",5);\n  FUN_0002c070(uVar2);\n  FUN_0002e1d0();\n  return (byte *)0x0;\n}\n\n" comment (function_definition "byte * FUN_00032390(void)\n\n{\n  byte bVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  size_t sVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *__s;\n  size_t local_24;\n  \n  __s = DAT_000817b4;\n  pbVar5 = DAT_000817b4 + 1;\n  bVar1 = *DAT_000817b4;\n  if (bVar1 == 0x22) {\n    DAT_000817b4 = pbVar5;\n    pbVar6 = (byte *)xmalloc(0x81);\n    local_24 = 0x80;\n    pbVar5 = pbVar6 + 0x80;\n    __s = pbVar6;\n    while (uVar3 = FUN_00032160(), uVar3 < 0x100) {\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }\n    *__s = 0;\n    sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);\n    if (sVar4 == 0xffffffff) {\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }\n  }\n  else {\n    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));\n    iVar7 = (int)pbVar6 - (int)DAT_000817b4;\n    DAT_000817b4 = pbVar6;\n    pbVar6 = (byte *)xmalloc(iVar7);\n    memcpy(pbVar6,__s,iVar7 - 1);\n    pbVar6[iVar7 + -1] = 0;\n    if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }\n  }\n  pbVar5 = DAT_000817b4;\n  if (__s != pbVar6) {\n    if (*DAT_000817b4 == 0x20) {\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }\n    return pbVar6;\n  }\nLAB_0003248e:\n  DAT_000817b4 = pbVar5;\n  uVar2 = dcgettext(0,"expected symbol name",5);\n  FUN_0002c070(uVar2);\n  FUN_0002e1d0();\n  return (byte *)0x0;\n}" type_identifier (pointer_declarator "* FUN_00032390(void)" * (function_declarator "FUN_00032390(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  byte bVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  size_t sVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *__s;\n  size_t local_24;\n  \n  __s = DAT_000817b4;\n  pbVar5 = DAT_000817b4 + 1;\n  bVar1 = *DAT_000817b4;\n  if (bVar1 == 0x22) {\n    DAT_000817b4 = pbVar5;\n    pbVar6 = (byte *)xmalloc(0x81);\n    local_24 = 0x80;\n    pbVar5 = pbVar6 + 0x80;\n    __s = pbVar6;\n    while (uVar3 = FUN_00032160(), uVar3 < 0x100) {\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }\n    *__s = 0;\n    sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);\n    if (sVar4 == 0xffffffff) {\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }\n  }\n  else {\n    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));\n    iVar7 = (int)pbVar6 - (int)DAT_000817b4;\n    DAT_000817b4 = pbVar6;\n    pbVar6 = (byte *)xmalloc(iVar7);\n    memcpy(pbVar6,__s,iVar7 - 1);\n    pbVar6[iVar7 + -1] = 0;\n    if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }\n  }\n  pbVar5 = DAT_000817b4;\n  if (__s != pbVar6) {\n    if (*DAT_000817b4 == 0x20) {\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }\n    return pbVar6;\n  }\nLAB_0003248e:\n  DAT_000817b4 = pbVar5;\n  uVar2 = dcgettext(0,"expected symbol name",5);\n  FUN_0002c070(uVar2);\n  FUN_0002e1d0();\n  return (byte *)0x0;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "size_t local_24;" primitive_type identifier ;) (expression_statement "__s = DAT_000817b4;" (assignment_expression "__s = DAT_000817b4" identifier = identifier) ;) (expression_statement "pbVar5 = DAT_000817b4 + 1;" (assignment_expression "pbVar5 = DAT_000817b4 + 1" identifier = (binary_expression "DAT_000817b4 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *DAT_000817b4;" (assignment_expression "bVar1 = *DAT_000817b4" identifier = (pointer_expression "*DAT_000817b4" * identifier)) ;) (if_statement "if (bVar1 == 0x22) {\n    DAT_000817b4 = pbVar5;\n    pbVar6 = (byte *)xmalloc(0x81);\n    local_24 = 0x80;\n    pbVar5 = pbVar6 + 0x80;\n    __s = pbVar6;\n    while (uVar3 = FUN_00032160(), uVar3 < 0x100) {\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }\n    *__s = 0;\n    sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);\n    if (sVar4 == 0xffffffff) {\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }\n  }\n  else {\n    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));\n    iVar7 = (int)pbVar6 - (int)DAT_000817b4;\n    DAT_000817b4 = pbVar6;\n    pbVar6 = (byte *)xmalloc(iVar7);\n    memcpy(pbVar6,__s,iVar7 - 1);\n    pbVar6[iVar7 + -1] = 0;\n    if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }\n  }" if (parenthesized_expression "(bVar1 == 0x22)" ( (binary_expression "bVar1 == 0x22" identifier == number_literal) )) (compound_statement "{\n    DAT_000817b4 = pbVar5;\n    pbVar6 = (byte *)xmalloc(0x81);\n    local_24 = 0x80;\n    pbVar5 = pbVar6 + 0x80;\n    __s = pbVar6;\n    while (uVar3 = FUN_00032160(), uVar3 < 0x100) {\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }\n    *__s = 0;\n    sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);\n    if (sVar4 == 0xffffffff) {\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }\n  }" { (expression_statement "DAT_000817b4 = pbVar5;" (assignment_expression "DAT_000817b4 = pbVar5" identifier = identifier) ;) (expression_statement "pbVar6 = (byte *)xmalloc(0x81);" (assignment_expression "pbVar6 = (byte *)xmalloc(0x81)" identifier = (cast_expression "(byte *)xmalloc(0x81)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x81)" identifier (argument_list "(0x81)" ( number_literal ))))) ;) (expression_statement "local_24 = 0x80;" (assignment_expression "local_24 = 0x80" identifier = number_literal) ;) (expression_statement "pbVar5 = pbVar6 + 0x80;" (assignment_expression "pbVar5 = pbVar6 + 0x80" identifier = (binary_expression "pbVar6 + 0x80" identifier + number_literal)) ;) (expression_statement "__s = pbVar6;" (assignment_expression "__s = pbVar6" identifier = identifier) ;) (while_statement "while (uVar3 = FUN_00032160(), uVar3 < 0x100) {\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }" while (parenthesized_expression "(uVar3 = FUN_00032160(), uVar3 < 0x100)" ( (comma_expression "uVar3 = FUN_00032160(), uVar3 < 0x100" (assignment_expression "uVar3 = FUN_00032160()" identifier = (call_expression "FUN_00032160()" identifier (argument_list "()" ( )))) , (binary_expression "uVar3 < 0x100" identifier < number_literal)) )) (compound_statement "{\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }" { (if_statement "if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }" if (parenthesized_expression "(pbVar5 <= __s)" ( (binary_expression "pbVar5 <= __s" identifier <= identifier) )) (compound_statement "{\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }" { (expression_statement "iVar7 = (int)__s - (int)pbVar6;" (assignment_expression "iVar7 = (int)__s - (int)pbVar6" identifier = (binary_expression "(int)__s - (int)pbVar6" (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);" (assignment_expression "pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81)" identifier = (cast_expression "(byte *)xrealloc(pbVar6,local_24 + 0x81)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(pbVar6,local_24 + 0x81)" identifier (argument_list "(pbVar6,local_24 + 0x81)" ( identifier , (binary_expression "local_24 + 0x81" identifier + number_literal) ))))) ;) (expression_statement "__s = pbVar6 + iVar7;" (assignment_expression "__s = pbVar6 + iVar7" identifier = (binary_expression "pbVar6 + iVar7" identifier + identifier)) ;) (expression_statement "pbVar5 = pbVar6 + local_24 + 0x80;" (assignment_expression "pbVar5 = pbVar6 + local_24 + 0x80" identifier = (binary_expression "pbVar6 + local_24 + 0x80" (binary_expression "pbVar6 + local_24" identifier + identifier) + number_literal)) ;) (expression_statement "local_24 = local_24 + 0x80;" (assignment_expression "local_24 = local_24 + 0x80" identifier = (binary_expression "local_24 + 0x80" identifier + number_literal)) ;) })) (expression_statement "*__s = (byte)uVar3;" (assignment_expression "*__s = (byte)uVar3" (pointer_expression "*__s" * identifier) = (cast_expression "(byte)uVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" identifier = (binary_expression "__s + 1" identifier + number_literal)) ;) })) (expression_statement "*__s = 0;" (assignment_expression "*__s = 0" (pointer_expression "*__s" * identifier) = number_literal) ;) (expression_statement "sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);" (assignment_expression "sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24)" identifier = (call_expression "mbstowcs((wchar_t *)0x0,(char *)__s,local_24)" identifier (argument_list "((wchar_t *)0x0,(char *)__s,local_24)" ( (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (sVar4 == 0xffffffff) {\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }" if (parenthesized_expression "(sVar4 == 0xffffffff)" ( (binary_expression "sVar4 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }" { (expression_statement "uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);" (assignment_expression "uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5)" identifier = (call_expression "dcgettext(0,"symbol name not recognised in the current locale",5)" identifier (argument_list "(0,"symbol name not recognised in the current locale",5)" ( number_literal , (string_literal ""symbol name not recognised in the current locale"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bf90(uVar2);" (call_expression "FUN_0002bf90(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) })) }) (else_clause "else {\n    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));\n    iVar7 = (int)pbVar6 - (int)DAT_000817b4;\n    DAT_000817b4 = pbVar6;\n    pbVar6 = (byte *)xmalloc(iVar7);\n    memcpy(pbVar6,__s,iVar7 - 1);\n    pbVar6[iVar7 + -1] = 0;\n    if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }\n  }" else (compound_statement "{\n    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));\n    iVar7 = (int)pbVar6 - (int)DAT_000817b4;\n    DAT_000817b4 = pbVar6;\n    pbVar6 = (byte *)xmalloc(iVar7);\n    memcpy(pbVar6,__s,iVar7 - 1);\n    pbVar6[iVar7 + -1] = 0;\n    if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }\n  }" { (if_statement "if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;" if (parenthesized_expression "((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))" ( (binary_expression "(((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0)))" (parenthesized_expression "(((&DAT_000783c0)[bVar1] & 2) == 0)" ( (binary_expression "((&DAT_000783c0)[bVar1] & 2) == 0" (parenthesized_expression "((&DAT_000783c0)[bVar1] & 2)" ( (binary_expression "(&DAT_000783c0)[bVar1] & 2" (subscript_expression "(&DAT_000783c0)[bVar1]" (parenthesized_expression "(&DAT_000783c0)" ( (pointer_expression "&DAT_000783c0" & identifier) )) [ identifier ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "((bVar1 != 1 || (DAT_00080d5c == 0)))" ( (parenthesized_expression "(bVar1 != 1 || (DAT_00080d5c == 0))" ( (binary_expression "bVar1 != 1 || (DAT_00080d5c == 0)" (binary_expression "bVar1 != 1" identifier != number_literal) || (parenthesized_expression "(DAT_00080d5c == 0)" ( (binary_expression "DAT_00080d5c == 0" identifier == number_literal) ))) )) ))) )) (goto_statement "goto LAB_0003248e;" goto statement_identifier ;)) (do_statement "do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));" do (compound_statement "{\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    }" { (do_statement "do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);" do (compound_statement "{\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      }" { (expression_statement "pbVar6 = pbVar5 + 1;" (assignment_expression "pbVar6 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *pbVar5;" (assignment_expression "bVar1 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) ;) (expression_statement "pbVar5 = pbVar6;" (assignment_expression "pbVar5 = pbVar6" identifier = identifier) ;) }) while (parenthesized_expression "(((&DAT_000783c0)[bVar1] & 1) != 0)" ( (binary_expression "((&DAT_000783c0)[bVar1] & 1) != 0" (parenthesized_expression "((&DAT_000783c0)[bVar1] & 1)" ( (binary_expression "(&DAT_000783c0)[bVar1] & 1" (subscript_expression "(&DAT_000783c0)[bVar1]" (parenthesized_expression "(&DAT_000783c0)" ( (pointer_expression "&DAT_000783c0" & identifier) )) [ identifier ]) & number_literal) )) != number_literal) )) ;) }) while (parenthesized_expression "((bVar1 == 1) && (DAT_00080d5c != 0))" ( (binary_expression "(bVar1 == 1) && (DAT_00080d5c != 0)" (parenthesized_expression "(bVar1 == 1)" ( (binary_expression "bVar1 == 1" identifier == number_literal) )) && (parenthesized_expression "(DAT_00080d5c != 0)" ( (binary_expression "DAT_00080d5c != 0" identifier != number_literal) ))) )) ;) (expression_statement "iVar7 = (int)pbVar6 - (int)DAT_000817b4;" (assignment_expression "iVar7 = (int)pbVar6 - (int)DAT_000817b4" identifier = (binary_expression "(int)pbVar6 - (int)DAT_000817b4" (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)DAT_000817b4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "DAT_000817b4 = pbVar6;" (assignment_expression "DAT_000817b4 = pbVar6" identifier = identifier) ;) (expression_statement "pbVar6 = (byte *)xmalloc(iVar7);" (assignment_expression "pbVar6 = (byte *)xmalloc(iVar7)" identifier = (cast_expression "(byte *)xmalloc(iVar7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))))) ;) (expression_statement "memcpy(pbVar6,__s,iVar7 - 1);" (call_expression "memcpy(pbVar6,__s,iVar7 - 1)" identifier (argument_list "(pbVar6,__s,iVar7 - 1)" ( identifier , identifier , (binary_expression "iVar7 - 1" identifier - number_literal) ))) ;) (expression_statement "pbVar6[iVar7 + -1] = 0;" (assignment_expression "pbVar6[iVar7 + -1] = 0" (subscript_expression "pbVar6[iVar7 + -1]" identifier [ (binary_expression "iVar7 + -1" identifier + number_literal) ]) = number_literal) ;) (if_statement "if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }" if (parenthesized_expression "(((&DAT_000783c0)[bVar1] & 4) == 0)" ( (binary_expression "((&DAT_000783c0)[bVar1] & 4) == 0" (parenthesized_expression "((&DAT_000783c0)[bVar1] & 4)" ( (binary_expression "(&DAT_000783c0)[bVar1] & 4" (subscript_expression "(&DAT_000783c0)[bVar1]" (parenthesized_expression "(&DAT_000783c0)" ( (pointer_expression "&DAT_000783c0" & identifier) )) [ identifier ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }" { (expression_statement "DAT_000817b4 = DAT_000817b4 + -1;" (assignment_expression "DAT_000817b4 = DAT_000817b4 + -1" identifier = (binary_expression "DAT_000817b4 + -1" identifier + number_literal)) ;) })) }))) (expression_statement "pbVar5 = DAT_000817b4;" (assignment_expression "pbVar5 = DAT_000817b4" identifier = identifier) ;) (if_statement "if (__s != pbVar6) {\n    if (*DAT_000817b4 == 0x20) {\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }\n    return pbVar6;\n  }" if (parenthesized_expression "(__s != pbVar6)" ( (binary_expression "__s != pbVar6" identifier != identifier) )) (compound_statement "{\n    if (*DAT_000817b4 == 0x20) {\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }\n    return pbVar6;\n  }" { (if_statement "if (*DAT_000817b4 == 0x20) {\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }" if (parenthesized_expression "(*DAT_000817b4 == 0x20)" ( (binary_expression "*DAT_000817b4 == 0x20" (pointer_expression "*DAT_000817b4" * identifier) == number_literal) )) (compound_statement "{\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }" { (expression_statement "DAT_000817b4 = DAT_000817b4 + 1;" (assignment_expression "DAT_000817b4 = DAT_000817b4 + 1" identifier = (binary_expression "DAT_000817b4 + 1" identifier + number_literal)) ;) })) (return_statement "return pbVar6;" return identifier ;) })) (labeled_statement "LAB_0003248e:\n  DAT_000817b4 = pbVar5;" statement_identifier : (expression_statement "DAT_000817b4 = pbVar5;" (assignment_expression "DAT_000817b4 = pbVar5" identifier = identifier) ;)) (expression_statement "uVar2 = dcgettext(0,"expected symbol name",5);" (assignment_expression "uVar2 = dcgettext(0,"expected symbol name",5)" identifier = (call_expression "dcgettext(0,"expected symbol name",5)" identifier (argument_list "(0,"expected symbol name",5)" ( number_literal , (string_literal ""expected symbol name"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002c070(uVar2);" (call_expression "FUN_0002c070(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (expression_statement "FUN_0002e1d0();" (call_expression "FUN_0002e1d0()" identifier (argument_list "()" ( ))) ;) (return_statement "return (byte *)0x0;" return (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Unknown calling convention */\n\nchar * read_symbol_name(void)\n\n{\n  byte bVar1;\n  char *__dest;\n  char *pcVar2;\n  uint uVar3;\n  size_t sVar4;\n  char *pcVar5;\n  byte *pbVar6;\n  int iVar8;\n  size_t local_24;\n  byte *pbVar7;\n  \n  pcVar2 = input_line_pointer;\n  pbVar7 = (byte *)(input_line_pointer + 1);\n  bVar1 = *input_line_pointer;\n  if (bVar1 == 0x22) {\n    input_line_pointer = (char *)pbVar7;\n    __dest = (char *)xmalloc(0x81);\n    local_24 = 0x80;\n    pcVar5 = __dest + 0x80;\n    pcVar2 = __dest;\n    while (uVar3 = next_char_of_string(), uVar3 < 0x100) {\n      if (pcVar5 <= pcVar2) {\n        iVar8 = (int)pcVar2 - (int)__dest;\n        __dest = (char *)xrealloc(__dest,local_24 + 0x81);\n        pcVar2 = __dest + iVar8;\n        pcVar5 = __dest + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *pcVar2 = (char)uVar3;\n      pcVar2 = pcVar2 + 1;\n    }\n    *pcVar2 = '\0';\n    sVar4 = mbstowcs((wchar_t *)0x0,pcVar2,local_24);\n    if (sVar4 == 0xffffffff) {\n      pcVar5 = (char *)dcgettext(0,"symbol name not recognised in the current locale",5);\n      as_warn(pcVar5);\n    }\n  }\n  else {\n    if (((lex_type[bVar1] & 2) == 0) && ((bVar1 != 1 || (input_from_string == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar7 + 1;\n        bVar1 = *pbVar7;\n        pbVar7 = pbVar6;\n      } while ((lex_type[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (input_from_string != 0));\n    iVar8 = (int)pbVar6 - (int)input_line_pointer;\n    input_line_pointer = (char *)pbVar6;\n    __dest = (char *)xmalloc(iVar8);\n    memcpy(__dest,pcVar2,iVar8 - 1);\n    __dest[iVar8 + -1] = '\0';\n    if ((lex_type[bVar1] & 4) == 0) {\n      input_line_pointer = input_line_pointer + -1;\n    }\n  }\n  pbVar7 = (byte *)input_line_pointer;\n  if (pcVar2 != __dest) {\n    if (*input_line_pointer == ' ') {\n      input_line_pointer = input_line_pointer + 1;\n    }\n    return __dest;\n  }\nLAB_0003248e:\n  input_line_pointer = (char *)pbVar7;\n  pcVar2 = (char *)dcgettext(0,"expected symbol name",5);\n  as_bad(pcVar2);\n  ignore_rest_of_line();\n  return (char *)0x0;\n}\n\n" comment comment (function_definition "char * read_symbol_name(void)\n\n{\n  byte bVar1;\n  char *__dest;\n  char *pcVar2;\n  uint uVar3;\n  size_t sVar4;\n  char *pcVar5;\n  byte *pbVar6;\n  int iVar8;\n  size_t local_24;\n  byte *pbVar7;\n  \n  pcVar2 = input_line_pointer;\n  pbVar7 = (byte *)(input_line_pointer + 1);\n  bVar1 = *input_line_pointer;\n  if (bVar1 == 0x22) {\n    input_line_pointer = (char *)pbVar7;\n    __dest = (char *)xmalloc(0x81);\n    local_24 = 0x80;\n    pcVar5 = __dest + 0x80;\n    pcVar2 = __dest;\n    while (uVar3 = next_char_of_string(), uVar3 < 0x100) {\n      if (pcVar5 <= pcVar2) {\n        iVar8 = (int)pcVar2 - (int)__dest;\n        __dest = (char *)xrealloc(__dest,local_24 + 0x81);\n        pcVar2 = __dest + iVar8;\n        pcVar5 = __dest + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *pcVar2 = (char)uVar3;\n      pcVar2 = pcVar2 + 1;\n    }\n    *pcVar2 = '\0';\n    sVar4 = mbstowcs((wchar_t *)0x0,pcVar2,local_24);\n    if (sVar4 == 0xffffffff) {\n      pcVar5 = (char *)dcgettext(0,"symbol name not recognised in the current locale",5);\n      as_warn(pcVar5);\n    }\n  }\n  else {\n    if (((lex_type[bVar1] & 2) == 0) && ((bVar1 != 1 || (input_from_string == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar7 + 1;\n        bVar1 = *pbVar7;\n        pbVar7 = pbVar6;\n      } while ((lex_type[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (input_from_string != 0));\n    iVar8 = (int)pbVar6 - (int)input_line_pointer;\n    input_line_pointer = (char *)pbVar6;\n    __dest = (char *)xmalloc(iVar8);\n    memcpy(__dest,pcVar2,iVar8 - 1);\n    __dest[iVar8 + -1] = '\0';\n    if ((lex_type[bVar1] & 4) == 0) {\n      input_line_pointer = input_line_pointer + -1;\n    }\n  }\n  pbVar7 = (byte *)input_line_pointer;\n  if (pcVar2 != __dest) {\n    if (*input_line_pointer == ' ') {\n      input_line_pointer = input_line_pointer + 1;\n    }\n    return __dest;\n  }\nLAB_0003248e:\n  input_line_pointer = (char *)pbVar7;\n  pcVar2 = (char *)dcgettext(0,"expected symbol name",5);\n  as_bad(pcVar2);\n  ignore_rest_of_line();\n  return (char *)0x0;\n}" primitive_type (pointer_declarator "* read_symbol_name(void)" * (function_declarator "read_symbol_name(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  byte bVar1;\n  char *__dest;\n  char *pcVar2;\n  uint uVar3;\n  size_t sVar4;\n  char *pcVar5;\n  byte *pbVar6;\n  int iVar8;\n  size_t local_24;\n  byte *pbVar7;\n  \n  pcVar2 = input_line_pointer;\n  pbVar7 = (byte *)(input_line_pointer + 1);\n  bVar1 = *input_line_pointer;\n  if (bVar1 == 0x22) {\n    input_line_pointer = (char *)pbVar7;\n    __dest = (char *)xmalloc(0x81);\n    local_24 = 0x80;\n    pcVar5 = __dest + 0x80;\n    pcVar2 = __dest;\n    while (uVar3 = next_char_of_string(), uVar3 < 0x100) {\n      if (pcVar5 <= pcVar2) {\n        iVar8 = (int)pcVar2 - (int)__dest;\n        __dest = (char *)xrealloc(__dest,local_24 + 0x81);\n        pcVar2 = __dest + iVar8;\n        pcVar5 = __dest + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *pcVar2 = (char)uVar3;\n      pcVar2 = pcVar2 + 1;\n    }\n    *pcVar2 = '\0';\n    sVar4 = mbstowcs((wchar_t *)0x0,pcVar2,local_24);\n    if (sVar4 == 0xffffffff) {\n      pcVar5 = (char *)dcgettext(0,"symbol name not recognised in the current locale",5);\n      as_warn(pcVar5);\n    }\n  }\n  else {\n    if (((lex_type[bVar1] & 2) == 0) && ((bVar1 != 1 || (input_from_string == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar7 + 1;\n        bVar1 = *pbVar7;\n        pbVar7 = pbVar6;\n      } while ((lex_type[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (input_from_string != 0));\n    iVar8 = (int)pbVar6 - (int)input_line_pointer;\n    input_line_pointer = (char *)pbVar6;\n    __dest = (char *)xmalloc(iVar8);\n    memcpy(__dest,pcVar2,iVar8 - 1);\n    __dest[iVar8 + -1] = '\0';\n    if ((lex_type[bVar1] & 4) == 0) {\n      input_line_pointer = input_line_pointer + -1;\n    }\n  }\n  pbVar7 = (byte *)input_line_pointer;\n  if (pcVar2 != __dest) {\n    if (*input_line_pointer == ' ') {\n      input_line_pointer = input_line_pointer + 1;\n    }\n    return __dest;\n  }\nLAB_0003248e:\n  input_line_pointer = (char *)pbVar7;\n  pcVar2 = (char *)dcgettext(0,"expected symbol name",5);\n  as_bad(pcVar2);\n  ignore_rest_of_line();\n  return (char *)0x0;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "size_t local_24;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (expression_statement "pcVar2 = input_line_pointer;" (assignment_expression "pcVar2 = input_line_pointer" identifier = identifier) ;) (expression_statement "pbVar7 = (byte *)(input_line_pointer + 1);" (assignment_expression "pbVar7 = (byte *)(input_line_pointer + 1)" identifier = (cast_expression "(byte *)(input_line_pointer + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(input_line_pointer + 1)" ( (binary_expression "input_line_pointer + 1" identifier + number_literal) )))) ;) (expression_statement "bVar1 = *input_line_pointer;" (assignment_expression "bVar1 = *input_line_pointer" identifier = (pointer_expression "*input_line_pointer" * identifier)) ;) (if_statement "if (bVar1 == 0x22) {\n    input_line_pointer = (char *)pbVar7;\n    __dest = (char *)xmalloc(0x81);\n    local_24 = 0x80;\n    pcVar5 = __dest + 0x80;\n    pcVar2 = __dest;\n    while (uVar3 = next_char_of_string(), uVar3 < 0x100) {\n      if (pcVar5 <= pcVar2) {\n        iVar8 = (int)pcVar2 - (int)__dest;\n        __dest = (char *)xrealloc(__dest,local_24 + 0x81);\n        pcVar2 = __dest + iVar8;\n        pcVar5 = __dest + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *pcVar2 = (char)uVar3;\n      pcVar2 = pcVar2 + 1;\n    }\n    *pcVar2 = '\0';\n    sVar4 = mbstowcs((wchar_t *)0x0,pcVar2,local_24);\n    if (sVar4 == 0xffffffff) {\n      pcVar5 = (char *)dcgettext(0,"symbol name not recognised in the current locale",5);\n      as_warn(pcVar5);\n    }\n  }\n  else {\n    if (((lex_type[bVar1] & 2) == 0) && ((bVar1 != 1 || (input_from_string == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar7 + 1;\n        bVar1 = *pbVar7;\n        pbVar7 = pbVar6;\n      } while ((lex_type[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (input_from_string != 0));\n    iVar8 = (int)pbVar6 - (int)input_line_pointer;\n    input_line_pointer = (char *)pbVar6;\n    __dest = (char *)xmalloc(iVar8);\n    memcpy(__dest,pcVar2,iVar8 - 1);\n    __dest[iVar8 + -1] = '\0';\n    if ((lex_type[bVar1] & 4) == 0) {\n      input_line_pointer = input_line_pointer + -1;\n    }\n  }" if (parenthesized_expression "(bVar1 == 0x22)" ( (binary_expression "bVar1 == 0x22" identifier == number_literal) )) (compound_statement "{\n    input_line_pointer = (char *)pbVar7;\n    __dest = (char *)xmalloc(0x81);\n    local_24 = 0x80;\n    pcVar5 = __dest + 0x80;\n    pcVar2 = __dest;\n    while (uVar3 = next_char_of_string(), uVar3 < 0x100) {\n      if (pcVar5 <= pcVar2) {\n        iVar8 = (int)pcVar2 - (int)__dest;\n        __dest = (char *)xrealloc(__dest,local_24 + 0x81);\n        pcVar2 = __dest + iVar8;\n        pcVar5 = __dest + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *pcVar2 = (char)uVar3;\n      pcVar2 = pcVar2 + 1;\n    }\n    *pcVar2 = '\0';\n    sVar4 = mbstowcs((wchar_t *)0x0,pcVar2,local_24);\n    if (sVar4 == 0xffffffff) {\n      pcVar5 = (char *)dcgettext(0,"symbol name not recognised in the current locale",5);\n      as_warn(pcVar5);\n    }\n  }" { (expression_statement "input_line_pointer = (char *)pbVar7;" (assignment_expression "input_line_pointer = (char *)pbVar7" identifier = (cast_expression "(char *)pbVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "__dest = (char *)xmalloc(0x81);" (assignment_expression "__dest = (char *)xmalloc(0x81)" identifier = (cast_expression "(char *)xmalloc(0x81)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x81)" identifier (argument_list "(0x81)" ( number_literal ))))) ;) (expression_statement "local_24 = 0x80;" (assignment_expression "local_24 = 0x80" identifier = number_literal) ;) (expression_statement "pcVar5 = __dest + 0x80;" (assignment_expression "pcVar5 = __dest + 0x80" identifier = (binary_expression "__dest + 0x80" identifier + number_literal)) ;) (expression_statement "pcVar2 = __dest;" (assignment_expression "pcVar2 = __dest" identifier = identifier) ;) (while_statement "while (uVar3 = next_char_of_string(), uVar3 < 0x100) {\n      if (pcVar5 <= pcVar2) {\n        iVar8 = (int)pcVar2 - (int)__dest;\n        __dest = (char *)xrealloc(__dest,local_24 + 0x81);\n        pcVar2 = __dest + iVar8;\n        pcVar5 = __dest + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *pcVar2 = (char)uVar3;\n      pcVar2 = pcVar2 + 1;\n    }" while (parenthesized_expression "(uVar3 = next_char_of_string(), uVar3 < 0x100)" ( (comma_expression "uVar3 = next_char_of_string(), uVar3 < 0x100" (assignment_expression "uVar3 = next_char_of_string()" identifier = (call_expression "next_char_of_string()" identifier (argument_list "()" ( )))) , (binary_expression "uVar3 < 0x100" identifier < number_literal)) )) (compound_statement "{\n      if (pcVar5 <= pcVar2) {\n        iVar8 = (int)pcVar2 - (int)__dest;\n        __dest = (char *)xrealloc(__dest,local_24 + 0x81);\n        pcVar2 = __dest + iVar8;\n        pcVar5 = __dest + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *pcVar2 = (char)uVar3;\n      pcVar2 = pcVar2 + 1;\n    }" { (if_statement "if (pcVar5 <= pcVar2) {\n        iVar8 = (int)pcVar2 - (int)__dest;\n        __dest = (char *)xrealloc(__dest,local_24 + 0x81);\n        pcVar2 = __dest + iVar8;\n        pcVar5 = __dest + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }" if (parenthesized_expression "(pcVar5 <= pcVar2)" ( (binary_expression "pcVar5 <= pcVar2" identifier <= identifier) )) (compound_statement "{\n        iVar8 = (int)pcVar2 - (int)__dest;\n        __dest = (char *)xrealloc(__dest,local_24 + 0x81);\n        pcVar2 = __dest + iVar8;\n        pcVar5 = __dest + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }" { (expression_statement "iVar8 = (int)pcVar2 - (int)__dest;" (assignment_expression "iVar8 = (int)pcVar2 - (int)__dest" identifier = (binary_expression "(int)pcVar2 - (int)__dest" (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "__dest = (char *)xrealloc(__dest,local_24 + 0x81);" (assignment_expression "__dest = (char *)xrealloc(__dest,local_24 + 0x81)" identifier = (cast_expression "(char *)xrealloc(__dest,local_24 + 0x81)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(__dest,local_24 + 0x81)" identifier (argument_list "(__dest,local_24 + 0x81)" ( identifier , (binary_expression "local_24 + 0x81" identifier + number_literal) ))))) ;) (expression_statement "pcVar2 = __dest + iVar8;" (assignment_expression "pcVar2 = __dest + iVar8" identifier = (binary_expression "__dest + iVar8" identifier + identifier)) ;) (expression_statement "pcVar5 = __dest + local_24 + 0x80;" (assignment_expression "pcVar5 = __dest + local_24 + 0x80" identifier = (binary_expression "__dest + local_24 + 0x80" (binary_expression "__dest + local_24" identifier + identifier) + number_literal)) ;) (expression_statement "local_24 = local_24 + 0x80;" (assignment_expression "local_24 = local_24 + 0x80" identifier = (binary_expression "local_24 + 0x80" identifier + number_literal)) ;) })) (expression_statement "*pcVar2 = (char)uVar3;" (assignment_expression "*pcVar2 = (char)uVar3" (pointer_expression "*pcVar2" * identifier) = (cast_expression "(char)uVar3" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = pcVar2 + 1;" (assignment_expression "pcVar2 = pcVar2 + 1" identifier = (binary_expression "pcVar2 + 1" identifier + number_literal)) ;) })) (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "sVar4 = mbstowcs((wchar_t *)0x0,pcVar2,local_24);" (assignment_expression "sVar4 = mbstowcs((wchar_t *)0x0,pcVar2,local_24)" identifier = (call_expression "mbstowcs((wchar_t *)0x0,pcVar2,local_24)" identifier (argument_list "((wchar_t *)0x0,pcVar2,local_24)" ( (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier )))) ;) (if_statement "if (sVar4 == 0xffffffff) {\n      pcVar5 = (char *)dcgettext(0,"symbol name not recognised in the current locale",5);\n      as_warn(pcVar5);\n    }" if (parenthesized_expression "(sVar4 == 0xffffffff)" ( (binary_expression "sVar4 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      pcVar5 = (char *)dcgettext(0,"symbol name not recognised in the current locale",5);\n      as_warn(pcVar5);\n    }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"symbol name not recognised in the current locale",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"symbol name not recognised in the current locale",5)" identifier = (cast_expression "(char *)dcgettext(0,"symbol name not recognised in the current locale",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"symbol name not recognised in the current locale",5)" identifier (argument_list "(0,"symbol name not recognised in the current locale",5)" ( number_literal , (string_literal ""symbol name not recognised in the current locale"" " string_content ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar5);" (call_expression "as_warn(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) })) }) (else_clause "else {\n    if (((lex_type[bVar1] & 2) == 0) && ((bVar1 != 1 || (input_from_string == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar7 + 1;\n        bVar1 = *pbVar7;\n        pbVar7 = pbVar6;\n      } while ((lex_type[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (input_from_string != 0));\n    iVar8 = (int)pbVar6 - (int)input_line_pointer;\n    input_line_pointer = (char *)pbVar6;\n    __dest = (char *)xmalloc(iVar8);\n    memcpy(__dest,pcVar2,iVar8 - 1);\n    __dest[iVar8 + -1] = '\0';\n    if ((lex_type[bVar1] & 4) == 0) {\n      input_line_pointer = input_line_pointer + -1;\n    }\n  }" else (compound_statement "{\n    if (((lex_type[bVar1] & 2) == 0) && ((bVar1 != 1 || (input_from_string == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar7 + 1;\n        bVar1 = *pbVar7;\n        pbVar7 = pbVar6;\n      } while ((lex_type[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (input_from_string != 0));\n    iVar8 = (int)pbVar6 - (int)input_line_pointer;\n    input_line_pointer = (char *)pbVar6;\n    __dest = (char *)xmalloc(iVar8);\n    memcpy(__dest,pcVar2,iVar8 - 1);\n    __dest[iVar8 + -1] = '\0';\n    if ((lex_type[bVar1] & 4) == 0) {\n      input_line_pointer = input_line_pointer + -1;\n    }\n  }" { (if_statement "if (((lex_type[bVar1] & 2) == 0) && ((bVar1 != 1 || (input_from_string == 0))))\n    goto LAB_0003248e;" if (parenthesized_expression "(((lex_type[bVar1] & 2) == 0) && ((bVar1 != 1 || (input_from_string == 0))))" ( (binary_expression "((lex_type[bVar1] & 2) == 0) && ((bVar1 != 1 || (input_from_string == 0)))" (parenthesized_expression "((lex_type[bVar1] & 2) == 0)" ( (binary_expression "(lex_type[bVar1] & 2) == 0" (parenthesized_expression "(lex_type[bVar1] & 2)" ( (binary_expression "lex_type[bVar1] & 2" (subscript_expression "lex_type[bVar1]" identifier [ identifier ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "((bVar1 != 1 || (input_from_string == 0)))" ( (parenthesized_expression "(bVar1 != 1 || (input_from_string == 0))" ( (binary_expression "bVar1 != 1 || (input_from_string == 0)" (binary_expression "bVar1 != 1" identifier != number_literal) || (parenthesized_expression "(input_from_string == 0)" ( (binary_expression "input_from_string == 0" identifier == number_literal) ))) )) ))) )) (goto_statement "goto LAB_0003248e;" goto statement_identifier ;)) (do_statement "do {\n      do {\n        pbVar6 = pbVar7 + 1;\n        bVar1 = *pbVar7;\n        pbVar7 = pbVar6;\n      } while ((lex_type[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (input_from_string != 0));" do (compound_statement "{\n      do {\n        pbVar6 = pbVar7 + 1;\n        bVar1 = *pbVar7;\n        pbVar7 = pbVar6;\n      } while ((lex_type[bVar1] & 1) != 0);\n    }" { (do_statement "do {\n        pbVar6 = pbVar7 + 1;\n        bVar1 = *pbVar7;\n        pbVar7 = pbVar6;\n      } while ((lex_type[bVar1] & 1) != 0);" do (compound_statement "{\n        pbVar6 = pbVar7 + 1;\n        bVar1 = *pbVar7;\n        pbVar7 = pbVar6;\n      }" { (expression_statement "pbVar6 = pbVar7 + 1;" (assignment_expression "pbVar6 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *pbVar7;" (assignment_expression "bVar1 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) (expression_statement "pbVar7 = pbVar6;" (assignment_expression "pbVar7 = pbVar6" identifier = identifier) ;) }) while (parenthesized_expression "((lex_type[bVar1] & 1) != 0)" ( (binary_expression "(lex_type[bVar1] & 1) != 0" (parenthesized_expression "(lex_type[bVar1] & 1)" ( (binary_expression "lex_type[bVar1] & 1" (subscript_expression "lex_type[bVar1]" identifier [ identifier ]) & number_literal) )) != number_literal) )) ;) }) while (parenthesized_expression "((bVar1 == 1) && (input_from_string != 0))" ( (binary_expression "(bVar1 == 1) && (input_from_string != 0)" (parenthesized_expression "(bVar1 == 1)" ( (binary_expression "bVar1 == 1" identifier == number_literal) )) && (parenthesized_expression "(input_from_string != 0)" ( (binary_expression "input_from_string != 0" identifier != number_literal) ))) )) ;) (expression_statement "iVar8 = (int)pbVar6 - (int)input_line_pointer;" (assignment_expression "iVar8 = (int)pbVar6 - (int)input_line_pointer" identifier = (binary_expression "(int)pbVar6 - (int)input_line_pointer" (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)input_line_pointer" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "input_line_pointer = (char *)pbVar6;" (assignment_expression "input_line_pointer = (char *)pbVar6" identifier = (cast_expression "(char *)pbVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "__dest = (char *)xmalloc(iVar8);" (assignment_expression "__dest = (char *)xmalloc(iVar8)" identifier = (cast_expression "(char *)xmalloc(iVar8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar8)" identifier (argument_list "(iVar8)" ( identifier ))))) ;) (expression_statement "memcpy(__dest,pcVar2,iVar8 - 1);" (call_expression "memcpy(__dest,pcVar2,iVar8 - 1)" identifier (argument_list "(__dest,pcVar2,iVar8 - 1)" ( identifier , identifier , (binary_expression "iVar8 - 1" identifier - number_literal) ))) ;) (expression_statement "__dest[iVar8 + -1] = '\0';" (assignment_expression "__dest[iVar8 + -1] = '\0'" (subscript_expression "__dest[iVar8 + -1]" identifier [ (binary_expression "iVar8 + -1" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((lex_type[bVar1] & 4) == 0) {\n      input_line_pointer = input_line_pointer + -1;\n    }" if (parenthesized_expression "((lex_type[bVar1] & 4) == 0)" ( (binary_expression "(lex_type[bVar1] & 4) == 0" (parenthesized_expression "(lex_type[bVar1] & 4)" ( (binary_expression "lex_type[bVar1] & 4" (subscript_expression "lex_type[bVar1]" identifier [ identifier ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      input_line_pointer = input_line_pointer + -1;\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)) ;) })) }))) (expression_statement "pbVar7 = (byte *)input_line_pointer;" (assignment_expression "pbVar7 = (byte *)input_line_pointer" identifier = (cast_expression "(byte *)input_line_pointer" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pcVar2 != __dest) {\n    if (*input_line_pointer == ' ') {\n      input_line_pointer = input_line_pointer + 1;\n    }\n    return __dest;\n  }" if (parenthesized_expression "(pcVar2 != __dest)" ( (binary_expression "pcVar2 != __dest" identifier != identifier) )) (compound_statement "{\n    if (*input_line_pointer == ' ') {\n      input_line_pointer = input_line_pointer + 1;\n    }\n    return __dest;\n  }" { (if_statement "if (*input_line_pointer == ' ') {\n      input_line_pointer = input_line_pointer + 1;\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    }" { (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)) ;) })) (return_statement "return __dest;" return identifier ;) })) (labeled_statement "LAB_0003248e:\n  input_line_pointer = (char *)pbVar7;" statement_identifier : (expression_statement "input_line_pointer = (char *)pbVar7;" (assignment_expression "input_line_pointer = (char *)pbVar7" identifier = (cast_expression "(char *)pbVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "pcVar2 = (char *)dcgettext(0,"expected symbol name",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"expected symbol name",5)" identifier = (cast_expression "(char *)dcgettext(0,"expected symbol name",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"expected symbol name",5)" identifier (argument_list "(0,"expected symbol name",5)" ( number_literal , (string_literal ""expected symbol name"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar2);" (call_expression "as_bad(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (expression_statement "ignore_rest_of_line();" (call_expression "ignore_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit "byte * FUN_00032390(void)\n\n{\n  byte bVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  size_t sVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *__s;\n  size_t local_24;\n  \n  __s = DAT_000817b4;\n  pbVar5 = DAT_000817b4 + 1;\n  bVar1 = *DAT_000817b4;\n  if (bVar1 == 0x22) {\n    DAT_000817b4 = pbVar5;\n    pbVar6 = (byte *)xmalloc(0x81);\n    local_24 = 0x80;\n    pbVar5 = pbVar6 + 0x80;\n    __s = pbVar6;\n    while (uVar3 = FUN_00032160(), uVar3 < 0x100) {\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }\n    *__s = 0;\n    sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);\n    if (sVar4 == 0xffffffff) {\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }\n  }\n  else {\n    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));\n    iVar7 = (int)pbVar6 - (int)DAT_000817b4;\n    DAT_000817b4 = pbVar6;\n    pbVar6 = (byte *)xmalloc(iVar7);\n    memcpy(pbVar6,__s,iVar7 - 1);\n    pbVar6[iVar7 + -1] = 0;\n    if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }\n  }\n  pbVar5 = DAT_000817b4;\n  if (__s != pbVar6) {\n    if (*DAT_000817b4 == 0x20) {\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }\n    return pbVar6;\n  }\nLAB_0003248e:\n  DAT_000817b4 = pbVar5;\n  uVar2 = dcgettext(0,"expected symbol name",5);\n  FUN_0002c070(uVar2);\n  FUN_0002e1d0();\n  return (byte *)0x0;\n}\n\n" (function_definition "byte * FUN_00032390(void)\n\n{\n  byte bVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  size_t sVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *__s;\n  size_t local_24;\n  \n  __s = DAT_000817b4;\n  pbVar5 = DAT_000817b4 + 1;\n  bVar1 = *DAT_000817b4;\n  if (bVar1 == 0x22) {\n    DAT_000817b4 = pbVar5;\n    pbVar6 = (byte *)xmalloc(0x81);\n    local_24 = 0x80;\n    pbVar5 = pbVar6 + 0x80;\n    __s = pbVar6;\n    while (uVar3 = FUN_00032160(), uVar3 < 0x100) {\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }\n    *__s = 0;\n    sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);\n    if (sVar4 == 0xffffffff) {\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }\n  }\n  else {\n    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));\n    iVar7 = (int)pbVar6 - (int)DAT_000817b4;\n    DAT_000817b4 = pbVar6;\n    pbVar6 = (byte *)xmalloc(iVar7);\n    memcpy(pbVar6,__s,iVar7 - 1);\n    pbVar6[iVar7 + -1] = 0;\n    if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }\n  }\n  pbVar5 = DAT_000817b4;\n  if (__s != pbVar6) {\n    if (*DAT_000817b4 == 0x20) {\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }\n    return pbVar6;\n  }\nLAB_0003248e:\n  DAT_000817b4 = pbVar5;\n  uVar2 = dcgettext(0,"expected symbol name",5);\n  FUN_0002c070(uVar2);\n  FUN_0002e1d0();\n  return (byte *)0x0;\n}" type_identifier (pointer_declarator "* FUN_00032390(void)" * (function_declarator "FUN_00032390(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  byte bVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  size_t sVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *__s;\n  size_t local_24;\n  \n  __s = DAT_000817b4;\n  pbVar5 = DAT_000817b4 + 1;\n  bVar1 = *DAT_000817b4;\n  if (bVar1 == 0x22) {\n    DAT_000817b4 = pbVar5;\n    pbVar6 = (byte *)xmalloc(0x81);\n    local_24 = 0x80;\n    pbVar5 = pbVar6 + 0x80;\n    __s = pbVar6;\n    while (uVar3 = FUN_00032160(), uVar3 < 0x100) {\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }\n    *__s = 0;\n    sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);\n    if (sVar4 == 0xffffffff) {\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }\n  }\n  else {\n    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));\n    iVar7 = (int)pbVar6 - (int)DAT_000817b4;\n    DAT_000817b4 = pbVar6;\n    pbVar6 = (byte *)xmalloc(iVar7);\n    memcpy(pbVar6,__s,iVar7 - 1);\n    pbVar6[iVar7 + -1] = 0;\n    if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }\n  }\n  pbVar5 = DAT_000817b4;\n  if (__s != pbVar6) {\n    if (*DAT_000817b4 == 0x20) {\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }\n    return pbVar6;\n  }\nLAB_0003248e:\n  DAT_000817b4 = pbVar5;\n  uVar2 = dcgettext(0,"expected symbol name",5);\n  FUN_0002c070(uVar2);\n  FUN_0002e1d0();\n  return (byte *)0x0;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "size_t local_24;" primitive_type identifier ;) (expression_statement "__s = DAT_000817b4;" (assignment_expression "__s = DAT_000817b4" identifier = identifier) ;) (expression_statement "pbVar5 = DAT_000817b4 + 1;" (assignment_expression "pbVar5 = DAT_000817b4 + 1" identifier = (binary_expression "DAT_000817b4 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *DAT_000817b4;" (assignment_expression "bVar1 = *DAT_000817b4" identifier = (pointer_expression "*DAT_000817b4" * identifier)) ;) (if_statement "if (bVar1 == 0x22) {\n    DAT_000817b4 = pbVar5;\n    pbVar6 = (byte *)xmalloc(0x81);\n    local_24 = 0x80;\n    pbVar5 = pbVar6 + 0x80;\n    __s = pbVar6;\n    while (uVar3 = FUN_00032160(), uVar3 < 0x100) {\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }\n    *__s = 0;\n    sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);\n    if (sVar4 == 0xffffffff) {\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }\n  }\n  else {\n    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));\n    iVar7 = (int)pbVar6 - (int)DAT_000817b4;\n    DAT_000817b4 = pbVar6;\n    pbVar6 = (byte *)xmalloc(iVar7);\n    memcpy(pbVar6,__s,iVar7 - 1);\n    pbVar6[iVar7 + -1] = 0;\n    if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }\n  }" if (parenthesized_expression "(bVar1 == 0x22)" ( (binary_expression "bVar1 == 0x22" identifier == number_literal) )) (compound_statement "{\n    DAT_000817b4 = pbVar5;\n    pbVar6 = (byte *)xmalloc(0x81);\n    local_24 = 0x80;\n    pbVar5 = pbVar6 + 0x80;\n    __s = pbVar6;\n    while (uVar3 = FUN_00032160(), uVar3 < 0x100) {\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }\n    *__s = 0;\n    sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);\n    if (sVar4 == 0xffffffff) {\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }\n  }" { (expression_statement "DAT_000817b4 = pbVar5;" (assignment_expression "DAT_000817b4 = pbVar5" identifier = identifier) ;) (expression_statement "pbVar6 = (byte *)xmalloc(0x81);" (assignment_expression "pbVar6 = (byte *)xmalloc(0x81)" identifier = (cast_expression "(byte *)xmalloc(0x81)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x81)" identifier (argument_list "(0x81)" ( number_literal ))))) ;) (expression_statement "local_24 = 0x80;" (assignment_expression "local_24 = 0x80" identifier = number_literal) ;) (expression_statement "pbVar5 = pbVar6 + 0x80;" (assignment_expression "pbVar5 = pbVar6 + 0x80" identifier = (binary_expression "pbVar6 + 0x80" identifier + number_literal)) ;) (expression_statement "__s = pbVar6;" (assignment_expression "__s = pbVar6" identifier = identifier) ;) (while_statement "while (uVar3 = FUN_00032160(), uVar3 < 0x100) {\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }" while (parenthesized_expression "(uVar3 = FUN_00032160(), uVar3 < 0x100)" ( (comma_expression "uVar3 = FUN_00032160(), uVar3 < 0x100" (assignment_expression "uVar3 = FUN_00032160()" identifier = (call_expression "FUN_00032160()" identifier (argument_list "()" ( )))) , (binary_expression "uVar3 < 0x100" identifier < number_literal)) )) (compound_statement "{\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }" { (if_statement "if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }" if (parenthesized_expression "(pbVar5 <= __s)" ( (binary_expression "pbVar5 <= __s" identifier <= identifier) )) (compound_statement "{\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }" { (expression_statement "iVar7 = (int)__s - (int)pbVar6;" (assignment_expression "iVar7 = (int)__s - (int)pbVar6" identifier = (binary_expression "(int)__s - (int)pbVar6" (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);" (assignment_expression "pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81)" identifier = (cast_expression "(byte *)xrealloc(pbVar6,local_24 + 0x81)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(pbVar6,local_24 + 0x81)" identifier (argument_list "(pbVar6,local_24 + 0x81)" ( identifier , (binary_expression "local_24 + 0x81" identifier + number_literal) ))))) ;) (expression_statement "__s = pbVar6 + iVar7;" (assignment_expression "__s = pbVar6 + iVar7" identifier = (binary_expression "pbVar6 + iVar7" identifier + identifier)) ;) (expression_statement "pbVar5 = pbVar6 + local_24 + 0x80;" (assignment_expression "pbVar5 = pbVar6 + local_24 + 0x80" identifier = (binary_expression "pbVar6 + local_24 + 0x80" (binary_expression "pbVar6 + local_24" identifier + identifier) + number_literal)) ;) (expression_statement "local_24 = local_24 + 0x80;" (assignment_expression "local_24 = local_24 + 0x80" identifier = (binary_expression "local_24 + 0x80" identifier + number_literal)) ;) })) (expression_statement "*__s = (byte)uVar3;" (assignment_expression "*__s = (byte)uVar3" (pointer_expression "*__s" * identifier) = (cast_expression "(byte)uVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" identifier = (binary_expression "__s + 1" identifier + number_literal)) ;) })) (expression_statement "*__s = 0;" (assignment_expression "*__s = 0" (pointer_expression "*__s" * identifier) = number_literal) ;) (expression_statement "sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);" (assignment_expression "sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24)" identifier = (call_expression "mbstowcs((wchar_t *)0x0,(char *)__s,local_24)" identifier (argument_list "((wchar_t *)0x0,(char *)__s,local_24)" ( (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (sVar4 == 0xffffffff) {\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }" if (parenthesized_expression "(sVar4 == 0xffffffff)" ( (binary_expression "sVar4 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }" { (expression_statement "uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);" (assignment_expression "uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5)" identifier = (call_expression "dcgettext(0,"symbol name not recognised in the current locale",5)" identifier (argument_list "(0,"symbol name not recognised in the current locale",5)" ( number_literal , (string_literal ""symbol name not recognised in the current locale"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002bf90(uVar2);" (call_expression "FUN_0002bf90(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) })) }) (else_clause "else {\n    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));\n    iVar7 = (int)pbVar6 - (int)DAT_000817b4;\n    DAT_000817b4 = pbVar6;\n    pbVar6 = (byte *)xmalloc(iVar7);\n    memcpy(pbVar6,__s,iVar7 - 1);\n    pbVar6[iVar7 + -1] = 0;\n    if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }\n  }" else (compound_statement "{\n    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));\n    iVar7 = (int)pbVar6 - (int)DAT_000817b4;\n    DAT_000817b4 = pbVar6;\n    pbVar6 = (byte *)xmalloc(iVar7);\n    memcpy(pbVar6,__s,iVar7 - 1);\n    pbVar6[iVar7 + -1] = 0;\n    if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }\n  }" { (if_statement "if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;" if (parenthesized_expression "((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))" ( (binary_expression "(((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0)))" (parenthesized_expression "(((&DAT_000783c0)[bVar1] & 2) == 0)" ( (binary_expression "((&DAT_000783c0)[bVar1] & 2) == 0" (parenthesized_expression "((&DAT_000783c0)[bVar1] & 2)" ( (binary_expression "(&DAT_000783c0)[bVar1] & 2" (subscript_expression "(&DAT_000783c0)[bVar1]" (parenthesized_expression "(&DAT_000783c0)" ( (pointer_expression "&DAT_000783c0" & identifier) )) [ identifier ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "((bVar1 != 1 || (DAT_00080d5c == 0)))" ( (parenthesized_expression "(bVar1 != 1 || (DAT_00080d5c == 0))" ( (binary_expression "bVar1 != 1 || (DAT_00080d5c == 0)" (binary_expression "bVar1 != 1" identifier != number_literal) || (parenthesized_expression "(DAT_00080d5c == 0)" ( (binary_expression "DAT_00080d5c == 0" identifier == number_literal) ))) )) ))) )) (goto_statement "goto LAB_0003248e;" goto statement_identifier ;)) (do_statement "do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));" do (compound_statement "{\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    }" { (do_statement "do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);" do (compound_statement "{\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      }" { (expression_statement "pbVar6 = pbVar5 + 1;" (assignment_expression "pbVar6 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *pbVar5;" (assignment_expression "bVar1 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) ;) (expression_statement "pbVar5 = pbVar6;" (assignment_expression "pbVar5 = pbVar6" identifier = identifier) ;) }) while (parenthesized_expression "(((&DAT_000783c0)[bVar1] & 1) != 0)" ( (binary_expression "((&DAT_000783c0)[bVar1] & 1) != 0" (parenthesized_expression "((&DAT_000783c0)[bVar1] & 1)" ( (binary_expression "(&DAT_000783c0)[bVar1] & 1" (subscript_expression "(&DAT_000783c0)[bVar1]" (parenthesized_expression "(&DAT_000783c0)" ( (pointer_expression "&DAT_000783c0" & identifier) )) [ identifier ]) & number_literal) )) != number_literal) )) ;) }) while (parenthesized_expression "((bVar1 == 1) && (DAT_00080d5c != 0))" ( (binary_expression "(bVar1 == 1) && (DAT_00080d5c != 0)" (parenthesized_expression "(bVar1 == 1)" ( (binary_expression "bVar1 == 1" identifier == number_literal) )) && (parenthesized_expression "(DAT_00080d5c != 0)" ( (binary_expression "DAT_00080d5c != 0" identifier != number_literal) ))) )) ;) (expression_statement "iVar7 = (int)pbVar6 - (int)DAT_000817b4;" (assignment_expression "iVar7 = (int)pbVar6 - (int)DAT_000817b4" identifier = (binary_expression "(int)pbVar6 - (int)DAT_000817b4" (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)DAT_000817b4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "DAT_000817b4 = pbVar6;" (assignment_expression "DAT_000817b4 = pbVar6" identifier = identifier) ;) (expression_statement "pbVar6 = (byte *)xmalloc(iVar7);" (assignment_expression "pbVar6 = (byte *)xmalloc(iVar7)" identifier = (cast_expression "(byte *)xmalloc(iVar7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))))) ;) (expression_statement "memcpy(pbVar6,__s,iVar7 - 1);" (call_expression "memcpy(pbVar6,__s,iVar7 - 1)" identifier (argument_list "(pbVar6,__s,iVar7 - 1)" ( identifier , identifier , (binary_expression "iVar7 - 1" identifier - number_literal) ))) ;) (expression_statement "pbVar6[iVar7 + -1] = 0;" (assignment_expression "pbVar6[iVar7 + -1] = 0" (subscript_expression "pbVar6[iVar7 + -1]" identifier [ (binary_expression "iVar7 + -1" identifier + number_literal) ]) = number_literal) ;) (if_statement "if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }" if (parenthesized_expression "(((&DAT_000783c0)[bVar1] & 4) == 0)" ( (binary_expression "((&DAT_000783c0)[bVar1] & 4) == 0" (parenthesized_expression "((&DAT_000783c0)[bVar1] & 4)" ( (binary_expression "(&DAT_000783c0)[bVar1] & 4" (subscript_expression "(&DAT_000783c0)[bVar1]" (parenthesized_expression "(&DAT_000783c0)" ( (pointer_expression "&DAT_000783c0" & identifier) )) [ identifier ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }" { (expression_statement "DAT_000817b4 = DAT_000817b4 + -1;" (assignment_expression "DAT_000817b4 = DAT_000817b4 + -1" identifier = (binary_expression "DAT_000817b4 + -1" identifier + number_literal)) ;) })) }))) (expression_statement "pbVar5 = DAT_000817b4;" (assignment_expression "pbVar5 = DAT_000817b4" identifier = identifier) ;) (if_statement "if (__s != pbVar6) {\n    if (*DAT_000817b4 == 0x20) {\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }\n    return pbVar6;\n  }" if (parenthesized_expression "(__s != pbVar6)" ( (binary_expression "__s != pbVar6" identifier != identifier) )) (compound_statement "{\n    if (*DAT_000817b4 == 0x20) {\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }\n    return pbVar6;\n  }" { (if_statement "if (*DAT_000817b4 == 0x20) {\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }" if (parenthesized_expression "(*DAT_000817b4 == 0x20)" ( (binary_expression "*DAT_000817b4 == 0x20" (pointer_expression "*DAT_000817b4" * identifier) == number_literal) )) (compound_statement "{\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }" { (expression_statement "DAT_000817b4 = DAT_000817b4 + 1;" (assignment_expression "DAT_000817b4 = DAT_000817b4 + 1" identifier = (binary_expression "DAT_000817b4 + 1" identifier + number_literal)) ;) })) (return_statement "return pbVar6;" return identifier ;) })) (labeled_statement "LAB_0003248e:\n  DAT_000817b4 = pbVar5;" statement_identifier : (expression_statement "DAT_000817b4 = pbVar5;" (assignment_expression "DAT_000817b4 = pbVar5" identifier = identifier) ;)) (expression_statement "uVar2 = dcgettext(0,"expected symbol name",5);" (assignment_expression "uVar2 = dcgettext(0,"expected symbol name",5)" identifier = (call_expression "dcgettext(0,"expected symbol name",5)" identifier (argument_list "(0,"expected symbol name",5)" ( number_literal , (string_literal ""expected symbol name"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002c070(uVar2);" (call_expression "FUN_0002c070(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (expression_statement "FUN_0002e1d0();" (call_expression "FUN_0002e1d0()" identifier (argument_list "()" ( ))) ;) (return_statement "return (byte *)0x0;" return (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT < LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) & LIT) )) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) & LIT) )) != LIT) )) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT - LIT) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (return_statement return IDENT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })))
(function_definition "byte * FUN_00032390(void)\n\n{\n  byte bVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  size_t sVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *__s;\n  size_t local_24;\n  \n  __s = DAT_000817b4;\n  pbVar5 = DAT_000817b4 + 1;\n  bVar1 = *DAT_000817b4;\n  if (bVar1 == 0x22) {\n    DAT_000817b4 = pbVar5;\n    pbVar6 = (byte *)xmalloc(0x81);\n    local_24 = 0x80;\n    pbVar5 = pbVar6 + 0x80;\n    __s = pbVar6;\n    while (uVar3 = FUN_00032160(), uVar3 < 0x100) {\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }\n    *__s = 0;\n    sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);\n    if (sVar4 == 0xffffffff) {\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }\n  }\n  else {\n    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));\n    iVar7 = (int)pbVar6 - (int)DAT_000817b4;\n    DAT_000817b4 = pbVar6;\n    pbVar6 = (byte *)xmalloc(iVar7);\n    memcpy(pbVar6,__s,iVar7 - 1);\n    pbVar6[iVar7 + -1] = 0;\n    if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }\n  }\n  pbVar5 = DAT_000817b4;\n  if (__s != pbVar6) {\n    if (*DAT_000817b4 == 0x20) {\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }\n    return pbVar6;\n  }\nLAB_0003248e:\n  DAT_000817b4 = pbVar5;\n  uVar2 = dcgettext(0,"expected symbol name",5);\n  FUN_0002c070(uVar2);\n  FUN_0002e1d0();\n  return (byte *)0x0;\n}" (type_identifier "byte") (pointer_declarator "* FUN_00032390(void)" (* "*") (function_declarator "FUN_00032390(void)" (identifier "FUN_00032390") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")")))) (compound_statement "{\n  byte bVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  size_t sVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *__s;\n  size_t local_24;\n  \n  __s = DAT_000817b4;\n  pbVar5 = DAT_000817b4 + 1;\n  bVar1 = *DAT_000817b4;\n  if (bVar1 == 0x22) {\n    DAT_000817b4 = pbVar5;\n    pbVar6 = (byte *)xmalloc(0x81);\n    local_24 = 0x80;\n    pbVar5 = pbVar6 + 0x80;\n    __s = pbVar6;\n    while (uVar3 = FUN_00032160(), uVar3 < 0x100) {\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }\n    *__s = 0;\n    sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);\n    if (sVar4 == 0xffffffff) {\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }\n  }\n  else {\n    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));\n    iVar7 = (int)pbVar6 - (int)DAT_000817b4;\n    DAT_000817b4 = pbVar6;\n    pbVar6 = (byte *)xmalloc(iVar7);\n    memcpy(pbVar6,__s,iVar7 - 1);\n    pbVar6[iVar7 + -1] = 0;\n    if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }\n  }\n  pbVar5 = DAT_000817b4;\n  if (__s != pbVar6) {\n    if (*DAT_000817b4 == 0x20) {\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }\n    return pbVar6;\n  }\nLAB_0003248e:\n  DAT_000817b4 = pbVar5;\n  uVar2 = dcgettext(0,"expected symbol name",5);\n  FUN_0002c070(uVar2);\n  FUN_0002e1d0();\n  return (byte *)0x0;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "size_t sVar4;" (primitive_type "size_t") (identifier "sVar4") (; ";")) (declaration "byte *pbVar5;" (type_identifier "byte") (pointer_declarator "*pbVar5" (* "*") (identifier "pbVar5")) (; ";")) (declaration "byte *pbVar6;" (type_identifier "byte") (pointer_declarator "*pbVar6" (* "*") (identifier "pbVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "byte *__s;" (type_identifier "byte") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "size_t local_24;" (primitive_type "size_t") (identifier "local_24") (; ";")) (expression_statement "__s = DAT_000817b4;" (assignment_expression "__s = DAT_000817b4" (identifier "__s") (= "=") (identifier "DAT_000817b4")) (; ";")) (expression_statement "pbVar5 = DAT_000817b4 + 1;" (assignment_expression "pbVar5 = DAT_000817b4 + 1" (identifier "pbVar5") (= "=") (binary_expression "DAT_000817b4 + 1" (identifier "DAT_000817b4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar1 = *DAT_000817b4;" (assignment_expression "bVar1 = *DAT_000817b4" (identifier "bVar1") (= "=") (pointer_expression "*DAT_000817b4" (* "*") (identifier "DAT_000817b4"))) (; ";")) (if_statement "if (bVar1 == 0x22) {\n    DAT_000817b4 = pbVar5;\n    pbVar6 = (byte *)xmalloc(0x81);\n    local_24 = 0x80;\n    pbVar5 = pbVar6 + 0x80;\n    __s = pbVar6;\n    while (uVar3 = FUN_00032160(), uVar3 < 0x100) {\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }\n    *__s = 0;\n    sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);\n    if (sVar4 == 0xffffffff) {\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }\n  }\n  else {\n    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));\n    iVar7 = (int)pbVar6 - (int)DAT_000817b4;\n    DAT_000817b4 = pbVar6;\n    pbVar6 = (byte *)xmalloc(iVar7);\n    memcpy(pbVar6,__s,iVar7 - 1);\n    pbVar6[iVar7 + -1] = 0;\n    if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }\n  }" (if "if") (parenthesized_expression "(bVar1 == 0x22)" (( "(") (binary_expression "bVar1 == 0x22" (identifier "bVar1") (== "==") (number_literal "0x22")) () ")")) (compound_statement "{\n    DAT_000817b4 = pbVar5;\n    pbVar6 = (byte *)xmalloc(0x81);\n    local_24 = 0x80;\n    pbVar5 = pbVar6 + 0x80;\n    __s = pbVar6;\n    while (uVar3 = FUN_00032160(), uVar3 < 0x100) {\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }\n    *__s = 0;\n    sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);\n    if (sVar4 == 0xffffffff) {\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }\n  }" ({ "{") (expression_statement "DAT_000817b4 = pbVar5;" (assignment_expression "DAT_000817b4 = pbVar5" (identifier "DAT_000817b4") (= "=") (identifier "pbVar5")) (; ";")) (expression_statement "pbVar6 = (byte *)xmalloc(0x81);" (assignment_expression "pbVar6 = (byte *)xmalloc(0x81)" (identifier "pbVar6") (= "=") (cast_expression "(byte *)xmalloc(0x81)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x81)" (identifier "xmalloc") (argument_list "(0x81)" (( "(") (number_literal "0x81") () ")"))))) (; ";")) (expression_statement "local_24 = 0x80;" (assignment_expression "local_24 = 0x80" (identifier "local_24") (= "=") (number_literal "0x80")) (; ";")) (expression_statement "pbVar5 = pbVar6 + 0x80;" (assignment_expression "pbVar5 = pbVar6 + 0x80" (identifier "pbVar5") (= "=") (binary_expression "pbVar6 + 0x80" (identifier "pbVar6") (+ "+") (number_literal "0x80"))) (; ";")) (expression_statement "__s = pbVar6;" (assignment_expression "__s = pbVar6" (identifier "__s") (= "=") (identifier "pbVar6")) (; ";")) (while_statement "while (uVar3 = FUN_00032160(), uVar3 < 0x100) {\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }" (while "while") (parenthesized_expression "(uVar3 = FUN_00032160(), uVar3 < 0x100)" (( "(") (comma_expression "uVar3 = FUN_00032160(), uVar3 < 0x100" (assignment_expression "uVar3 = FUN_00032160()" (identifier "uVar3") (= "=") (call_expression "FUN_00032160()" (identifier "FUN_00032160") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "uVar3 < 0x100" (identifier "uVar3") (< "<") (number_literal "0x100"))) () ")")) (compound_statement "{\n      if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }\n      *__s = (byte)uVar3;\n      __s = __s + 1;\n    }" ({ "{") (if_statement "if (pbVar5 <= __s) {\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }" (if "if") (parenthesized_expression "(pbVar5 <= __s)" (( "(") (binary_expression "pbVar5 <= __s" (identifier "pbVar5") (<= "<=") (identifier "__s")) () ")")) (compound_statement "{\n        iVar7 = (int)__s - (int)pbVar6;\n        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);\n        __s = pbVar6 + iVar7;\n        pbVar5 = pbVar6 + local_24 + 0x80;\n        local_24 = local_24 + 0x80;\n      }" ({ "{") (expression_statement "iVar7 = (int)__s - (int)pbVar6;" (assignment_expression "iVar7 = (int)__s - (int)pbVar6" (identifier "iVar7") (= "=") (binary_expression "(int)__s - (int)pbVar6" (cast_expression "(int)__s" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__s")) (- "-") (cast_expression "(int)pbVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar6")))) (; ";")) (expression_statement "pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);" (assignment_expression "pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81)" (identifier "pbVar6") (= "=") (cast_expression "(byte *)xrealloc(pbVar6,local_24 + 0x81)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xrealloc(pbVar6,local_24 + 0x81)" (identifier "xrealloc") (argument_list "(pbVar6,local_24 + 0x81)" (( "(") (identifier "pbVar6") (, ",") (binary_expression "local_24 + 0x81" (identifier "local_24") (+ "+") (number_literal "0x81")) () ")"))))) (; ";")) (expression_statement "__s = pbVar6 + iVar7;" (assignment_expression "__s = pbVar6 + iVar7" (identifier "__s") (= "=") (binary_expression "pbVar6 + iVar7" (identifier "pbVar6") (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "pbVar5 = pbVar6 + local_24 + 0x80;" (assignment_expression "pbVar5 = pbVar6 + local_24 + 0x80" (identifier "pbVar5") (= "=") (binary_expression "pbVar6 + local_24 + 0x80" (binary_expression "pbVar6 + local_24" (identifier "pbVar6") (+ "+") (identifier "local_24")) (+ "+") (number_literal "0x80"))) (; ";")) (expression_statement "local_24 = local_24 + 0x80;" (assignment_expression "local_24 = local_24 + 0x80" (identifier "local_24") (= "=") (binary_expression "local_24 + 0x80" (identifier "local_24") (+ "+") (number_literal "0x80"))) (; ";")) (} "}"))) (expression_statement "*__s = (byte)uVar3;" (assignment_expression "*__s = (byte)uVar3" (pointer_expression "*__s" (* "*") (identifier "__s")) (= "=") (cast_expression "(byte)uVar3" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar3"))) (; ";")) (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" (identifier "__s") (= "=") (binary_expression "__s + 1" (identifier "__s") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*__s = 0;" (assignment_expression "*__s = 0" (pointer_expression "*__s" (* "*") (identifier "__s")) (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);" (assignment_expression "sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24)" (identifier "sVar4") (= "=") (call_expression "mbstowcs((wchar_t *)0x0,(char *)__s,local_24)" (identifier "mbstowcs") (argument_list "((wchar_t *)0x0,(char *)__s,local_24)" (( "(") (cast_expression "(wchar_t *)0x0" (( "(") (type_descriptor "wchar_t *" (type_identifier "wchar_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(char *)__s" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s")) (, ",") (identifier "local_24") () ")")))) (; ";")) (if_statement "if (sVar4 == 0xffffffff) {\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }" (if "if") (parenthesized_expression "(sVar4 == 0xffffffff)" (( "(") (binary_expression "sVar4 == 0xffffffff" (identifier "sVar4") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);\n      FUN_0002bf90(uVar2);\n    }" ({ "{") (expression_statement "uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);" (assignment_expression "uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"symbol name not recognised in the current locale",5)" (identifier "dcgettext") (argument_list "(0,"symbol name not recognised in the current locale",5)" (( "(") (number_literal "0") (, ",") (string_literal ""symbol name not recognised in the current locale"" (" """) (string_content "symbol name not recognised in the current locale") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bf90(uVar2);" (call_expression "FUN_0002bf90(uVar2)" (identifier "FUN_0002bf90") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));\n    iVar7 = (int)pbVar6 - (int)DAT_000817b4;\n    DAT_000817b4 = pbVar6;\n    pbVar6 = (byte *)xmalloc(iVar7);\n    memcpy(pbVar6,__s,iVar7 - 1);\n    pbVar6[iVar7 + -1] = 0;\n    if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }\n  }" (else "else") (compound_statement "{\n    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;\n    do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));\n    iVar7 = (int)pbVar6 - (int)DAT_000817b4;\n    DAT_000817b4 = pbVar6;\n    pbVar6 = (byte *)xmalloc(iVar7);\n    memcpy(pbVar6,__s,iVar7 - 1);\n    pbVar6[iVar7 + -1] = 0;\n    if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }\n  }" ({ "{") (if_statement "if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))\n    goto LAB_0003248e;" (if "if") (parenthesized_expression "((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))" (( "(") (binary_expression "(((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0)))" (parenthesized_expression "(((&DAT_000783c0)[bVar1] & 2) == 0)" (( "(") (binary_expression "((&DAT_000783c0)[bVar1] & 2) == 0" (parenthesized_expression "((&DAT_000783c0)[bVar1] & 2)" (( "(") (binary_expression "(&DAT_000783c0)[bVar1] & 2" (subscript_expression "(&DAT_000783c0)[bVar1]" (parenthesized_expression "(&DAT_000783c0)" (( "(") (pointer_expression "&DAT_000783c0" (& "&") (identifier "DAT_000783c0")) () ")")) ([ "[") (identifier "bVar1") (] "]")) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((bVar1 != 1 || (DAT_00080d5c == 0)))" (( "(") (parenthesized_expression "(bVar1 != 1 || (DAT_00080d5c == 0))" (( "(") (binary_expression "bVar1 != 1 || (DAT_00080d5c == 0)" (binary_expression "bVar1 != 1" (identifier "bVar1") (!= "!=") (number_literal "1")) (|| "||") (parenthesized_expression "(DAT_00080d5c == 0)" (( "(") (binary_expression "DAT_00080d5c == 0" (identifier "DAT_00080d5c") (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0003248e;" (goto "goto") (statement_identifier "LAB_0003248e") (; ";"))) (do_statement "do {\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    } while ((bVar1 == 1) && (DAT_00080d5c != 0));" (do "do") (compound_statement "{\n      do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);\n    }" ({ "{") (do_statement "do {\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      } while (((&DAT_000783c0)[bVar1] & 1) != 0);" (do "do") (compound_statement "{\n        pbVar6 = pbVar5 + 1;\n        bVar1 = *pbVar5;\n        pbVar5 = pbVar6;\n      }" ({ "{") (expression_statement "pbVar6 = pbVar5 + 1;" (assignment_expression "pbVar6 = pbVar5 + 1" (identifier "pbVar6") (= "=") (binary_expression "pbVar5 + 1" (identifier "pbVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar1 = *pbVar5;" (assignment_expression "bVar1 = *pbVar5" (identifier "bVar1") (= "=") (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5"))) (; ";")) (expression_statement "pbVar5 = pbVar6;" (assignment_expression "pbVar5 = pbVar6" (identifier "pbVar5") (= "=") (identifier "pbVar6")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((&DAT_000783c0)[bVar1] & 1) != 0)" (( "(") (binary_expression "((&DAT_000783c0)[bVar1] & 1) != 0" (parenthesized_expression "((&DAT_000783c0)[bVar1] & 1)" (( "(") (binary_expression "(&DAT_000783c0)[bVar1] & 1" (subscript_expression "(&DAT_000783c0)[bVar1]" (parenthesized_expression "(&DAT_000783c0)" (( "(") (pointer_expression "&DAT_000783c0" (& "&") (identifier "DAT_000783c0")) () ")")) ([ "[") (identifier "bVar1") (] "]")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bVar1 == 1) && (DAT_00080d5c != 0))" (( "(") (binary_expression "(bVar1 == 1) && (DAT_00080d5c != 0)" (parenthesized_expression "(bVar1 == 1)" (( "(") (binary_expression "bVar1 == 1" (identifier "bVar1") (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(DAT_00080d5c != 0)" (( "(") (binary_expression "DAT_00080d5c != 0" (identifier "DAT_00080d5c") (!= "!=") (number_literal "0")) () ")"))) () ")")) (; ";")) (expression_statement "iVar7 = (int)pbVar6 - (int)DAT_000817b4;" (assignment_expression "iVar7 = (int)pbVar6 - (int)DAT_000817b4" (identifier "iVar7") (= "=") (binary_expression "(int)pbVar6 - (int)DAT_000817b4" (cast_expression "(int)pbVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar6")) (- "-") (cast_expression "(int)DAT_000817b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_000817b4")))) (; ";")) (expression_statement "DAT_000817b4 = pbVar6;" (assignment_expression "DAT_000817b4 = pbVar6" (identifier "DAT_000817b4") (= "=") (identifier "pbVar6")) (; ";")) (expression_statement "pbVar6 = (byte *)xmalloc(iVar7);" (assignment_expression "pbVar6 = (byte *)xmalloc(iVar7)" (identifier "pbVar6") (= "=") (cast_expression "(byte *)xmalloc(iVar7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(iVar7)" (identifier "xmalloc") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))))) (; ";")) (expression_statement "memcpy(pbVar6,__s,iVar7 - 1);" (call_expression "memcpy(pbVar6,__s,iVar7 - 1)" (identifier "memcpy") (argument_list "(pbVar6,__s,iVar7 - 1)" (( "(") (identifier "pbVar6") (, ",") (identifier "__s") (, ",") (binary_expression "iVar7 - 1" (identifier "iVar7") (- "-") (number_literal "1")) () ")"))) (; ";")) (expression_statement "pbVar6[iVar7 + -1] = 0;" (assignment_expression "pbVar6[iVar7 + -1] = 0" (subscript_expression "pbVar6[iVar7 + -1]" (identifier "pbVar6") ([ "[") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1")) (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (((&DAT_000783c0)[bVar1] & 4) == 0) {\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }" (if "if") (parenthesized_expression "(((&DAT_000783c0)[bVar1] & 4) == 0)" (( "(") (binary_expression "((&DAT_000783c0)[bVar1] & 4) == 0" (parenthesized_expression "((&DAT_000783c0)[bVar1] & 4)" (( "(") (binary_expression "(&DAT_000783c0)[bVar1] & 4" (subscript_expression "(&DAT_000783c0)[bVar1]" (parenthesized_expression "(&DAT_000783c0)" (( "(") (pointer_expression "&DAT_000783c0" (& "&") (identifier "DAT_000783c0")) () ")")) ([ "[") (identifier "bVar1") (] "]")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_000817b4 = DAT_000817b4 + -1;\n    }" ({ "{") (expression_statement "DAT_000817b4 = DAT_000817b4 + -1;" (assignment_expression "DAT_000817b4 = DAT_000817b4 + -1" (identifier "DAT_000817b4") (= "=") (binary_expression "DAT_000817b4 + -1" (identifier "DAT_000817b4") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "pbVar5 = DAT_000817b4;" (assignment_expression "pbVar5 = DAT_000817b4" (identifier "pbVar5") (= "=") (identifier "DAT_000817b4")) (; ";")) (if_statement "if (__s != pbVar6) {\n    if (*DAT_000817b4 == 0x20) {\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }\n    return pbVar6;\n  }" (if "if") (parenthesized_expression "(__s != pbVar6)" (( "(") (binary_expression "__s != pbVar6" (identifier "__s") (!= "!=") (identifier "pbVar6")) () ")")) (compound_statement "{\n    if (*DAT_000817b4 == 0x20) {\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }\n    return pbVar6;\n  }" ({ "{") (if_statement "if (*DAT_000817b4 == 0x20) {\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }" (if "if") (parenthesized_expression "(*DAT_000817b4 == 0x20)" (( "(") (binary_expression "*DAT_000817b4 == 0x20" (pointer_expression "*DAT_000817b4" (* "*") (identifier "DAT_000817b4")) (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n      DAT_000817b4 = DAT_000817b4 + 1;\n    }" ({ "{") (expression_statement "DAT_000817b4 = DAT_000817b4 + 1;" (assignment_expression "DAT_000817b4 = DAT_000817b4 + 1" (identifier "DAT_000817b4") (= "=") (binary_expression "DAT_000817b4 + 1" (identifier "DAT_000817b4") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (return_statement "return pbVar6;" (return "return") (identifier "pbVar6") (; ";")) (} "}"))) (labeled_statement "LAB_0003248e:\n  DAT_000817b4 = pbVar5;" (statement_identifier "LAB_0003248e") (: ":") (expression_statement "DAT_000817b4 = pbVar5;" (assignment_expression "DAT_000817b4 = pbVar5" (identifier "DAT_000817b4") (= "=") (identifier "pbVar5")) (; ";"))) (expression_statement "uVar2 = dcgettext(0,"expected symbol name",5);" (assignment_expression "uVar2 = dcgettext(0,"expected symbol name",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"expected symbol name",5)" (identifier "dcgettext") (argument_list "(0,"expected symbol name",5)" (( "(") (number_literal "0") (, ",") (string_literal ""expected symbol name"" (" """) (string_content "expected symbol name") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002c070(uVar2);" (call_expression "FUN_0002c070(uVar2)" (identifier "FUN_0002c070") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "FUN_0002e1d0();" (call_expression "FUN_0002e1d0()" (identifier "FUN_0002e1d0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return (byte *)0x0;" (return "return") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Unknown calling convention */

char * function_1(void)

{
  type_1 var_2;
  char *var_4;
  char *var_8;
  type_2 var_6;
  size_t var_13;
  char *var_7;
  type_1 *pbVar6;
  int var_11;
  size_t var_10;
  type_1 *var_17;
  
  var_8 = var_1;
  var_17 = (type_1 *)(var_1 + 1);
  var_2 = *var_1;
  if (var_2 == 0x22) {
    var_1 = (char *)var_17;
    var_4 = (char *)var_3(0x81);
    var_10 = 0x80;
    var_7 = var_4 + 0x80;
    var_8 = var_4;
    while (var_6 = var_5(), var_6 < 0x100) {
      if (var_7 <= var_8) {
        var_11 = (int)var_8 - (int)var_4;
        var_4 = (char *)var_9(var_4,var_10 + 0x81);
        var_8 = var_4 + var_11;
        var_7 = var_4 + var_10 + 0x80;
        var_10 = var_10 + 0x80;
      }
      *var_8 = (char)var_6;
      var_8 = var_8 + 1;
    }
    *var_8 = '\0';
    var_13 = var_12((type_3 *)0x0,var_8,var_10);
    if (var_13 == 0xffffffff) {
      var_7 = (char *)var_14(0,"symbol name not recognised in the current locale",5);
      var_15(var_7);
    }
  }
  else {
    if (((lex_type[var_2] & 2) == 0) && ((var_2 != 1 || (var_16 == 0))))
    goto LAB_0003248e;
    do {
      do {
        pbVar6 = var_17 + 1;
        var_2 = *var_17;
        var_17 = pbVar6;
      } while ((lex_type[var_2] & 1) != 0);
    } while ((var_2 == 1) && (var_16 != 0));
    var_11 = (int)pbVar6 - (int)var_1;
    var_1 = (char *)pbVar6;
    var_4 = (char *)var_3(var_11);
    var_18(var_4,var_8,var_11 - 1);
    var_4[var_11 + -1] = '\0';
    if ((lex_type[var_2] & 4) == 0) {
      var_1 = var_1 + -1;
    }
  }
  var_17 = (type_1 *)var_1;
  if (var_8 != var_4) {
    if (*var_1 == ' ') {
      var_1 = var_1 + 1;
    }
    return var_4;
  }
LAB_0003248e:
  var_1 = (char *)var_17;
  var_8 = (char *)var_14(0,"expected symbol name",5);
  var_19(var_8);
  var_20();
  return (char *)0x0;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

byte * MASKED(void)

{
  byte bVar1;
  undefined4 uVar2;
  uint uVar3;
  size_t sVar4;
  byte *pbVar5;
  byte *pbVar6;
  int iVar7;
  byte *__s;
  size_t local_24;
  
  __s = DAT_000817b4;
  pbVar5 = DAT_000817b4 + 1;
  bVar1 = *DAT_000817b4;
  if (bVar1 == 0x22) {
    DAT_000817b4 = pbVar5;
    pbVar6 = (byte *)xmalloc(0x81);
    local_24 = 0x80;
    pbVar5 = pbVar6 + 0x80;
    __s = pbVar6;
    while (uVar3 = FUN_00032160(), uVar3 < 0x100) {
      if (pbVar5 <= __s) {
        iVar7 = (int)__s - (int)pbVar6;
        pbVar6 = (byte *)xrealloc(pbVar6,local_24 + 0x81);
        __s = pbVar6 + iVar7;
        pbVar5 = pbVar6 + local_24 + 0x80;
        local_24 = local_24 + 0x80;
      }
      *__s = (byte)uVar3;
      __s = __s + 1;
    }
    *__s = 0;
    sVar4 = mbstowcs((wchar_t *)0x0,(char *)__s,local_24);
    if (sVar4 == 0xffffffff) {
      uVar2 = dcgettext(0,"symbol name not recognised in the current locale",5);
      FUN_0002bf90(uVar2);
    }
  }
  else {
    if ((((&DAT_000783c0)[bVar1] & 2) == 0) && ((bVar1 != 1 || (DAT_00080d5c == 0))))
    goto LAB_0003248e;
    do {
      do {
        pbVar6 = pbVar5 + 1;
        bVar1 = *pbVar5;
        pbVar5 = pbVar6;
      } while (((&DAT_000783c0)[bVar1] & 1) != 0);
    } while ((bVar1 == 1) && (DAT_00080d5c != 0));
    iVar7 = (int)pbVar6 - (int)DAT_000817b4;
    DAT_000817b4 = pbVar6;
    pbVar6 = (byte *)xmalloc(iVar7);
    memcpy(pbVar6,__s,iVar7 - 1);
    pbVar6[iVar7 + -1] = 0;
    if (((&DAT_000783c0)[bVar1] & 4) == 0) {
      DAT_000817b4 = DAT_000817b4 + -1;
    }
  }
  pbVar5 = DAT_000817b4;
  if (__s != pbVar6) {
    if (*DAT_000817b4 == 0x20) {
      DAT_000817b4 = DAT_000817b4 + 1;
    }
    return pbVar6;
  }
LAB_0003248e:
  DAT_000817b4 = pbVar5;
  uVar2 = dcgettext(0,"expected symbol name",5);
  FUN_0002c070(uVar2);
  FUN_0002e1d0();
  return (byte *)0x0;
}

