
void s_ifdef(int test_defined)

{
  char c;
  int iVar1;
  symbolS *s;
  segT paVar2;
  char *pcVar3;
  conditional_frame *pcVar4;
  uint uVar5;
  char *name;
  conditional_frame cframe;
  
  if (*input_line_pointer == ' ') {
    input_line_pointer = input_line_pointer + 1;
  }
  name = input_line_pointer;
  if (((lex_type[(byte)*input_line_pointer] & 2) == 0) && (*input_line_pointer != 0x22)) {
    pcVar3 = (char *)dcgettext(0,"invalid identifier for \".ifdef\"",5);
    as_bad(pcVar3);
    if (cond_obstack.chunk_limit == cond_obstack.next_free) {
      _obstack_newchunk(&cond_obstack,1);
    }
    pcVar3 = cond_obstack.next_free + 1;
    *cond_obstack.next_free = '\0';
    cond_obstack.next_free = pcVar3;
    ignore_rest_of_line();
    return;
  }
  c = get_symbol_name(&name);
  s = symbol_find(name);
  restore_line_pointer(c);
  initialize_cframe(&cframe);
  if (cframe.dead_tree == 0) {
    uVar5 = 0;
    if ((s != (symbolS *)0x0) &&
       ((iVar1 = S_IS_DEFINED(s), iVar1 != 0 || (iVar1 = symbol_equated_p(s), iVar1 != 0)))) {
      paVar2 = S_GET_SEGMENT(s);
      uVar5 = (uint)(reg_section != paVar2);
    }
    cframe.ignoring = (int)(uVar5 == test_defined);
  }
  else {
    cframe.ignoring = 1;
  }
  if ((ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.next_free) < 0x38) {
    _obstack_newchunk(&cond_obstack,0x38);
    pcVar3 = cond_obstack.next_free + 0x38;
    pcVar4 = (conditional_frame *)cond_obstack.object_base;
    if (pcVar3 != cond_obstack.object_base) goto LAB_0010d640;
  }
  else {
    pcVar3 = cond_obstack.next_free + 0x38;
    pcVar4 = (conditional_frame *)cond_obstack.object_base;
    if (pcVar3 != cond_obstack.object_base) goto LAB_0010d640;
  }
  cond_obstack._80_1_ = cond_obstack._80_1_ | 2;
  pcVar4 = (conditional_frame *)cond_obstack.object_base;
LAB_0010d640:
  cond_obstack.object_base =
       (char *)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask);
  if ((ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.chunk) <
      (ulong)((long)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -
             (long)cond_obstack.chunk)) {
    cond_obstack.object_base = cond_obstack.chunk_limit;
  }
  current_cframe = pcVar4;
  cond_obstack.next_free = cond_obstack.object_base;
  (pcVar4->if_file_line).file = cframe.if_file_line.file;
  (pcVar4->if_file_line).line = cframe.if_file_line.line;
  *(undefined4 *)&(pcVar4->if_file_line).field_0xc = cframe.if_file_line._12_4_;
  (pcVar4->else_file_line).file = cframe.else_file_line.file;
  (pcVar4->else_file_line).line = cframe.else_file_line.line;
  *(undefined4 *)&(pcVar4->else_file_line).field_0xc = cframe.else_file_line._12_4_;
  pcVar4->previous_cframe = cframe.previous_cframe;
  pcVar4->else_seen = (int)CONCAT44(cframe.ignoring,cframe.else_seen);
  pcVar4->ignoring = (int)(CONCAT44(cframe.ignoring,cframe.else_seen) >> 0x20);
  pcVar4->dead_tree = (int)CONCAT44(cframe.macro_nest,cframe.dead_tree);
  pcVar4->macro_nest = (int)(CONCAT44(cframe.macro_nest,cframe.dead_tree) >> 0x20);
  if (((((byte)listing & 0x20) != 0) && (cframe.ignoring != 0)) &&
     ((cframe.previous_cframe == (conditional_frame *)0x0 ||
      ((cframe.previous_cframe)->ignoring == 0)))) {
    listing_list(2);
  }
  demand_empty_rest_of_line();
  return;
}



void FUN_0010d590(uint param_1)

{
  undefined1 *puVar1;
  char cVar2;
  int iVar3;
  long lVar4;
  undefined8 uVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  uint uVar8;
  byte *local_60;
  undefined8 local_58;
  undefined8 uStack_50;
  undefined8 local_48;
  undefined8 uStack_40;
  long local_38;
  undefined4 uStack_30;
  uint uStack_2c;
  int local_28;
  undefined4 uStack_24;
  
  if (*DAT_0016f0a0 == 0x20) {
    DAT_0016f0a0 = DAT_0016f0a0 + 1;
  }
  local_60 = DAT_0016f0a0;
  if ((((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22)) {
    uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);
    FUN_0011c1a0(uVar5);
    if (DAT_0016efe0 == DAT_0016efd8) {
      _obstack_newchunk(&DAT_0016efc0,1);
    }
    puVar1 = DAT_0016efd8 + 1;
    *DAT_0016efd8 = 0;
    DAT_0016efd8 = puVar1;
    FUN_0011e2c0();
    return;
  }
  cVar2 = FUN_00113480(&local_60);
  lVar4 = FUN_001292e0(local_60);
  FUN_00114e60((int)cVar2);
  FUN_0010d530(&local_58);
  if (local_28 == 0) {
    uVar8 = 0;
    if ((lVar4 != 0) &&
       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {
      lVar4 = FUN_00127840(lVar4);
      uVar8 = (uint)(DAT_0016eee0 != lVar4);
    }
    uStack_2c = (uint)(uVar8 == param_1);
  }
  else {
    uStack_2c = 1;
  }
  if ((ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38) {
    _obstack_newchunk(&DAT_0016efc0,0x38);
    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);
    puVar6 = DAT_0016efd0;
    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;
  }
  else {
    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);
    puVar6 = DAT_0016efd0;
    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;
  }
  DAT_0016f010 = DAT_0016f010 | 2;
  puVar6 = DAT_0016efd0;
LAB_0010d640:
  DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0);
  if ((ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8)) {
    DAT_0016efd0 = (undefined8 *)DAT_0016efe0;
  }
  DAT_0016dbb0 = puVar6;
  DAT_0016efd8 = (undefined1 *)DAT_0016efd0;
  *puVar6 = local_58;
  puVar6[1] = uStack_50;
  puVar6[2] = local_48;
  puVar6[3] = uStack_40;
  puVar6[4] = local_38;
  puVar6[5] = CONCAT44(uStack_2c,uStack_30);
  puVar6[6] = CONCAT44(uStack_24,local_28);
  if (((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&
     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))) {
    FUN_00118e60(2);
  }
  FUN_0011e4e0();
  return;
}


PUSH R12
PUSH RBP
MOV EBP,EDI
PUSH RBX
SUB RSP,0x50
MOV RAX,qword ptr [0x0016f0a0]
CMP byte ptr [RAX],0x20
JNZ 0x0010d5b1
ADD RAX,0x1
MOV qword ptr [0x0016f0a0],RAX
MOV qword ptr [RSP + 0x8],RAX
MOVZX EDX,byte ptr [RAX]
LEA RCX,[0x1645e0]
TEST byte ptr [RCX + RDX*0x1],0x2
JNZ 0x0010d5cf
CMP DL,0x22
JNZ 0x0010d730
LEA RDI,[RSP + 0x8]
CALL 0x00113480
MOV RDI,qword ptr [RSP + 0x8]
MOV EBX,EAX
CALL 0x001292e0
MOVSX EDI,BL
MOV R12,RAX
CALL 0x00114e60
LEA RDI,[RSP + 0x10]
CALL 0x0010d530
MOV EBX,dword ptr [RSP + 0x40]
TEST EBX,EBX
JZ 0x0010d6f0
MOV dword ptr [RSP + 0x3c],0x1
MOV RDI,qword ptr [0x0016efe0]
MOV RAX,qword ptr [0x0016efd8]
MOV RDX,RDI
SUB RDX,RAX
CMP RDX,0x37
JBE 0x0010d780
MOV RCX,qword ptr [0x0016efd0]
LEA RDX,[RAX + 0x38]
CMP RDX,RCX
JZ 0x0010d7b3
MOV RSI,qword ptr [0x0016eff0]
MOV RBX,RDI
LEA RAX,[RDX + RSI*0x1]
NOT RSI
MOV RDX,qword ptr [0x0016efc8]
AND RAX,RSI
MOV RSI,RAX
SUB RBX,RDX
MOV qword ptr [0x0016efd8],RAX
SUB RSI,RDX
CMP RSI,RBX
JBE 0x0010d67a
MOV qword ptr [0x0016efd8],RDI
MOV RAX,RDI
MOVDQA XMM0,xmmword ptr [RSP + 0x10]
MOV qword ptr [0x0016efd0],RAX
MOV qword ptr [0x0016dbb0],RCX
MOVUPS xmmword ptr [RCX],XMM0
MOVDQA XMM1,xmmword ptr [RSP + 0x20]
MOVUPS xmmword ptr [RCX + 0x10],XMM1
MOVDQA XMM2,xmmword ptr [RSP + 0x30]
MOVUPS xmmword ptr [RCX + 0x20],XMM2
MOV RAX,qword ptr [RSP + 0x40]
MOV qword ptr [RCX + 0x30],RAX
TEST byte ptr [0x0016eef4],0x20
JZ 0x0010d6da
MOV EDX,dword ptr [RSP + 0x3c]
TEST EDX,EDX
JZ 0x0010d6da
MOV RAX,qword ptr [RSP + 0x30]
TEST RAX,RAX
JZ 0x0010d6d0
MOV EAX,dword ptr [RAX + 0x2c]
TEST EAX,EAX
JNZ 0x0010d6da
MOV EDI,0x2
CALL 0x00118e60
CALL 0x0011e4e0
ADD RSP,0x50
POP RBX
POP RBP
POP R12
RET
TEST R12,R12
JZ 0x0010d719
MOV RDI,R12
CALL 0x00127510
TEST EAX,EAX
JZ 0x0010d7c0
MOV RDI,R12
XOR EBX,EBX
CALL 0x00127840
CMP qword ptr [0x0016eee0],RAX
SETNZ BL
XOR EAX,EAX
CMP EBX,EBP
SETZ AL
MOV dword ptr [RSP + 0x3c],EAX
JMP 0x0010d60e
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x149f40]
CALL 0x001091d0
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011c1a0
MOV RAX,qword ptr [0x0016efd8]
CMP qword ptr [0x0016efe0],RAX
JZ 0x0010d7d8
LEA RDX,[RAX + 0x1]
MOV qword ptr [0x0016efd8],RDX
MOV byte ptr [RAX],0x0
CALL 0x0011e2c0
ADD RSP,0x50
POP RBX
POP RBP
POP R12
RET
LEA RDI,[0x16efc0]
MOV ESI,0x38
CALL 0x00147c20
MOV RAX,qword ptr [0x0016efd8]
MOV RCX,qword ptr [0x0016efd0]
MOV RDI,qword ptr [0x0016efe0]
LEA RDX,[RAX + 0x38]
CMP RDX,RCX
JNZ 0x0010d640
OR byte ptr [0x0016f010],0x2
JMP 0x0010d640
MOV RDI,R12
CALL 0x0012a370
TEST EAX,EAX
JNZ 0x0010d705
JMP 0x0010d719
MOV ESI,0x1
LEA RDI,[0x16efc0]
CALL 0x00147c20
MOV RAX,qword ptr [0x0016efd8]
JMP 0x0010d75d
(translation_unit "void FUN_0010d590(uint param_1)\n\n{\n  undefined1 *puVar1;\n  char cVar2;\n  int iVar3;\n  long lVar4;\n  undefined8 uVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  uint uVar8;\n  byte *local_60;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  undefined8 uStack_40;\n  long local_38;\n  undefined4 uStack_30;\n  uint uStack_2c;\n  int local_28;\n  undefined4 uStack_24;\n  \n  if (*DAT_0016f0a0 == 0x20) {\n    DAT_0016f0a0 = DAT_0016f0a0 + 1;\n  }\n  local_60 = DAT_0016f0a0;\n  if ((((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22)) {\n    uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    FUN_0011c1a0(uVar5);\n    if (DAT_0016efe0 == DAT_0016efd8) {\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }\n    puVar1 = DAT_0016efd8 + 1;\n    *DAT_0016efd8 = 0;\n    DAT_0016efd8 = puVar1;\n    FUN_0011e2c0();\n    return;\n  }\n  cVar2 = FUN_00113480(&local_60);\n  lVar4 = FUN_001292e0(local_60);\n  FUN_00114e60((int)cVar2);\n  FUN_0010d530(&local_58);\n  if (local_28 == 0) {\n    uVar8 = 0;\n    if ((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }\n    uStack_2c = (uint)(uVar8 == param_1);\n  }\n  else {\n    uStack_2c = 1;\n  }\n  if ((ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38) {\n    _obstack_newchunk(&DAT_0016efc0,0x38);\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  else {\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  DAT_0016f010 = DAT_0016f010 | 2;\n  puVar6 = DAT_0016efd0;\nLAB_0010d640:\n  DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0);\n  if ((ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8)) {\n    DAT_0016efd0 = (undefined8 *)DAT_0016efe0;\n  }\n  DAT_0016dbb0 = puVar6;\n  DAT_0016efd8 = (undefined1 *)DAT_0016efd0;\n  *puVar6 = local_58;\n  puVar6[1] = uStack_50;\n  puVar6[2] = local_48;\n  puVar6[3] = uStack_40;\n  puVar6[4] = local_38;\n  puVar6[5] = CONCAT44(uStack_2c,uStack_30);\n  puVar6[6] = CONCAT44(uStack_24,local_28);\n  if (((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&\n     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))) {\n    FUN_00118e60(2);\n  }\n  FUN_0011e4e0();\n  return;\n}\n\n" (function_definition "void FUN_0010d590(uint param_1)\n\n{\n  undefined1 *puVar1;\n  char cVar2;\n  int iVar3;\n  long lVar4;\n  undefined8 uVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  uint uVar8;\n  byte *local_60;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  undefined8 uStack_40;\n  long local_38;\n  undefined4 uStack_30;\n  uint uStack_2c;\n  int local_28;\n  undefined4 uStack_24;\n  \n  if (*DAT_0016f0a0 == 0x20) {\n    DAT_0016f0a0 = DAT_0016f0a0 + 1;\n  }\n  local_60 = DAT_0016f0a0;\n  if ((((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22)) {\n    uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    FUN_0011c1a0(uVar5);\n    if (DAT_0016efe0 == DAT_0016efd8) {\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }\n    puVar1 = DAT_0016efd8 + 1;\n    *DAT_0016efd8 = 0;\n    DAT_0016efd8 = puVar1;\n    FUN_0011e2c0();\n    return;\n  }\n  cVar2 = FUN_00113480(&local_60);\n  lVar4 = FUN_001292e0(local_60);\n  FUN_00114e60((int)cVar2);\n  FUN_0010d530(&local_58);\n  if (local_28 == 0) {\n    uVar8 = 0;\n    if ((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }\n    uStack_2c = (uint)(uVar8 == param_1);\n  }\n  else {\n    uStack_2c = 1;\n  }\n  if ((ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38) {\n    _obstack_newchunk(&DAT_0016efc0,0x38);\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  else {\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  DAT_0016f010 = DAT_0016f010 | 2;\n  puVar6 = DAT_0016efd0;\nLAB_0010d640:\n  DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0);\n  if ((ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8)) {\n    DAT_0016efd0 = (undefined8 *)DAT_0016efe0;\n  }\n  DAT_0016dbb0 = puVar6;\n  DAT_0016efd8 = (undefined1 *)DAT_0016efd0;\n  *puVar6 = local_58;\n  puVar6[1] = uStack_50;\n  puVar6[2] = local_48;\n  puVar6[3] = uStack_40;\n  puVar6[4] = local_38;\n  puVar6[5] = CONCAT44(uStack_2c,uStack_30);\n  puVar6[6] = CONCAT44(uStack_24,local_28);\n  if (((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&\n     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))) {\n    FUN_00118e60(2);\n  }\n  FUN_0011e4e0();\n  return;\n}" primitive_type (function_declarator "FUN_0010d590(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  undefined1 *puVar1;\n  char cVar2;\n  int iVar3;\n  long lVar4;\n  undefined8 uVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  uint uVar8;\n  byte *local_60;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  undefined8 uStack_40;\n  long local_38;\n  undefined4 uStack_30;\n  uint uStack_2c;\n  int local_28;\n  undefined4 uStack_24;\n  \n  if (*DAT_0016f0a0 == 0x20) {\n    DAT_0016f0a0 = DAT_0016f0a0 + 1;\n  }\n  local_60 = DAT_0016f0a0;\n  if ((((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22)) {\n    uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    FUN_0011c1a0(uVar5);\n    if (DAT_0016efe0 == DAT_0016efd8) {\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }\n    puVar1 = DAT_0016efd8 + 1;\n    *DAT_0016efd8 = 0;\n    DAT_0016efd8 = puVar1;\n    FUN_0011e2c0();\n    return;\n  }\n  cVar2 = FUN_00113480(&local_60);\n  lVar4 = FUN_001292e0(local_60);\n  FUN_00114e60((int)cVar2);\n  FUN_0010d530(&local_58);\n  if (local_28 == 0) {\n    uVar8 = 0;\n    if ((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }\n    uStack_2c = (uint)(uVar8 == param_1);\n  }\n  else {\n    uStack_2c = 1;\n  }\n  if ((ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38) {\n    _obstack_newchunk(&DAT_0016efc0,0x38);\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  else {\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  DAT_0016f010 = DAT_0016f010 | 2;\n  puVar6 = DAT_0016efd0;\nLAB_0010d640:\n  DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0);\n  if ((ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8)) {\n    DAT_0016efd0 = (undefined8 *)DAT_0016efe0;\n  }\n  DAT_0016dbb0 = puVar6;\n  DAT_0016efd8 = (undefined1 *)DAT_0016efd0;\n  *puVar6 = local_58;\n  puVar6[1] = uStack_50;\n  puVar6[2] = local_48;\n  puVar6[3] = uStack_40;\n  puVar6[4] = local_38;\n  puVar6[5] = CONCAT44(uStack_2c,uStack_30);\n  puVar6[6] = CONCAT44(uStack_24,local_28);\n  if (((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&\n     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))) {\n    FUN_00118e60(2);\n  }\n  FUN_0011e4e0();\n  return;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "undefined8 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "byte *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined8 uStack_50;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "undefined8 uStack_40;" type_identifier identifier ;) (declaration "long local_38;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 uStack_30;" type_identifier identifier ;) (declaration "uint uStack_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "undefined4 uStack_24;" type_identifier identifier ;) (if_statement "if (*DAT_0016f0a0 == 0x20) {\n    DAT_0016f0a0 = DAT_0016f0a0 + 1;\n  }" if (parenthesized_expression "(*DAT_0016f0a0 == 0x20)" ( (binary_expression "*DAT_0016f0a0 == 0x20" (pointer_expression "*DAT_0016f0a0" * identifier) == number_literal) )) (compound_statement "{\n    DAT_0016f0a0 = DAT_0016f0a0 + 1;\n  }" { (expression_statement "DAT_0016f0a0 = DAT_0016f0a0 + 1;" (assignment_expression "DAT_0016f0a0 = DAT_0016f0a0 + 1" identifier = (binary_expression "DAT_0016f0a0 + 1" identifier + number_literal)) ;) })) (expression_statement "local_60 = DAT_0016f0a0;" (assignment_expression "local_60 = DAT_0016f0a0" identifier = identifier) ;) (if_statement "if ((((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22)) {\n    uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    FUN_0011c1a0(uVar5);\n    if (DAT_0016efe0 == DAT_0016efd8) {\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }\n    puVar1 = DAT_0016efd8 + 1;\n    *DAT_0016efd8 = 0;\n    DAT_0016efd8 = puVar1;\n    FUN_0011e2c0();\n    return;\n  }" if (parenthesized_expression "((((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22))" ( (binary_expression "(((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22)" (parenthesized_expression "(((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0)" ( (binary_expression "((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0" (parenthesized_expression "((&DAT_001645e0)[*DAT_0016f0a0] & 2)" ( (binary_expression "(&DAT_001645e0)[*DAT_0016f0a0] & 2" (subscript_expression "(&DAT_001645e0)[*DAT_0016f0a0]" (parenthesized_expression "(&DAT_001645e0)" ( (pointer_expression "&DAT_001645e0" & identifier) )) [ (pointer_expression "*DAT_0016f0a0" * identifier) ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(*DAT_0016f0a0 != 0x22)" ( (binary_expression "*DAT_0016f0a0 != 0x22" (pointer_expression "*DAT_0016f0a0" * identifier) != number_literal) ))) )) (compound_statement "{\n    uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    FUN_0011c1a0(uVar5);\n    if (DAT_0016efe0 == DAT_0016efd8) {\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }\n    puVar1 = DAT_0016efd8 + 1;\n    *DAT_0016efd8 = 0;\n    DAT_0016efd8 = puVar1;\n    FUN_0011e2c0();\n    return;\n  }" { (expression_statement "uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);" (assignment_expression "uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5)" identifier = (call_expression "dcgettext(0,"invalid identifier for \".ifdef\"",5)" identifier (argument_list "(0,"invalid identifier for \".ifdef\"",5)" ( number_literal , (string_literal ""invalid identifier for \".ifdef\""" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0011c1a0(uVar5);" (call_expression "FUN_0011c1a0(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (if_statement "if (DAT_0016efe0 == DAT_0016efd8) {\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }" if (parenthesized_expression "(DAT_0016efe0 == DAT_0016efd8)" ( (binary_expression "DAT_0016efe0 == DAT_0016efd8" identifier == identifier) )) (compound_statement "{\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }" { (expression_statement "_obstack_newchunk(&DAT_0016efc0,1);" (call_expression "_obstack_newchunk(&DAT_0016efc0,1)" identifier (argument_list "(&DAT_0016efc0,1)" ( (pointer_expression "&DAT_0016efc0" & identifier) , number_literal ))) ;) })) (expression_statement "puVar1 = DAT_0016efd8 + 1;" (assignment_expression "puVar1 = DAT_0016efd8 + 1" identifier = (binary_expression "DAT_0016efd8 + 1" identifier + number_literal)) ;) (expression_statement "*DAT_0016efd8 = 0;" (assignment_expression "*DAT_0016efd8 = 0" (pointer_expression "*DAT_0016efd8" * identifier) = number_literal) ;) (expression_statement "DAT_0016efd8 = puVar1;" (assignment_expression "DAT_0016efd8 = puVar1" identifier = identifier) ;) (expression_statement "FUN_0011e2c0();" (call_expression "FUN_0011e2c0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "cVar2 = FUN_00113480(&local_60);" (assignment_expression "cVar2 = FUN_00113480(&local_60)" identifier = (call_expression "FUN_00113480(&local_60)" identifier (argument_list "(&local_60)" ( (pointer_expression "&local_60" & identifier) )))) ;) (expression_statement "lVar4 = FUN_001292e0(local_60);" (assignment_expression "lVar4 = FUN_001292e0(local_60)" identifier = (call_expression "FUN_001292e0(local_60)" identifier (argument_list "(local_60)" ( identifier )))) ;) (expression_statement "FUN_00114e60((int)cVar2);" (call_expression "FUN_00114e60((int)cVar2)" identifier (argument_list "((int)cVar2)" ( (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "FUN_0010d530(&local_58);" (call_expression "FUN_0010d530(&local_58)" identifier (argument_list "(&local_58)" ( (pointer_expression "&local_58" & identifier) ))) ;) (if_statement "if (local_28 == 0) {\n    uVar8 = 0;\n    if ((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }\n    uStack_2c = (uint)(uVar8 == param_1);\n  }\n  else {\n    uStack_2c = 1;\n  }" if (parenthesized_expression "(local_28 == 0)" ( (binary_expression "local_28 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar8 = 0;\n    if ((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }\n    uStack_2c = (uint)(uVar8 == param_1);\n  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if ((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }" if (parenthesized_expression "((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0))))" ( (binary_expression "(lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))" (parenthesized_expression "(lVar4 != 0)" ( (binary_expression "lVar4 != 0" identifier != number_literal) )) && (parenthesized_expression "((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))" ( (parenthesized_expression "(iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0))" ( (comma_expression "iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)" (assignment_expression "iVar3 = FUN_00127510(lVar4)" identifier = (call_expression "FUN_00127510(lVar4)" identifier (argument_list "(lVar4)" ( identifier )))) , (binary_expression "iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)" (binary_expression "iVar3 != 0" identifier != number_literal) || (parenthesized_expression "(iVar3 = FUN_0012a370(lVar4), iVar3 != 0)" ( (comma_expression "iVar3 = FUN_0012a370(lVar4), iVar3 != 0" (assignment_expression "iVar3 = FUN_0012a370(lVar4)" identifier = (call_expression "FUN_0012a370(lVar4)" identifier (argument_list "(lVar4)" ( identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) )))) )) ))) )) (compound_statement "{\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }" { (expression_statement "lVar4 = FUN_00127840(lVar4);" (assignment_expression "lVar4 = FUN_00127840(lVar4)" identifier = (call_expression "FUN_00127840(lVar4)" identifier (argument_list "(lVar4)" ( identifier )))) ;) (expression_statement "uVar8 = (uint)(DAT_0016eee0 != lVar4);" (assignment_expression "uVar8 = (uint)(DAT_0016eee0 != lVar4)" identifier = (call_expression "(uint)(DAT_0016eee0 != lVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(DAT_0016eee0 != lVar4)" ( (binary_expression "DAT_0016eee0 != lVar4" identifier != identifier) )))) ;) })) (expression_statement "uStack_2c = (uint)(uVar8 == param_1);" (assignment_expression "uStack_2c = (uint)(uVar8 == param_1)" identifier = (call_expression "(uint)(uVar8 == param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 == param_1)" ( (binary_expression "uVar8 == param_1" identifier == identifier) )))) ;) }) (else_clause "else {\n    uStack_2c = 1;\n  }" else (compound_statement "{\n    uStack_2c = 1;\n  }" { (expression_statement "uStack_2c = 1;" (assignment_expression "uStack_2c = 1" identifier = number_literal) ;) }))) (if_statement "if ((ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38) {\n    _obstack_newchunk(&DAT_0016efc0,0x38);\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  else {\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }" if (parenthesized_expression "((ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38)" ( (binary_expression "(ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38" (call_expression "(ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)DAT_0016efe0 - (long)DAT_0016efd8)" ( (binary_expression "(long)DAT_0016efe0 - (long)DAT_0016efd8" (cast_expression "(long)DAT_0016efe0" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)DAT_0016efd8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) < number_literal) )) (compound_statement "{\n    _obstack_newchunk(&DAT_0016efc0,0x38);\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }" { (expression_statement "_obstack_newchunk(&DAT_0016efc0,0x38);" (call_expression "_obstack_newchunk(&DAT_0016efc0,0x38)" identifier (argument_list "(&DAT_0016efc0,0x38)" ( (pointer_expression "&DAT_0016efc0" & identifier) , number_literal ))) ;) (expression_statement "puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);" (assignment_expression "puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38)" identifier = (cast_expression "(undefined8 *)(DAT_0016efd8 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0016efd8 + 0x38)" ( (binary_expression "DAT_0016efd8 + 0x38" identifier + number_literal) )))) ;) (expression_statement "puVar6 = DAT_0016efd0;" (assignment_expression "puVar6 = DAT_0016efd0" identifier = identifier) ;) (if_statement "if (puVar7 != DAT_0016efd0) goto LAB_0010d640;" if (parenthesized_expression "(puVar7 != DAT_0016efd0)" ( (binary_expression "puVar7 != DAT_0016efd0" identifier != identifier) )) (goto_statement "goto LAB_0010d640;" goto statement_identifier ;)) }) (else_clause "else {\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }" else (compound_statement "{\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }" { (expression_statement "puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);" (assignment_expression "puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38)" identifier = (cast_expression "(undefined8 *)(DAT_0016efd8 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0016efd8 + 0x38)" ( (binary_expression "DAT_0016efd8 + 0x38" identifier + number_literal) )))) ;) (expression_statement "puVar6 = DAT_0016efd0;" (assignment_expression "puVar6 = DAT_0016efd0" identifier = identifier) ;) (if_statement "if (puVar7 != DAT_0016efd0) goto LAB_0010d640;" if (parenthesized_expression "(puVar7 != DAT_0016efd0)" ( (binary_expression "puVar7 != DAT_0016efd0" identifier != identifier) )) (goto_statement "goto LAB_0010d640;" goto statement_identifier ;)) }))) (expression_statement "DAT_0016f010 = DAT_0016f010 | 2;" (assignment_expression "DAT_0016f010 = DAT_0016f010 | 2" identifier = (binary_expression "DAT_0016f010 | 2" identifier | number_literal)) ;) (expression_statement "puVar6 = DAT_0016efd0;" (assignment_expression "puVar6 = DAT_0016efd0" identifier = identifier) ;) (labeled_statement "LAB_0010d640:\n  DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0);" statement_identifier : (expression_statement "DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0);" (assignment_expression "DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0)" identifier = (cast_expression "(undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0)" ( (binary_expression "(ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0" (call_expression "(ulong)((long)puVar7 + DAT_0016eff0)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)puVar7 + DAT_0016eff0)" ( (binary_expression "(long)puVar7 + DAT_0016eff0" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) & (unary_expression "~DAT_0016eff0" ~ identifier)) )))) ;)) (if_statement "if ((ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8)) {\n    DAT_0016efd0 = (undefined8 *)DAT_0016efe0;\n  }" if (parenthesized_expression "((ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8))" ( (binary_expression "(ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8)" (call_expression "(ulong)((long)DAT_0016efe0 - DAT_0016efc8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)DAT_0016efe0 - DAT_0016efc8)" ( (binary_expression "(long)DAT_0016efe0 - DAT_0016efc8" (cast_expression "(long)DAT_0016efe0" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - identifier) ))) < (call_expression "(ulong)((long)DAT_0016efd0 - DAT_0016efc8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)DAT_0016efd0 - DAT_0016efc8)" ( (binary_expression "(long)DAT_0016efd0 - DAT_0016efc8" (cast_expression "(long)DAT_0016efd0" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - identifier) )))) )) (compound_statement "{\n    DAT_0016efd0 = (undefined8 *)DAT_0016efe0;\n  }" { (expression_statement "DAT_0016efd0 = (undefined8 *)DAT_0016efe0;" (assignment_expression "DAT_0016efd0 = (undefined8 *)DAT_0016efe0" identifier = (cast_expression "(undefined8 *)DAT_0016efe0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "DAT_0016dbb0 = puVar6;" (assignment_expression "DAT_0016dbb0 = puVar6" identifier = identifier) ;) (expression_statement "DAT_0016efd8 = (undefined1 *)DAT_0016efd0;" (assignment_expression "DAT_0016efd8 = (undefined1 *)DAT_0016efd0" identifier = (cast_expression "(undefined1 *)DAT_0016efd0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*puVar6 = local_58;" (assignment_expression "*puVar6 = local_58" (pointer_expression "*puVar6" * identifier) = identifier) ;) (expression_statement "puVar6[1] = uStack_50;" (assignment_expression "puVar6[1] = uStack_50" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[2] = local_48;" (assignment_expression "puVar6[2] = local_48" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = uStack_40;" (assignment_expression "puVar6[3] = uStack_40" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[4] = local_38;" (assignment_expression "puVar6[4] = local_38" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[5] = CONCAT44(uStack_2c,uStack_30);" (assignment_expression "puVar6[5] = CONCAT44(uStack_2c,uStack_30)" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = (call_expression "CONCAT44(uStack_2c,uStack_30)" identifier (argument_list "(uStack_2c,uStack_30)" ( identifier , identifier )))) ;) (expression_statement "puVar6[6] = CONCAT44(uStack_24,local_28);" (assignment_expression "puVar6[6] = CONCAT44(uStack_24,local_28)" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = (call_expression "CONCAT44(uStack_24,local_28)" identifier (argument_list "(uStack_24,local_28)" ( identifier , identifier )))) ;) (if_statement "if (((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&\n     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))) {\n    FUN_00118e60(2);\n  }" if (parenthesized_expression "(((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&\n     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0))))" ( (binary_expression "((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&\n     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))" (parenthesized_expression "((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0))" ( (binary_expression "(((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)" (parenthesized_expression "(((byte)DAT_0016eef4 & 0x20) != 0)" ( (binary_expression "((byte)DAT_0016eef4 & 0x20) != 0" (parenthesized_expression "((byte)DAT_0016eef4 & 0x20)" ( (binary_expression "(byte)DAT_0016eef4 & 0x20" (cast_expression "(byte)DAT_0016eef4" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(uStack_2c != 0)" ( (binary_expression "uStack_2c != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))" ( (parenthesized_expression "(local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0))" ( (binary_expression "local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)" (binary_expression "local_38 == 0" identifier == number_literal) || (parenthesized_expression "(*(int *)(local_38 + 0x2c) == 0)" ( (binary_expression "*(int *)(local_38 + 0x2c) == 0" (pointer_expression "*(int *)(local_38 + 0x2c)" * (cast_expression "(int *)(local_38 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 0x2c)" ( (binary_expression "local_38 + 0x2c" identifier + number_literal) )))) == number_literal) ))) )) ))) )) (compound_statement "{\n    FUN_00118e60(2);\n  }" { (expression_statement "FUN_00118e60(2);" (call_expression "FUN_00118e60(2)" identifier (argument_list "(2)" ( number_literal ))) ;) })) (expression_statement "FUN_0011e4e0();" (call_expression "FUN_0011e4e0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void s_ifdef(int test_defined)\n\n{\n  char c;\n  int iVar1;\n  symbolS *s;\n  segT paVar2;\n  char *pcVar3;\n  conditional_frame *pcVar4;\n  uint uVar5;\n  char *name;\n  conditional_frame cframe;\n  \n  if (*input_line_pointer == ' ') {\n    input_line_pointer = input_line_pointer + 1;\n  }\n  name = input_line_pointer;\n  if (((lex_type[(byte)*input_line_pointer] & 2) == 0) && (*input_line_pointer != 0x22)) {\n    pcVar3 = (char *)dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    as_bad(pcVar3);\n    if (cond_obstack.chunk_limit == cond_obstack.next_free) {\n      _obstack_newchunk(&cond_obstack,1);\n    }\n    pcVar3 = cond_obstack.next_free + 1;\n    *cond_obstack.next_free = '\0';\n    cond_obstack.next_free = pcVar3;\n    ignore_rest_of_line();\n    return;\n  }\n  c = get_symbol_name(&name);\n  s = symbol_find(name);\n  restore_line_pointer(c);\n  initialize_cframe(&cframe);\n  if (cframe.dead_tree == 0) {\n    uVar5 = 0;\n    if ((s != (symbolS *)0x0) &&\n       ((iVar1 = S_IS_DEFINED(s), iVar1 != 0 || (iVar1 = symbol_equated_p(s), iVar1 != 0)))) {\n      paVar2 = S_GET_SEGMENT(s);\n      uVar5 = (uint)(reg_section != paVar2);\n    }\n    cframe.ignoring = (int)(uVar5 == test_defined);\n  }\n  else {\n    cframe.ignoring = 1;\n  }\n  if ((ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.next_free) < 0x38) {\n    _obstack_newchunk(&cond_obstack,0x38);\n    pcVar3 = cond_obstack.next_free + 0x38;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar3 != cond_obstack.object_base) goto LAB_0010d640;\n  }\n  else {\n    pcVar3 = cond_obstack.next_free + 0x38;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar3 != cond_obstack.object_base) goto LAB_0010d640;\n  }\n  cond_obstack._80_1_ = cond_obstack._80_1_ | 2;\n  pcVar4 = (conditional_frame *)cond_obstack.object_base;\nLAB_0010d640:\n  cond_obstack.object_base =\n       (char *)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask);\n  if ((ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.chunk) <\n      (ulong)((long)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n             (long)cond_obstack.chunk)) {\n    cond_obstack.object_base = cond_obstack.chunk_limit;\n  }\n  current_cframe = pcVar4;\n  cond_obstack.next_free = cond_obstack.object_base;\n  (pcVar4->if_file_line).file = cframe.if_file_line.file;\n  (pcVar4->if_file_line).line = cframe.if_file_line.line;\n  *(undefined4 *)&(pcVar4->if_file_line).field_0xc = cframe.if_file_line._12_4_;\n  (pcVar4->else_file_line).file = cframe.else_file_line.file;\n  (pcVar4->else_file_line).line = cframe.else_file_line.line;\n  *(undefined4 *)&(pcVar4->else_file_line).field_0xc = cframe.else_file_line._12_4_;\n  pcVar4->previous_cframe = cframe.previous_cframe;\n  pcVar4->else_seen = (int)CONCAT44(cframe.ignoring,cframe.else_seen);\n  pcVar4->ignoring = (int)(CONCAT44(cframe.ignoring,cframe.else_seen) >> 0x20);\n  pcVar4->dead_tree = (int)CONCAT44(cframe.macro_nest,cframe.dead_tree);\n  pcVar4->macro_nest = (int)(CONCAT44(cframe.macro_nest,cframe.dead_tree) >> 0x20);\n  if (((((byte)listing & 0x20) != 0) && (cframe.ignoring != 0)) &&\n     ((cframe.previous_cframe == (conditional_frame *)0x0 ||\n      ((cframe.previous_cframe)->ignoring == 0)))) {\n    listing_list(2);\n  }\n  demand_empty_rest_of_line();\n  return;\n}\n\n" (function_definition "void s_ifdef(int test_defined)\n\n{\n  char c;\n  int iVar1;\n  symbolS *s;\n  segT paVar2;\n  char *pcVar3;\n  conditional_frame *pcVar4;\n  uint uVar5;\n  char *name;\n  conditional_frame cframe;\n  \n  if (*input_line_pointer == ' ') {\n    input_line_pointer = input_line_pointer + 1;\n  }\n  name = input_line_pointer;\n  if (((lex_type[(byte)*input_line_pointer] & 2) == 0) && (*input_line_pointer != 0x22)) {\n    pcVar3 = (char *)dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    as_bad(pcVar3);\n    if (cond_obstack.chunk_limit == cond_obstack.next_free) {\n      _obstack_newchunk(&cond_obstack,1);\n    }\n    pcVar3 = cond_obstack.next_free + 1;\n    *cond_obstack.next_free = '\0';\n    cond_obstack.next_free = pcVar3;\n    ignore_rest_of_line();\n    return;\n  }\n  c = get_symbol_name(&name);\n  s = symbol_find(name);\n  restore_line_pointer(c);\n  initialize_cframe(&cframe);\n  if (cframe.dead_tree == 0) {\n    uVar5 = 0;\n    if ((s != (symbolS *)0x0) &&\n       ((iVar1 = S_IS_DEFINED(s), iVar1 != 0 || (iVar1 = symbol_equated_p(s), iVar1 != 0)))) {\n      paVar2 = S_GET_SEGMENT(s);\n      uVar5 = (uint)(reg_section != paVar2);\n    }\n    cframe.ignoring = (int)(uVar5 == test_defined);\n  }\n  else {\n    cframe.ignoring = 1;\n  }\n  if ((ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.next_free) < 0x38) {\n    _obstack_newchunk(&cond_obstack,0x38);\n    pcVar3 = cond_obstack.next_free + 0x38;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar3 != cond_obstack.object_base) goto LAB_0010d640;\n  }\n  else {\n    pcVar3 = cond_obstack.next_free + 0x38;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar3 != cond_obstack.object_base) goto LAB_0010d640;\n  }\n  cond_obstack._80_1_ = cond_obstack._80_1_ | 2;\n  pcVar4 = (conditional_frame *)cond_obstack.object_base;\nLAB_0010d640:\n  cond_obstack.object_base =\n       (char *)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask);\n  if ((ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.chunk) <\n      (ulong)((long)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n             (long)cond_obstack.chunk)) {\n    cond_obstack.object_base = cond_obstack.chunk_limit;\n  }\n  current_cframe = pcVar4;\n  cond_obstack.next_free = cond_obstack.object_base;\n  (pcVar4->if_file_line).file = cframe.if_file_line.file;\n  (pcVar4->if_file_line).line = cframe.if_file_line.line;\n  *(undefined4 *)&(pcVar4->if_file_line).field_0xc = cframe.if_file_line._12_4_;\n  (pcVar4->else_file_line).file = cframe.else_file_line.file;\n  (pcVar4->else_file_line).line = cframe.else_file_line.line;\n  *(undefined4 *)&(pcVar4->else_file_line).field_0xc = cframe.else_file_line._12_4_;\n  pcVar4->previous_cframe = cframe.previous_cframe;\n  pcVar4->else_seen = (int)CONCAT44(cframe.ignoring,cframe.else_seen);\n  pcVar4->ignoring = (int)(CONCAT44(cframe.ignoring,cframe.else_seen) >> 0x20);\n  pcVar4->dead_tree = (int)CONCAT44(cframe.macro_nest,cframe.dead_tree);\n  pcVar4->macro_nest = (int)(CONCAT44(cframe.macro_nest,cframe.dead_tree) >> 0x20);\n  if (((((byte)listing & 0x20) != 0) && (cframe.ignoring != 0)) &&\n     ((cframe.previous_cframe == (conditional_frame *)0x0 ||\n      ((cframe.previous_cframe)->ignoring == 0)))) {\n    listing_list(2);\n  }\n  demand_empty_rest_of_line();\n  return;\n}" primitive_type (function_declarator "s_ifdef(int test_defined)" identifier (parameter_list "(int test_defined)" ( (parameter_declaration "int test_defined" primitive_type identifier) ))) (compound_statement "{\n  char c;\n  int iVar1;\n  symbolS *s;\n  segT paVar2;\n  char *pcVar3;\n  conditional_frame *pcVar4;\n  uint uVar5;\n  char *name;\n  conditional_frame cframe;\n  \n  if (*input_line_pointer == ' ') {\n    input_line_pointer = input_line_pointer + 1;\n  }\n  name = input_line_pointer;\n  if (((lex_type[(byte)*input_line_pointer] & 2) == 0) && (*input_line_pointer != 0x22)) {\n    pcVar3 = (char *)dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    as_bad(pcVar3);\n    if (cond_obstack.chunk_limit == cond_obstack.next_free) {\n      _obstack_newchunk(&cond_obstack,1);\n    }\n    pcVar3 = cond_obstack.next_free + 1;\n    *cond_obstack.next_free = '\0';\n    cond_obstack.next_free = pcVar3;\n    ignore_rest_of_line();\n    return;\n  }\n  c = get_symbol_name(&name);\n  s = symbol_find(name);\n  restore_line_pointer(c);\n  initialize_cframe(&cframe);\n  if (cframe.dead_tree == 0) {\n    uVar5 = 0;\n    if ((s != (symbolS *)0x0) &&\n       ((iVar1 = S_IS_DEFINED(s), iVar1 != 0 || (iVar1 = symbol_equated_p(s), iVar1 != 0)))) {\n      paVar2 = S_GET_SEGMENT(s);\n      uVar5 = (uint)(reg_section != paVar2);\n    }\n    cframe.ignoring = (int)(uVar5 == test_defined);\n  }\n  else {\n    cframe.ignoring = 1;\n  }\n  if ((ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.next_free) < 0x38) {\n    _obstack_newchunk(&cond_obstack,0x38);\n    pcVar3 = cond_obstack.next_free + 0x38;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar3 != cond_obstack.object_base) goto LAB_0010d640;\n  }\n  else {\n    pcVar3 = cond_obstack.next_free + 0x38;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar3 != cond_obstack.object_base) goto LAB_0010d640;\n  }\n  cond_obstack._80_1_ = cond_obstack._80_1_ | 2;\n  pcVar4 = (conditional_frame *)cond_obstack.object_base;\nLAB_0010d640:\n  cond_obstack.object_base =\n       (char *)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask);\n  if ((ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.chunk) <\n      (ulong)((long)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n             (long)cond_obstack.chunk)) {\n    cond_obstack.object_base = cond_obstack.chunk_limit;\n  }\n  current_cframe = pcVar4;\n  cond_obstack.next_free = cond_obstack.object_base;\n  (pcVar4->if_file_line).file = cframe.if_file_line.file;\n  (pcVar4->if_file_line).line = cframe.if_file_line.line;\n  *(undefined4 *)&(pcVar4->if_file_line).field_0xc = cframe.if_file_line._12_4_;\n  (pcVar4->else_file_line).file = cframe.else_file_line.file;\n  (pcVar4->else_file_line).line = cframe.else_file_line.line;\n  *(undefined4 *)&(pcVar4->else_file_line).field_0xc = cframe.else_file_line._12_4_;\n  pcVar4->previous_cframe = cframe.previous_cframe;\n  pcVar4->else_seen = (int)CONCAT44(cframe.ignoring,cframe.else_seen);\n  pcVar4->ignoring = (int)(CONCAT44(cframe.ignoring,cframe.else_seen) >> 0x20);\n  pcVar4->dead_tree = (int)CONCAT44(cframe.macro_nest,cframe.dead_tree);\n  pcVar4->macro_nest = (int)(CONCAT44(cframe.macro_nest,cframe.dead_tree) >> 0x20);\n  if (((((byte)listing & 0x20) != 0) && (cframe.ignoring != 0)) &&\n     ((cframe.previous_cframe == (conditional_frame *)0x0 ||\n      ((cframe.previous_cframe)->ignoring == 0)))) {\n    listing_list(2);\n  }\n  demand_empty_rest_of_line();\n  return;\n}" { (declaration "char c;" primitive_type identifier ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "symbolS *s;" type_identifier (pointer_declarator "*s" * identifier) ;) (declaration "segT paVar2;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "conditional_frame *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char *name;" primitive_type (pointer_declarator "*name" * identifier) ;) (declaration "conditional_frame cframe;" type_identifier identifier ;) (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)) ;) })) (expression_statement "name = input_line_pointer;" (assignment_expression "name = input_line_pointer" identifier = identifier) ;) (if_statement "if (((lex_type[(byte)*input_line_pointer] & 2) == 0) && (*input_line_pointer != 0x22)) {\n    pcVar3 = (char *)dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    as_bad(pcVar3);\n    if (cond_obstack.chunk_limit == cond_obstack.next_free) {\n      _obstack_newchunk(&cond_obstack,1);\n    }\n    pcVar3 = cond_obstack.next_free + 1;\n    *cond_obstack.next_free = '\0';\n    cond_obstack.next_free = pcVar3;\n    ignore_rest_of_line();\n    return;\n  }" if (parenthesized_expression "(((lex_type[(byte)*input_line_pointer] & 2) == 0) && (*input_line_pointer != 0x22))" ( (binary_expression "((lex_type[(byte)*input_line_pointer] & 2) == 0) && (*input_line_pointer != 0x22)" (parenthesized_expression "((lex_type[(byte)*input_line_pointer] & 2) == 0)" ( (binary_expression "(lex_type[(byte)*input_line_pointer] & 2) == 0" (parenthesized_expression "(lex_type[(byte)*input_line_pointer] & 2)" ( (binary_expression "lex_type[(byte)*input_line_pointer] & 2" (subscript_expression "lex_type[(byte)*input_line_pointer]" identifier [ (binary_expression "(byte)*input_line_pointer" (parenthesized_expression "(byte)" ( identifier )) * identifier) ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(*input_line_pointer != 0x22)" ( (binary_expression "*input_line_pointer != 0x22" (pointer_expression "*input_line_pointer" * identifier) != number_literal) ))) )) (compound_statement "{\n    pcVar3 = (char *)dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    as_bad(pcVar3);\n    if (cond_obstack.chunk_limit == cond_obstack.next_free) {\n      _obstack_newchunk(&cond_obstack,1);\n    }\n    pcVar3 = cond_obstack.next_free + 1;\n    *cond_obstack.next_free = '\0';\n    cond_obstack.next_free = pcVar3;\n    ignore_rest_of_line();\n    return;\n  }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"invalid identifier for \".ifdef\"",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"invalid identifier for \".ifdef\"",5)" identifier = (cast_expression "(char *)dcgettext(0,"invalid identifier for \".ifdef\"",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"invalid identifier for \".ifdef\"",5)" identifier (argument_list "(0,"invalid identifier for \".ifdef\"",5)" ( number_literal , (string_literal ""invalid identifier for \".ifdef\""" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar3);" (call_expression "as_bad(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (if_statement "if (cond_obstack.chunk_limit == cond_obstack.next_free) {\n      _obstack_newchunk(&cond_obstack,1);\n    }" if (parenthesized_expression "(cond_obstack.chunk_limit == cond_obstack.next_free)" ( (binary_expression "cond_obstack.chunk_limit == cond_obstack.next_free" (field_expression "cond_obstack.chunk_limit" identifier . field_identifier) == (field_expression "cond_obstack.next_free" identifier . field_identifier)) )) (compound_statement "{\n      _obstack_newchunk(&cond_obstack,1);\n    }" { (expression_statement "_obstack_newchunk(&cond_obstack,1);" (call_expression "_obstack_newchunk(&cond_obstack,1)" identifier (argument_list "(&cond_obstack,1)" ( (pointer_expression "&cond_obstack" & identifier) , number_literal ))) ;) })) (expression_statement "pcVar3 = cond_obstack.next_free + 1;" (assignment_expression "pcVar3 = cond_obstack.next_free + 1" identifier = (binary_expression "cond_obstack.next_free + 1" (field_expression "cond_obstack.next_free" identifier . field_identifier) + number_literal)) ;) (expression_statement "*cond_obstack.next_free = '\0';" (assignment_expression "*cond_obstack.next_free = '\0'" (pointer_expression "*cond_obstack.next_free" * (field_expression "cond_obstack.next_free" identifier . field_identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cond_obstack.next_free = pcVar3;" (assignment_expression "cond_obstack.next_free = pcVar3" (field_expression "cond_obstack.next_free" identifier . field_identifier) = identifier) ;) (expression_statement "ignore_rest_of_line();" (call_expression "ignore_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "c = get_symbol_name(&name);" (assignment_expression "c = get_symbol_name(&name)" identifier = (call_expression "get_symbol_name(&name)" identifier (argument_list "(&name)" ( (pointer_expression "&name" & identifier) )))) ;) (expression_statement "s = symbol_find(name);" (assignment_expression "s = symbol_find(name)" identifier = (call_expression "symbol_find(name)" identifier (argument_list "(name)" ( identifier )))) ;) (expression_statement "restore_line_pointer(c);" (call_expression "restore_line_pointer(c)" identifier (argument_list "(c)" ( identifier ))) ;) (expression_statement "initialize_cframe(&cframe);" (call_expression "initialize_cframe(&cframe)" identifier (argument_list "(&cframe)" ( (pointer_expression "&cframe" & identifier) ))) ;) (if_statement "if (cframe.dead_tree == 0) {\n    uVar5 = 0;\n    if ((s != (symbolS *)0x0) &&\n       ((iVar1 = S_IS_DEFINED(s), iVar1 != 0 || (iVar1 = symbol_equated_p(s), iVar1 != 0)))) {\n      paVar2 = S_GET_SEGMENT(s);\n      uVar5 = (uint)(reg_section != paVar2);\n    }\n    cframe.ignoring = (int)(uVar5 == test_defined);\n  }\n  else {\n    cframe.ignoring = 1;\n  }" if (parenthesized_expression "(cframe.dead_tree == 0)" ( (binary_expression "cframe.dead_tree == 0" (field_expression "cframe.dead_tree" identifier . field_identifier) == number_literal) )) (compound_statement "{\n    uVar5 = 0;\n    if ((s != (symbolS *)0x0) &&\n       ((iVar1 = S_IS_DEFINED(s), iVar1 != 0 || (iVar1 = symbol_equated_p(s), iVar1 != 0)))) {\n      paVar2 = S_GET_SEGMENT(s);\n      uVar5 = (uint)(reg_section != paVar2);\n    }\n    cframe.ignoring = (int)(uVar5 == test_defined);\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (if_statement "if ((s != (symbolS *)0x0) &&\n       ((iVar1 = S_IS_DEFINED(s), iVar1 != 0 || (iVar1 = symbol_equated_p(s), iVar1 != 0)))) {\n      paVar2 = S_GET_SEGMENT(s);\n      uVar5 = (uint)(reg_section != paVar2);\n    }" if (parenthesized_expression "((s != (symbolS *)0x0) &&\n       ((iVar1 = S_IS_DEFINED(s), iVar1 != 0 || (iVar1 = symbol_equated_p(s), iVar1 != 0))))" ( (binary_expression "(s != (symbolS *)0x0) &&\n       ((iVar1 = S_IS_DEFINED(s), iVar1 != 0 || (iVar1 = symbol_equated_p(s), iVar1 != 0)))" (parenthesized_expression "(s != (symbolS *)0x0)" ( (binary_expression "s != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((iVar1 = S_IS_DEFINED(s), iVar1 != 0 || (iVar1 = symbol_equated_p(s), iVar1 != 0)))" ( (parenthesized_expression "(iVar1 = S_IS_DEFINED(s), iVar1 != 0 || (iVar1 = symbol_equated_p(s), iVar1 != 0))" ( (comma_expression "iVar1 = S_IS_DEFINED(s), iVar1 != 0 || (iVar1 = symbol_equated_p(s), iVar1 != 0)" (assignment_expression "iVar1 = S_IS_DEFINED(s)" identifier = (call_expression "S_IS_DEFINED(s)" identifier (argument_list "(s)" ( identifier )))) , (binary_expression "iVar1 != 0 || (iVar1 = symbol_equated_p(s), iVar1 != 0)" (binary_expression "iVar1 != 0" identifier != number_literal) || (parenthesized_expression "(iVar1 = symbol_equated_p(s), iVar1 != 0)" ( (comma_expression "iVar1 = symbol_equated_p(s), iVar1 != 0" (assignment_expression "iVar1 = symbol_equated_p(s)" identifier = (call_expression "symbol_equated_p(s)" identifier (argument_list "(s)" ( identifier )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) )))) )) ))) )) (compound_statement "{\n      paVar2 = S_GET_SEGMENT(s);\n      uVar5 = (uint)(reg_section != paVar2);\n    }" { (expression_statement "paVar2 = S_GET_SEGMENT(s);" (assignment_expression "paVar2 = S_GET_SEGMENT(s)" identifier = (call_expression "S_GET_SEGMENT(s)" identifier (argument_list "(s)" ( identifier )))) ;) (expression_statement "uVar5 = (uint)(reg_section != paVar2);" (assignment_expression "uVar5 = (uint)(reg_section != paVar2)" identifier = (call_expression "(uint)(reg_section != paVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(reg_section != paVar2)" ( (binary_expression "reg_section != paVar2" identifier != identifier) )))) ;) })) (expression_statement "cframe.ignoring = (int)(uVar5 == test_defined);" (assignment_expression "cframe.ignoring = (int)(uVar5 == test_defined)" (field_expression "cframe.ignoring" identifier . field_identifier) = (cast_expression "(int)(uVar5 == test_defined)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar5 == test_defined)" ( (binary_expression "uVar5 == test_defined" identifier == identifier) )))) ;) }) (else_clause "else {\n    cframe.ignoring = 1;\n  }" else (compound_statement "{\n    cframe.ignoring = 1;\n  }" { (expression_statement "cframe.ignoring = 1;" (assignment_expression "cframe.ignoring = 1" (field_expression "cframe.ignoring" identifier . field_identifier) = number_literal) ;) }))) (if_statement "if ((ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.next_free) < 0x38) {\n    _obstack_newchunk(&cond_obstack,0x38);\n    pcVar3 = cond_obstack.next_free + 0x38;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar3 != cond_obstack.object_base) goto LAB_0010d640;\n  }\n  else {\n    pcVar3 = cond_obstack.next_free + 0x38;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar3 != cond_obstack.object_base) goto LAB_0010d640;\n  }" if (parenthesized_expression "((ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.next_free) < 0x38)" ( (binary_expression "(ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.next_free) < 0x38" (call_expression "(ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.next_free)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)cond_obstack.chunk_limit - (long)cond_obstack.next_free)" ( (binary_expression "(long)cond_obstack.chunk_limit - (long)cond_obstack.next_free" (cast_expression "(long)cond_obstack.chunk_limit" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "cond_obstack.chunk_limit" identifier . field_identifier)) - (cast_expression "(long)cond_obstack.next_free" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "cond_obstack.next_free" identifier . field_identifier))) ))) < number_literal) )) (compound_statement "{\n    _obstack_newchunk(&cond_obstack,0x38);\n    pcVar3 = cond_obstack.next_free + 0x38;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar3 != cond_obstack.object_base) goto LAB_0010d640;\n  }" { (expression_statement "_obstack_newchunk(&cond_obstack,0x38);" (call_expression "_obstack_newchunk(&cond_obstack,0x38)" identifier (argument_list "(&cond_obstack,0x38)" ( (pointer_expression "&cond_obstack" & identifier) , number_literal ))) ;) (expression_statement "pcVar3 = cond_obstack.next_free + 0x38;" (assignment_expression "pcVar3 = cond_obstack.next_free + 0x38" identifier = (binary_expression "cond_obstack.next_free + 0x38" (field_expression "cond_obstack.next_free" identifier . field_identifier) + number_literal)) ;) (expression_statement "pcVar4 = (conditional_frame *)cond_obstack.object_base;" (assignment_expression "pcVar4 = (conditional_frame *)cond_obstack.object_base" identifier = (cast_expression "(conditional_frame *)cond_obstack.object_base" ( (type_descriptor "conditional_frame *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cond_obstack.object_base" identifier . field_identifier))) ;) (if_statement "if (pcVar3 != cond_obstack.object_base) goto LAB_0010d640;" if (parenthesized_expression "(pcVar3 != cond_obstack.object_base)" ( (binary_expression "pcVar3 != cond_obstack.object_base" identifier != (field_expression "cond_obstack.object_base" identifier . field_identifier)) )) (goto_statement "goto LAB_0010d640;" goto statement_identifier ;)) }) (else_clause "else {\n    pcVar3 = cond_obstack.next_free + 0x38;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar3 != cond_obstack.object_base) goto LAB_0010d640;\n  }" else (compound_statement "{\n    pcVar3 = cond_obstack.next_free + 0x38;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar3 != cond_obstack.object_base) goto LAB_0010d640;\n  }" { (expression_statement "pcVar3 = cond_obstack.next_free + 0x38;" (assignment_expression "pcVar3 = cond_obstack.next_free + 0x38" identifier = (binary_expression "cond_obstack.next_free + 0x38" (field_expression "cond_obstack.next_free" identifier . field_identifier) + number_literal)) ;) (expression_statement "pcVar4 = (conditional_frame *)cond_obstack.object_base;" (assignment_expression "pcVar4 = (conditional_frame *)cond_obstack.object_base" identifier = (cast_expression "(conditional_frame *)cond_obstack.object_base" ( (type_descriptor "conditional_frame *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cond_obstack.object_base" identifier . field_identifier))) ;) (if_statement "if (pcVar3 != cond_obstack.object_base) goto LAB_0010d640;" if (parenthesized_expression "(pcVar3 != cond_obstack.object_base)" ( (binary_expression "pcVar3 != cond_obstack.object_base" identifier != (field_expression "cond_obstack.object_base" identifier . field_identifier)) )) (goto_statement "goto LAB_0010d640;" goto statement_identifier ;)) }))) (expression_statement "cond_obstack._80_1_ = cond_obstack._80_1_ | 2;" (assignment_expression "cond_obstack._80_1_ = cond_obstack._80_1_ | 2" (field_expression "cond_obstack._80_1_" identifier . field_identifier) = (binary_expression "cond_obstack._80_1_ | 2" (field_expression "cond_obstack._80_1_" identifier . field_identifier) | number_literal)) ;) (expression_statement "pcVar4 = (conditional_frame *)cond_obstack.object_base;" (assignment_expression "pcVar4 = (conditional_frame *)cond_obstack.object_base" identifier = (cast_expression "(conditional_frame *)cond_obstack.object_base" ( (type_descriptor "conditional_frame *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cond_obstack.object_base" identifier . field_identifier))) ;) (labeled_statement "LAB_0010d640:\n  cond_obstack.object_base =\n       (char *)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask);" statement_identifier : (expression_statement "cond_obstack.object_base =\n       (char *)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask);" (assignment_expression "cond_obstack.object_base =\n       (char *)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask)" (field_expression "cond_obstack.object_base" identifier . field_identifier) = (cast_expression "(char *)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask)" ( (binary_expression "(ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask" (call_expression "(ulong)(pcVar3 + cond_obstack.alignment_mask)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar3 + cond_obstack.alignment_mask)" ( (binary_expression "pcVar3 + cond_obstack.alignment_mask" identifier + (field_expression "cond_obstack.alignment_mask" identifier . field_identifier)) ))) & (unary_expression "~cond_obstack.alignment_mask" ~ (field_expression "cond_obstack.alignment_mask" identifier . field_identifier))) )))) ;)) (if_statement "if ((ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.chunk) <\n      (ulong)((long)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n             (long)cond_obstack.chunk)) {\n    cond_obstack.object_base = cond_obstack.chunk_limit;\n  }" if (parenthesized_expression "((ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.chunk) <\n      (ulong)((long)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n             (long)cond_obstack.chunk))" ( (binary_expression "(ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.chunk) <\n      (ulong)((long)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n             (long)cond_obstack.chunk)" (call_expression "(ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.chunk)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)cond_obstack.chunk_limit - (long)cond_obstack.chunk)" ( (binary_expression "(long)cond_obstack.chunk_limit - (long)cond_obstack.chunk" (cast_expression "(long)cond_obstack.chunk_limit" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "cond_obstack.chunk_limit" identifier . field_identifier)) - (cast_expression "(long)cond_obstack.chunk" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "cond_obstack.chunk" identifier . field_identifier))) ))) < (call_expression "(ulong)((long)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n             (long)cond_obstack.chunk)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n             (long)cond_obstack.chunk)" ( (binary_expression "(long)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n             (long)cond_obstack.chunk" (cast_expression "(long)((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask)" ( (binary_expression "(ulong)(pcVar3 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask" (call_expression "(ulong)(pcVar3 + cond_obstack.alignment_mask)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar3 + cond_obstack.alignment_mask)" ( (binary_expression "pcVar3 + cond_obstack.alignment_mask" identifier + (field_expression "cond_obstack.alignment_mask" identifier . field_identifier)) ))) & (unary_expression "~cond_obstack.alignment_mask" ~ (field_expression "cond_obstack.alignment_mask" identifier . field_identifier))) ))) - (cast_expression "(long)cond_obstack.chunk" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "cond_obstack.chunk" identifier . field_identifier))) )))) )) (compound_statement "{\n    cond_obstack.object_base = cond_obstack.chunk_limit;\n  }" { (expression_statement "cond_obstack.object_base = cond_obstack.chunk_limit;" (assignment_expression "cond_obstack.object_base = cond_obstack.chunk_limit" (field_expression "cond_obstack.object_base" identifier . field_identifier) = (field_expression "cond_obstack.chunk_limit" identifier . field_identifier)) ;) })) (expression_statement "current_cframe = pcVar4;" (assignment_expression "current_cframe = pcVar4" identifier = identifier) ;) (expression_statement "cond_obstack.next_free = cond_obstack.object_base;" (assignment_expression "cond_obstack.next_free = cond_obstack.object_base" (field_expression "cond_obstack.next_free" identifier . field_identifier) = (field_expression "cond_obstack.object_base" identifier . field_identifier)) ;) (expression_statement "(pcVar4->if_file_line).file = cframe.if_file_line.file;" (assignment_expression "(pcVar4->if_file_line).file = cframe.if_file_line.file" (field_expression "(pcVar4->if_file_line).file" (parenthesized_expression "(pcVar4->if_file_line)" ( (field_expression "pcVar4->if_file_line" identifier -> field_identifier) )) . field_identifier) = (field_expression "cframe.if_file_line.file" (field_expression "cframe.if_file_line" identifier . field_identifier) . field_identifier)) ;) (expression_statement "(pcVar4->if_file_line).line = cframe.if_file_line.line;" (assignment_expression "(pcVar4->if_file_line).line = cframe.if_file_line.line" (field_expression "(pcVar4->if_file_line).line" (parenthesized_expression "(pcVar4->if_file_line)" ( (field_expression "pcVar4->if_file_line" identifier -> field_identifier) )) . field_identifier) = (field_expression "cframe.if_file_line.line" (field_expression "cframe.if_file_line" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)&(pcVar4->if_file_line).field_0xc = cframe.if_file_line._12_4_;" (assignment_expression "*(undefined4 *)&(pcVar4->if_file_line).field_0xc = cframe.if_file_line._12_4_" (pointer_expression "*(undefined4 *)&(pcVar4->if_file_line).field_0xc" * (cast_expression "(undefined4 *)&(pcVar4->if_file_line).field_0xc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pcVar4->if_file_line).field_0xc" & (field_expression "(pcVar4->if_file_line).field_0xc" (parenthesized_expression "(pcVar4->if_file_line)" ( (field_expression "pcVar4->if_file_line" identifier -> field_identifier) )) . field_identifier)))) = (field_expression "cframe.if_file_line._12_4_" (field_expression "cframe.if_file_line" identifier . field_identifier) . field_identifier)) ;) (expression_statement "(pcVar4->else_file_line).file = cframe.else_file_line.file;" (assignment_expression "(pcVar4->else_file_line).file = cframe.else_file_line.file" (field_expression "(pcVar4->else_file_line).file" (parenthesized_expression "(pcVar4->else_file_line)" ( (field_expression "pcVar4->else_file_line" identifier -> field_identifier) )) . field_identifier) = (field_expression "cframe.else_file_line.file" (field_expression "cframe.else_file_line" identifier . field_identifier) . field_identifier)) ;) (expression_statement "(pcVar4->else_file_line).line = cframe.else_file_line.line;" (assignment_expression "(pcVar4->else_file_line).line = cframe.else_file_line.line" (field_expression "(pcVar4->else_file_line).line" (parenthesized_expression "(pcVar4->else_file_line)" ( (field_expression "pcVar4->else_file_line" identifier -> field_identifier) )) . field_identifier) = (field_expression "cframe.else_file_line.line" (field_expression "cframe.else_file_line" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)&(pcVar4->else_file_line).field_0xc = cframe.else_file_line._12_4_;" (assignment_expression "*(undefined4 *)&(pcVar4->else_file_line).field_0xc = cframe.else_file_line._12_4_" (pointer_expression "*(undefined4 *)&(pcVar4->else_file_line).field_0xc" * (cast_expression "(undefined4 *)&(pcVar4->else_file_line).field_0xc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pcVar4->else_file_line).field_0xc" & (field_expression "(pcVar4->else_file_line).field_0xc" (parenthesized_expression "(pcVar4->else_file_line)" ( (field_expression "pcVar4->else_file_line" identifier -> field_identifier) )) . field_identifier)))) = (field_expression "cframe.else_file_line._12_4_" (field_expression "cframe.else_file_line" identifier . field_identifier) . field_identifier)) ;) (expression_statement "pcVar4->previous_cframe = cframe.previous_cframe;" (assignment_expression "pcVar4->previous_cframe = cframe.previous_cframe" (field_expression "pcVar4->previous_cframe" identifier -> field_identifier) = (field_expression "cframe.previous_cframe" identifier . field_identifier)) ;) (expression_statement "pcVar4->else_seen = (int)CONCAT44(cframe.ignoring,cframe.else_seen);" (assignment_expression "pcVar4->else_seen = (int)CONCAT44(cframe.ignoring,cframe.else_seen)" (field_expression "pcVar4->else_seen" identifier -> field_identifier) = (cast_expression "(int)CONCAT44(cframe.ignoring,cframe.else_seen)" ( (type_descriptor "int" primitive_type) ) (call_expression "CONCAT44(cframe.ignoring,cframe.else_seen)" identifier (argument_list "(cframe.ignoring,cframe.else_seen)" ( (field_expression "cframe.ignoring" identifier . field_identifier) , (field_expression "cframe.else_seen" identifier . field_identifier) ))))) ;) (expression_statement "pcVar4->ignoring = (int)(CONCAT44(cframe.ignoring,cframe.else_seen) >> 0x20);" (assignment_expression "pcVar4->ignoring = (int)(CONCAT44(cframe.ignoring,cframe.else_seen) >> 0x20)" (field_expression "pcVar4->ignoring" identifier -> field_identifier) = (cast_expression "(int)(CONCAT44(cframe.ignoring,cframe.else_seen) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(CONCAT44(cframe.ignoring,cframe.else_seen) >> 0x20)" ( (binary_expression "CONCAT44(cframe.ignoring,cframe.else_seen) >> 0x20" (call_expression "CONCAT44(cframe.ignoring,cframe.else_seen)" identifier (argument_list "(cframe.ignoring,cframe.else_seen)" ( (field_expression "cframe.ignoring" identifier . field_identifier) , (field_expression "cframe.else_seen" identifier . field_identifier) ))) >> number_literal) )))) ;) (expression_statement "pcVar4->dead_tree = (int)CONCAT44(cframe.macro_nest,cframe.dead_tree);" (assignment_expression "pcVar4->dead_tree = (int)CONCAT44(cframe.macro_nest,cframe.dead_tree)" (field_expression "pcVar4->dead_tree" identifier -> field_identifier) = (cast_expression "(int)CONCAT44(cframe.macro_nest,cframe.dead_tree)" ( (type_descriptor "int" primitive_type) ) (call_expression "CONCAT44(cframe.macro_nest,cframe.dead_tree)" identifier (argument_list "(cframe.macro_nest,cframe.dead_tree)" ( (field_expression "cframe.macro_nest" identifier . field_identifier) , (field_expression "cframe.dead_tree" identifier . field_identifier) ))))) ;) (expression_statement "pcVar4->macro_nest = (int)(CONCAT44(cframe.macro_nest,cframe.dead_tree) >> 0x20);" (assignment_expression "pcVar4->macro_nest = (int)(CONCAT44(cframe.macro_nest,cframe.dead_tree) >> 0x20)" (field_expression "pcVar4->macro_nest" identifier -> field_identifier) = (cast_expression "(int)(CONCAT44(cframe.macro_nest,cframe.dead_tree) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(CONCAT44(cframe.macro_nest,cframe.dead_tree) >> 0x20)" ( (binary_expression "CONCAT44(cframe.macro_nest,cframe.dead_tree) >> 0x20" (call_expression "CONCAT44(cframe.macro_nest,cframe.dead_tree)" identifier (argument_list "(cframe.macro_nest,cframe.dead_tree)" ( (field_expression "cframe.macro_nest" identifier . field_identifier) , (field_expression "cframe.dead_tree" identifier . field_identifier) ))) >> number_literal) )))) ;) (if_statement "if (((((byte)listing & 0x20) != 0) && (cframe.ignoring != 0)) &&\n     ((cframe.previous_cframe == (conditional_frame *)0x0 ||\n      ((cframe.previous_cframe)->ignoring == 0)))) {\n    listing_list(2);\n  }" if (parenthesized_expression "(((((byte)listing & 0x20) != 0) && (cframe.ignoring != 0)) &&\n     ((cframe.previous_cframe == (conditional_frame *)0x0 ||\n      ((cframe.previous_cframe)->ignoring == 0))))" ( (binary_expression "((((byte)listing & 0x20) != 0) && (cframe.ignoring != 0)) &&\n     ((cframe.previous_cframe == (conditional_frame *)0x0 ||\n      ((cframe.previous_cframe)->ignoring == 0)))" (parenthesized_expression "((((byte)listing & 0x20) != 0) && (cframe.ignoring != 0))" ( (binary_expression "(((byte)listing & 0x20) != 0) && (cframe.ignoring != 0)" (parenthesized_expression "(((byte)listing & 0x20) != 0)" ( (binary_expression "((byte)listing & 0x20) != 0" (parenthesized_expression "((byte)listing & 0x20)" ( (binary_expression "(byte)listing & 0x20" (cast_expression "(byte)listing" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(cframe.ignoring != 0)" ( (binary_expression "cframe.ignoring != 0" (field_expression "cframe.ignoring" identifier . field_identifier) != number_literal) ))) )) && (parenthesized_expression "((cframe.previous_cframe == (conditional_frame *)0x0 ||\n      ((cframe.previous_cframe)->ignoring == 0)))" ( (parenthesized_expression "(cframe.previous_cframe == (conditional_frame *)0x0 ||\n      ((cframe.previous_cframe)->ignoring == 0))" ( (binary_expression "cframe.previous_cframe == (conditional_frame *)0x0 ||\n      ((cframe.previous_cframe)->ignoring == 0)" (binary_expression "cframe.previous_cframe == (conditional_frame *)0x0" (field_expression "cframe.previous_cframe" identifier . field_identifier) == (cast_expression "(conditional_frame *)0x0" ( (type_descriptor "conditional_frame *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "((cframe.previous_cframe)->ignoring == 0)" ( (binary_expression "(cframe.previous_cframe)->ignoring == 0" (field_expression "(cframe.previous_cframe)->ignoring" (parenthesized_expression "(cframe.previous_cframe)" ( (field_expression "cframe.previous_cframe" identifier . field_identifier) )) -> field_identifier) == number_literal) ))) )) ))) )) (compound_statement "{\n    listing_list(2);\n  }" { (expression_statement "listing_list(2);" (call_expression "listing_list(2)" identifier (argument_list "(2)" ( number_literal ))) ;) })) (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0010d590(uint param_1)\n\n{\n  undefined1 *puVar1;\n  char cVar2;\n  int iVar3;\n  long lVar4;\n  undefined8 uVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  uint uVar8;\n  byte *local_60;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  undefined8 uStack_40;\n  long local_38;\n  undefined4 uStack_30;\n  uint uStack_2c;\n  int local_28;\n  undefined4 uStack_24;\n  \n  if (*DAT_0016f0a0 == 0x20) {\n    DAT_0016f0a0 = DAT_0016f0a0 + 1;\n  }\n  local_60 = DAT_0016f0a0;\n  if ((((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22)) {\n    uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    FUN_0011c1a0(uVar5);\n    if (DAT_0016efe0 == DAT_0016efd8) {\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }\n    puVar1 = DAT_0016efd8 + 1;\n    *DAT_0016efd8 = 0;\n    DAT_0016efd8 = puVar1;\n    FUN_0011e2c0();\n    return;\n  }\n  cVar2 = FUN_00113480(&local_60);\n  lVar4 = FUN_001292e0(local_60);\n  FUN_00114e60((int)cVar2);\n  FUN_0010d530(&local_58);\n  if (local_28 == 0) {\n    uVar8 = 0;\n    if ((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }\n    uStack_2c = (uint)(uVar8 == param_1);\n  }\n  else {\n    uStack_2c = 1;\n  }\n  if ((ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38) {\n    _obstack_newchunk(&DAT_0016efc0,0x38);\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  else {\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  DAT_0016f010 = DAT_0016f010 | 2;\n  puVar6 = DAT_0016efd0;\nLAB_0010d640:\n  DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0);\n  if ((ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8)) {\n    DAT_0016efd0 = (undefined8 *)DAT_0016efe0;\n  }\n  DAT_0016dbb0 = puVar6;\n  DAT_0016efd8 = (undefined1 *)DAT_0016efd0;\n  *puVar6 = local_58;\n  puVar6[1] = uStack_50;\n  puVar6[2] = local_48;\n  puVar6[3] = uStack_40;\n  puVar6[4] = local_38;\n  puVar6[5] = CONCAT44(uStack_2c,uStack_30);\n  puVar6[6] = CONCAT44(uStack_24,local_28);\n  if (((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&\n     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))) {\n    FUN_00118e60(2);\n  }\n  FUN_0011e4e0();\n  return;\n}\n\n" (function_definition "void FUN_0010d590(uint param_1)\n\n{\n  undefined1 *puVar1;\n  char cVar2;\n  int iVar3;\n  long lVar4;\n  undefined8 uVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  uint uVar8;\n  byte *local_60;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  undefined8 uStack_40;\n  long local_38;\n  undefined4 uStack_30;\n  uint uStack_2c;\n  int local_28;\n  undefined4 uStack_24;\n  \n  if (*DAT_0016f0a0 == 0x20) {\n    DAT_0016f0a0 = DAT_0016f0a0 + 1;\n  }\n  local_60 = DAT_0016f0a0;\n  if ((((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22)) {\n    uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    FUN_0011c1a0(uVar5);\n    if (DAT_0016efe0 == DAT_0016efd8) {\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }\n    puVar1 = DAT_0016efd8 + 1;\n    *DAT_0016efd8 = 0;\n    DAT_0016efd8 = puVar1;\n    FUN_0011e2c0();\n    return;\n  }\n  cVar2 = FUN_00113480(&local_60);\n  lVar4 = FUN_001292e0(local_60);\n  FUN_00114e60((int)cVar2);\n  FUN_0010d530(&local_58);\n  if (local_28 == 0) {\n    uVar8 = 0;\n    if ((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }\n    uStack_2c = (uint)(uVar8 == param_1);\n  }\n  else {\n    uStack_2c = 1;\n  }\n  if ((ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38) {\n    _obstack_newchunk(&DAT_0016efc0,0x38);\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  else {\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  DAT_0016f010 = DAT_0016f010 | 2;\n  puVar6 = DAT_0016efd0;\nLAB_0010d640:\n  DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0);\n  if ((ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8)) {\n    DAT_0016efd0 = (undefined8 *)DAT_0016efe0;\n  }\n  DAT_0016dbb0 = puVar6;\n  DAT_0016efd8 = (undefined1 *)DAT_0016efd0;\n  *puVar6 = local_58;\n  puVar6[1] = uStack_50;\n  puVar6[2] = local_48;\n  puVar6[3] = uStack_40;\n  puVar6[4] = local_38;\n  puVar6[5] = CONCAT44(uStack_2c,uStack_30);\n  puVar6[6] = CONCAT44(uStack_24,local_28);\n  if (((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&\n     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))) {\n    FUN_00118e60(2);\n  }\n  FUN_0011e4e0();\n  return;\n}" primitive_type (function_declarator "FUN_0010d590(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  undefined1 *puVar1;\n  char cVar2;\n  int iVar3;\n  long lVar4;\n  undefined8 uVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  uint uVar8;\n  byte *local_60;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  undefined8 uStack_40;\n  long local_38;\n  undefined4 uStack_30;\n  uint uStack_2c;\n  int local_28;\n  undefined4 uStack_24;\n  \n  if (*DAT_0016f0a0 == 0x20) {\n    DAT_0016f0a0 = DAT_0016f0a0 + 1;\n  }\n  local_60 = DAT_0016f0a0;\n  if ((((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22)) {\n    uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    FUN_0011c1a0(uVar5);\n    if (DAT_0016efe0 == DAT_0016efd8) {\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }\n    puVar1 = DAT_0016efd8 + 1;\n    *DAT_0016efd8 = 0;\n    DAT_0016efd8 = puVar1;\n    FUN_0011e2c0();\n    return;\n  }\n  cVar2 = FUN_00113480(&local_60);\n  lVar4 = FUN_001292e0(local_60);\n  FUN_00114e60((int)cVar2);\n  FUN_0010d530(&local_58);\n  if (local_28 == 0) {\n    uVar8 = 0;\n    if ((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }\n    uStack_2c = (uint)(uVar8 == param_1);\n  }\n  else {\n    uStack_2c = 1;\n  }\n  if ((ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38) {\n    _obstack_newchunk(&DAT_0016efc0,0x38);\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  else {\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  DAT_0016f010 = DAT_0016f010 | 2;\n  puVar6 = DAT_0016efd0;\nLAB_0010d640:\n  DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0);\n  if ((ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8)) {\n    DAT_0016efd0 = (undefined8 *)DAT_0016efe0;\n  }\n  DAT_0016dbb0 = puVar6;\n  DAT_0016efd8 = (undefined1 *)DAT_0016efd0;\n  *puVar6 = local_58;\n  puVar6[1] = uStack_50;\n  puVar6[2] = local_48;\n  puVar6[3] = uStack_40;\n  puVar6[4] = local_38;\n  puVar6[5] = CONCAT44(uStack_2c,uStack_30);\n  puVar6[6] = CONCAT44(uStack_24,local_28);\n  if (((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&\n     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))) {\n    FUN_00118e60(2);\n  }\n  FUN_0011e4e0();\n  return;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "undefined8 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "byte *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined8 uStack_50;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "undefined8 uStack_40;" type_identifier identifier ;) (declaration "long local_38;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 uStack_30;" type_identifier identifier ;) (declaration "uint uStack_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "undefined4 uStack_24;" type_identifier identifier ;) (if_statement "if (*DAT_0016f0a0 == 0x20) {\n    DAT_0016f0a0 = DAT_0016f0a0 + 1;\n  }" if (parenthesized_expression "(*DAT_0016f0a0 == 0x20)" ( (binary_expression "*DAT_0016f0a0 == 0x20" (pointer_expression "*DAT_0016f0a0" * identifier) == number_literal) )) (compound_statement "{\n    DAT_0016f0a0 = DAT_0016f0a0 + 1;\n  }" { (expression_statement "DAT_0016f0a0 = DAT_0016f0a0 + 1;" (assignment_expression "DAT_0016f0a0 = DAT_0016f0a0 + 1" identifier = (binary_expression "DAT_0016f0a0 + 1" identifier + number_literal)) ;) })) (expression_statement "local_60 = DAT_0016f0a0;" (assignment_expression "local_60 = DAT_0016f0a0" identifier = identifier) ;) (if_statement "if ((((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22)) {\n    uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    FUN_0011c1a0(uVar5);\n    if (DAT_0016efe0 == DAT_0016efd8) {\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }\n    puVar1 = DAT_0016efd8 + 1;\n    *DAT_0016efd8 = 0;\n    DAT_0016efd8 = puVar1;\n    FUN_0011e2c0();\n    return;\n  }" if (parenthesized_expression "((((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22))" ( (binary_expression "(((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22)" (parenthesized_expression "(((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0)" ( (binary_expression "((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0" (parenthesized_expression "((&DAT_001645e0)[*DAT_0016f0a0] & 2)" ( (binary_expression "(&DAT_001645e0)[*DAT_0016f0a0] & 2" (subscript_expression "(&DAT_001645e0)[*DAT_0016f0a0]" (parenthesized_expression "(&DAT_001645e0)" ( (pointer_expression "&DAT_001645e0" & identifier) )) [ (pointer_expression "*DAT_0016f0a0" * identifier) ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(*DAT_0016f0a0 != 0x22)" ( (binary_expression "*DAT_0016f0a0 != 0x22" (pointer_expression "*DAT_0016f0a0" * identifier) != number_literal) ))) )) (compound_statement "{\n    uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    FUN_0011c1a0(uVar5);\n    if (DAT_0016efe0 == DAT_0016efd8) {\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }\n    puVar1 = DAT_0016efd8 + 1;\n    *DAT_0016efd8 = 0;\n    DAT_0016efd8 = puVar1;\n    FUN_0011e2c0();\n    return;\n  }" { (expression_statement "uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);" (assignment_expression "uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5)" identifier = (call_expression "dcgettext(0,"invalid identifier for \".ifdef\"",5)" identifier (argument_list "(0,"invalid identifier for \".ifdef\"",5)" ( number_literal , (string_literal ""invalid identifier for \".ifdef\""" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0011c1a0(uVar5);" (call_expression "FUN_0011c1a0(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (if_statement "if (DAT_0016efe0 == DAT_0016efd8) {\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }" if (parenthesized_expression "(DAT_0016efe0 == DAT_0016efd8)" ( (binary_expression "DAT_0016efe0 == DAT_0016efd8" identifier == identifier) )) (compound_statement "{\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }" { (expression_statement "_obstack_newchunk(&DAT_0016efc0,1);" (call_expression "_obstack_newchunk(&DAT_0016efc0,1)" identifier (argument_list "(&DAT_0016efc0,1)" ( (pointer_expression "&DAT_0016efc0" & identifier) , number_literal ))) ;) })) (expression_statement "puVar1 = DAT_0016efd8 + 1;" (assignment_expression "puVar1 = DAT_0016efd8 + 1" identifier = (binary_expression "DAT_0016efd8 + 1" identifier + number_literal)) ;) (expression_statement "*DAT_0016efd8 = 0;" (assignment_expression "*DAT_0016efd8 = 0" (pointer_expression "*DAT_0016efd8" * identifier) = number_literal) ;) (expression_statement "DAT_0016efd8 = puVar1;" (assignment_expression "DAT_0016efd8 = puVar1" identifier = identifier) ;) (expression_statement "FUN_0011e2c0();" (call_expression "FUN_0011e2c0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "cVar2 = FUN_00113480(&local_60);" (assignment_expression "cVar2 = FUN_00113480(&local_60)" identifier = (call_expression "FUN_00113480(&local_60)" identifier (argument_list "(&local_60)" ( (pointer_expression "&local_60" & identifier) )))) ;) (expression_statement "lVar4 = FUN_001292e0(local_60);" (assignment_expression "lVar4 = FUN_001292e0(local_60)" identifier = (call_expression "FUN_001292e0(local_60)" identifier (argument_list "(local_60)" ( identifier )))) ;) (expression_statement "FUN_00114e60((int)cVar2);" (call_expression "FUN_00114e60((int)cVar2)" identifier (argument_list "((int)cVar2)" ( (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "FUN_0010d530(&local_58);" (call_expression "FUN_0010d530(&local_58)" identifier (argument_list "(&local_58)" ( (pointer_expression "&local_58" & identifier) ))) ;) (if_statement "if (local_28 == 0) {\n    uVar8 = 0;\n    if ((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }\n    uStack_2c = (uint)(uVar8 == param_1);\n  }\n  else {\n    uStack_2c = 1;\n  }" if (parenthesized_expression "(local_28 == 0)" ( (binary_expression "local_28 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar8 = 0;\n    if ((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }\n    uStack_2c = (uint)(uVar8 == param_1);\n  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if ((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }" if (parenthesized_expression "((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0))))" ( (binary_expression "(lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))" (parenthesized_expression "(lVar4 != 0)" ( (binary_expression "lVar4 != 0" identifier != number_literal) )) && (parenthesized_expression "((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))" ( (parenthesized_expression "(iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0))" ( (comma_expression "iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)" (assignment_expression "iVar3 = FUN_00127510(lVar4)" identifier = (call_expression "FUN_00127510(lVar4)" identifier (argument_list "(lVar4)" ( identifier )))) , (binary_expression "iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)" (binary_expression "iVar3 != 0" identifier != number_literal) || (parenthesized_expression "(iVar3 = FUN_0012a370(lVar4), iVar3 != 0)" ( (comma_expression "iVar3 = FUN_0012a370(lVar4), iVar3 != 0" (assignment_expression "iVar3 = FUN_0012a370(lVar4)" identifier = (call_expression "FUN_0012a370(lVar4)" identifier (argument_list "(lVar4)" ( identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) )))) )) ))) )) (compound_statement "{\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }" { (expression_statement "lVar4 = FUN_00127840(lVar4);" (assignment_expression "lVar4 = FUN_00127840(lVar4)" identifier = (call_expression "FUN_00127840(lVar4)" identifier (argument_list "(lVar4)" ( identifier )))) ;) (expression_statement "uVar8 = (uint)(DAT_0016eee0 != lVar4);" (assignment_expression "uVar8 = (uint)(DAT_0016eee0 != lVar4)" identifier = (call_expression "(uint)(DAT_0016eee0 != lVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(DAT_0016eee0 != lVar4)" ( (binary_expression "DAT_0016eee0 != lVar4" identifier != identifier) )))) ;) })) (expression_statement "uStack_2c = (uint)(uVar8 == param_1);" (assignment_expression "uStack_2c = (uint)(uVar8 == param_1)" identifier = (call_expression "(uint)(uVar8 == param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 == param_1)" ( (binary_expression "uVar8 == param_1" identifier == identifier) )))) ;) }) (else_clause "else {\n    uStack_2c = 1;\n  }" else (compound_statement "{\n    uStack_2c = 1;\n  }" { (expression_statement "uStack_2c = 1;" (assignment_expression "uStack_2c = 1" identifier = number_literal) ;) }))) (if_statement "if ((ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38) {\n    _obstack_newchunk(&DAT_0016efc0,0x38);\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  else {\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }" if (parenthesized_expression "((ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38)" ( (binary_expression "(ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38" (call_expression "(ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)DAT_0016efe0 - (long)DAT_0016efd8)" ( (binary_expression "(long)DAT_0016efe0 - (long)DAT_0016efd8" (cast_expression "(long)DAT_0016efe0" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)DAT_0016efd8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) < number_literal) )) (compound_statement "{\n    _obstack_newchunk(&DAT_0016efc0,0x38);\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }" { (expression_statement "_obstack_newchunk(&DAT_0016efc0,0x38);" (call_expression "_obstack_newchunk(&DAT_0016efc0,0x38)" identifier (argument_list "(&DAT_0016efc0,0x38)" ( (pointer_expression "&DAT_0016efc0" & identifier) , number_literal ))) ;) (expression_statement "puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);" (assignment_expression "puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38)" identifier = (cast_expression "(undefined8 *)(DAT_0016efd8 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0016efd8 + 0x38)" ( (binary_expression "DAT_0016efd8 + 0x38" identifier + number_literal) )))) ;) (expression_statement "puVar6 = DAT_0016efd0;" (assignment_expression "puVar6 = DAT_0016efd0" identifier = identifier) ;) (if_statement "if (puVar7 != DAT_0016efd0) goto LAB_0010d640;" if (parenthesized_expression "(puVar7 != DAT_0016efd0)" ( (binary_expression "puVar7 != DAT_0016efd0" identifier != identifier) )) (goto_statement "goto LAB_0010d640;" goto statement_identifier ;)) }) (else_clause "else {\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }" else (compound_statement "{\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }" { (expression_statement "puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);" (assignment_expression "puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38)" identifier = (cast_expression "(undefined8 *)(DAT_0016efd8 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0016efd8 + 0x38)" ( (binary_expression "DAT_0016efd8 + 0x38" identifier + number_literal) )))) ;) (expression_statement "puVar6 = DAT_0016efd0;" (assignment_expression "puVar6 = DAT_0016efd0" identifier = identifier) ;) (if_statement "if (puVar7 != DAT_0016efd0) goto LAB_0010d640;" if (parenthesized_expression "(puVar7 != DAT_0016efd0)" ( (binary_expression "puVar7 != DAT_0016efd0" identifier != identifier) )) (goto_statement "goto LAB_0010d640;" goto statement_identifier ;)) }))) (expression_statement "DAT_0016f010 = DAT_0016f010 | 2;" (assignment_expression "DAT_0016f010 = DAT_0016f010 | 2" identifier = (binary_expression "DAT_0016f010 | 2" identifier | number_literal)) ;) (expression_statement "puVar6 = DAT_0016efd0;" (assignment_expression "puVar6 = DAT_0016efd0" identifier = identifier) ;) (labeled_statement "LAB_0010d640:\n  DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0);" statement_identifier : (expression_statement "DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0);" (assignment_expression "DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0)" identifier = (cast_expression "(undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0)" ( (binary_expression "(ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0" (call_expression "(ulong)((long)puVar7 + DAT_0016eff0)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)puVar7 + DAT_0016eff0)" ( (binary_expression "(long)puVar7 + DAT_0016eff0" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) & (unary_expression "~DAT_0016eff0" ~ identifier)) )))) ;)) (if_statement "if ((ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8)) {\n    DAT_0016efd0 = (undefined8 *)DAT_0016efe0;\n  }" if (parenthesized_expression "((ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8))" ( (binary_expression "(ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8)" (call_expression "(ulong)((long)DAT_0016efe0 - DAT_0016efc8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)DAT_0016efe0 - DAT_0016efc8)" ( (binary_expression "(long)DAT_0016efe0 - DAT_0016efc8" (cast_expression "(long)DAT_0016efe0" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - identifier) ))) < (call_expression "(ulong)((long)DAT_0016efd0 - DAT_0016efc8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)DAT_0016efd0 - DAT_0016efc8)" ( (binary_expression "(long)DAT_0016efd0 - DAT_0016efc8" (cast_expression "(long)DAT_0016efd0" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - identifier) )))) )) (compound_statement "{\n    DAT_0016efd0 = (undefined8 *)DAT_0016efe0;\n  }" { (expression_statement "DAT_0016efd0 = (undefined8 *)DAT_0016efe0;" (assignment_expression "DAT_0016efd0 = (undefined8 *)DAT_0016efe0" identifier = (cast_expression "(undefined8 *)DAT_0016efe0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "DAT_0016dbb0 = puVar6;" (assignment_expression "DAT_0016dbb0 = puVar6" identifier = identifier) ;) (expression_statement "DAT_0016efd8 = (undefined1 *)DAT_0016efd0;" (assignment_expression "DAT_0016efd8 = (undefined1 *)DAT_0016efd0" identifier = (cast_expression "(undefined1 *)DAT_0016efd0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*puVar6 = local_58;" (assignment_expression "*puVar6 = local_58" (pointer_expression "*puVar6" * identifier) = identifier) ;) (expression_statement "puVar6[1] = uStack_50;" (assignment_expression "puVar6[1] = uStack_50" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[2] = local_48;" (assignment_expression "puVar6[2] = local_48" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = uStack_40;" (assignment_expression "puVar6[3] = uStack_40" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[4] = local_38;" (assignment_expression "puVar6[4] = local_38" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[5] = CONCAT44(uStack_2c,uStack_30);" (assignment_expression "puVar6[5] = CONCAT44(uStack_2c,uStack_30)" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = (call_expression "CONCAT44(uStack_2c,uStack_30)" identifier (argument_list "(uStack_2c,uStack_30)" ( identifier , identifier )))) ;) (expression_statement "puVar6[6] = CONCAT44(uStack_24,local_28);" (assignment_expression "puVar6[6] = CONCAT44(uStack_24,local_28)" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = (call_expression "CONCAT44(uStack_24,local_28)" identifier (argument_list "(uStack_24,local_28)" ( identifier , identifier )))) ;) (if_statement "if (((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&\n     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))) {\n    FUN_00118e60(2);\n  }" if (parenthesized_expression "(((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&\n     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0))))" ( (binary_expression "((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&\n     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))" (parenthesized_expression "((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0))" ( (binary_expression "(((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)" (parenthesized_expression "(((byte)DAT_0016eef4 & 0x20) != 0)" ( (binary_expression "((byte)DAT_0016eef4 & 0x20) != 0" (parenthesized_expression "((byte)DAT_0016eef4 & 0x20)" ( (binary_expression "(byte)DAT_0016eef4 & 0x20" (cast_expression "(byte)DAT_0016eef4" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(uStack_2c != 0)" ( (binary_expression "uStack_2c != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))" ( (parenthesized_expression "(local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0))" ( (binary_expression "local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)" (binary_expression "local_38 == 0" identifier == number_literal) || (parenthesized_expression "(*(int *)(local_38 + 0x2c) == 0)" ( (binary_expression "*(int *)(local_38 + 0x2c) == 0" (pointer_expression "*(int *)(local_38 + 0x2c)" * (cast_expression "(int *)(local_38 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_38 + 0x2c)" ( (binary_expression "local_38 + 0x2c" identifier + number_literal) )))) == number_literal) ))) )) ))) )) (compound_statement "{\n    FUN_00118e60(2);\n  }" { (expression_statement "FUN_00118e60(2);" (call_expression "FUN_00118e60(2)" identifier (argument_list "(2)" ( number_literal ))) ;) })) (expression_statement "FUN_0011e4e0();" (call_expression "FUN_0011e4e0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) 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 ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == 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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (pointer_expression * IDENT) ]) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != IDENT) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) & (unary_expression ~ IDENT)) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - IDENT) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - IDENT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0010d590(uint param_1)\n\n{\n  undefined1 *puVar1;\n  char cVar2;\n  int iVar3;\n  long lVar4;\n  undefined8 uVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  uint uVar8;\n  byte *local_60;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  undefined8 uStack_40;\n  long local_38;\n  undefined4 uStack_30;\n  uint uStack_2c;\n  int local_28;\n  undefined4 uStack_24;\n  \n  if (*DAT_0016f0a0 == 0x20) {\n    DAT_0016f0a0 = DAT_0016f0a0 + 1;\n  }\n  local_60 = DAT_0016f0a0;\n  if ((((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22)) {\n    uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    FUN_0011c1a0(uVar5);\n    if (DAT_0016efe0 == DAT_0016efd8) {\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }\n    puVar1 = DAT_0016efd8 + 1;\n    *DAT_0016efd8 = 0;\n    DAT_0016efd8 = puVar1;\n    FUN_0011e2c0();\n    return;\n  }\n  cVar2 = FUN_00113480(&local_60);\n  lVar4 = FUN_001292e0(local_60);\n  FUN_00114e60((int)cVar2);\n  FUN_0010d530(&local_58);\n  if (local_28 == 0) {\n    uVar8 = 0;\n    if ((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }\n    uStack_2c = (uint)(uVar8 == param_1);\n  }\n  else {\n    uStack_2c = 1;\n  }\n  if ((ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38) {\n    _obstack_newchunk(&DAT_0016efc0,0x38);\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  else {\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  DAT_0016f010 = DAT_0016f010 | 2;\n  puVar6 = DAT_0016efd0;\nLAB_0010d640:\n  DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0);\n  if ((ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8)) {\n    DAT_0016efd0 = (undefined8 *)DAT_0016efe0;\n  }\n  DAT_0016dbb0 = puVar6;\n  DAT_0016efd8 = (undefined1 *)DAT_0016efd0;\n  *puVar6 = local_58;\n  puVar6[1] = uStack_50;\n  puVar6[2] = local_48;\n  puVar6[3] = uStack_40;\n  puVar6[4] = local_38;\n  puVar6[5] = CONCAT44(uStack_2c,uStack_30);\n  puVar6[6] = CONCAT44(uStack_24,local_28);\n  if (((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&\n     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))) {\n    FUN_00118e60(2);\n  }\n  FUN_0011e4e0();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0010d590(uint param_1)" (identifier "FUN_0010d590") (parameter_list "(uint param_1)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined1 *puVar1;\n  char cVar2;\n  int iVar3;\n  long lVar4;\n  undefined8 uVar5;\n  undefined8 *puVar6;\n  undefined8 *puVar7;\n  uint uVar8;\n  byte *local_60;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  undefined8 uStack_40;\n  long local_38;\n  undefined4 uStack_30;\n  uint uStack_2c;\n  int local_28;\n  undefined4 uStack_24;\n  \n  if (*DAT_0016f0a0 == 0x20) {\n    DAT_0016f0a0 = DAT_0016f0a0 + 1;\n  }\n  local_60 = DAT_0016f0a0;\n  if ((((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22)) {\n    uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    FUN_0011c1a0(uVar5);\n    if (DAT_0016efe0 == DAT_0016efd8) {\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }\n    puVar1 = DAT_0016efd8 + 1;\n    *DAT_0016efd8 = 0;\n    DAT_0016efd8 = puVar1;\n    FUN_0011e2c0();\n    return;\n  }\n  cVar2 = FUN_00113480(&local_60);\n  lVar4 = FUN_001292e0(local_60);\n  FUN_00114e60((int)cVar2);\n  FUN_0010d530(&local_58);\n  if (local_28 == 0) {\n    uVar8 = 0;\n    if ((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }\n    uStack_2c = (uint)(uVar8 == param_1);\n  }\n  else {\n    uStack_2c = 1;\n  }\n  if ((ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38) {\n    _obstack_newchunk(&DAT_0016efc0,0x38);\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  else {\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  DAT_0016f010 = DAT_0016f010 | 2;\n  puVar6 = DAT_0016efd0;\nLAB_0010d640:\n  DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0);\n  if ((ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8)) {\n    DAT_0016efd0 = (undefined8 *)DAT_0016efe0;\n  }\n  DAT_0016dbb0 = puVar6;\n  DAT_0016efd8 = (undefined1 *)DAT_0016efd0;\n  *puVar6 = local_58;\n  puVar6[1] = uStack_50;\n  puVar6[2] = local_48;\n  puVar6[3] = uStack_40;\n  puVar6[4] = local_38;\n  puVar6[5] = CONCAT44(uStack_2c,uStack_30);\n  puVar6[6] = CONCAT44(uStack_24,local_28);\n  if (((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&\n     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))) {\n    FUN_00118e60(2);\n  }\n  FUN_0011e4e0();\n  return;\n}" ({ "{") (declaration "undefined1 *puVar1;" (type_identifier "undefined1") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "undefined8 *puVar6;" (type_identifier "undefined8") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined8 *puVar7;" (type_identifier "undefined8") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "byte *local_60;" (type_identifier "byte") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "undefined8 local_58;" (type_identifier "undefined8") (identifier "local_58") (; ";")) (declaration "undefined8 uStack_50;" (type_identifier "undefined8") (identifier "uStack_50") (; ";")) (declaration "undefined8 local_48;" (type_identifier "undefined8") (identifier "local_48") (; ";")) (declaration "undefined8 uStack_40;" (type_identifier "undefined8") (identifier "uStack_40") (; ";")) (declaration "long local_38;" (sized_type_specifier "long" (long "long")) (identifier "local_38") (; ";")) (declaration "undefined4 uStack_30;" (type_identifier "undefined4") (identifier "uStack_30") (; ";")) (declaration "uint uStack_2c;" (type_identifier "uint") (identifier "uStack_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "undefined4 uStack_24;" (type_identifier "undefined4") (identifier "uStack_24") (; ";")) (if_statement "if (*DAT_0016f0a0 == 0x20) {\n    DAT_0016f0a0 = DAT_0016f0a0 + 1;\n  }" (if "if") (parenthesized_expression "(*DAT_0016f0a0 == 0x20)" (( "(") (binary_expression "*DAT_0016f0a0 == 0x20" (pointer_expression "*DAT_0016f0a0" (* "*") (identifier "DAT_0016f0a0")) (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n    DAT_0016f0a0 = DAT_0016f0a0 + 1;\n  }" ({ "{") (expression_statement "DAT_0016f0a0 = DAT_0016f0a0 + 1;" (assignment_expression "DAT_0016f0a0 = DAT_0016f0a0 + 1" (identifier "DAT_0016f0a0") (= "=") (binary_expression "DAT_0016f0a0 + 1" (identifier "DAT_0016f0a0") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_60 = DAT_0016f0a0;" (assignment_expression "local_60 = DAT_0016f0a0" (identifier "local_60") (= "=") (identifier "DAT_0016f0a0")) (; ";")) (if_statement "if ((((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22)) {\n    uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    FUN_0011c1a0(uVar5);\n    if (DAT_0016efe0 == DAT_0016efd8) {\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }\n    puVar1 = DAT_0016efd8 + 1;\n    *DAT_0016efd8 = 0;\n    DAT_0016efd8 = puVar1;\n    FUN_0011e2c0();\n    return;\n  }" (if "if") (parenthesized_expression "((((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22))" (( "(") (binary_expression "(((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22)" (parenthesized_expression "(((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0)" (( "(") (binary_expression "((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0" (parenthesized_expression "((&DAT_001645e0)[*DAT_0016f0a0] & 2)" (( "(") (binary_expression "(&DAT_001645e0)[*DAT_0016f0a0] & 2" (subscript_expression "(&DAT_001645e0)[*DAT_0016f0a0]" (parenthesized_expression "(&DAT_001645e0)" (( "(") (pointer_expression "&DAT_001645e0" (& "&") (identifier "DAT_001645e0")) () ")")) ([ "[") (pointer_expression "*DAT_0016f0a0" (* "*") (identifier "DAT_0016f0a0")) (] "]")) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*DAT_0016f0a0 != 0x22)" (( "(") (binary_expression "*DAT_0016f0a0 != 0x22" (pointer_expression "*DAT_0016f0a0" (* "*") (identifier "DAT_0016f0a0")) (!= "!=") (number_literal "0x22")) () ")"))) () ")")) (compound_statement "{\n    uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);\n    FUN_0011c1a0(uVar5);\n    if (DAT_0016efe0 == DAT_0016efd8) {\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }\n    puVar1 = DAT_0016efd8 + 1;\n    *DAT_0016efd8 = 0;\n    DAT_0016efd8 = puVar1;\n    FUN_0011e2c0();\n    return;\n  }" ({ "{") (expression_statement "uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);" (assignment_expression "uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5)" (identifier "uVar5") (= "=") (call_expression "dcgettext(0,"invalid identifier for \".ifdef\"",5)" (identifier "dcgettext") (argument_list "(0,"invalid identifier for \".ifdef\"",5)" (( "(") (number_literal "0") (, ",") (string_literal ""invalid identifier for \".ifdef\""" (" """) (string_content "invalid identifier for ") (escape_sequence "\"") (string_content ".ifdef") (escape_sequence "\"") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011c1a0(uVar5);" (call_expression "FUN_0011c1a0(uVar5)" (identifier "FUN_0011c1a0") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (if_statement "if (DAT_0016efe0 == DAT_0016efd8) {\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }" (if "if") (parenthesized_expression "(DAT_0016efe0 == DAT_0016efd8)" (( "(") (binary_expression "DAT_0016efe0 == DAT_0016efd8" (identifier "DAT_0016efe0") (== "==") (identifier "DAT_0016efd8")) () ")")) (compound_statement "{\n      _obstack_newchunk(&DAT_0016efc0,1);\n    }" ({ "{") (expression_statement "_obstack_newchunk(&DAT_0016efc0,1);" (call_expression "_obstack_newchunk(&DAT_0016efc0,1)" (identifier "_obstack_newchunk") (argument_list "(&DAT_0016efc0,1)" (( "(") (pointer_expression "&DAT_0016efc0" (& "&") (identifier "DAT_0016efc0")) (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar1 = DAT_0016efd8 + 1;" (assignment_expression "puVar1 = DAT_0016efd8 + 1" (identifier "puVar1") (= "=") (binary_expression "DAT_0016efd8 + 1" (identifier "DAT_0016efd8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*DAT_0016efd8 = 0;" (assignment_expression "*DAT_0016efd8 = 0" (pointer_expression "*DAT_0016efd8" (* "*") (identifier "DAT_0016efd8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_0016efd8 = puVar1;" (assignment_expression "DAT_0016efd8 = puVar1" (identifier "DAT_0016efd8") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "FUN_0011e2c0();" (call_expression "FUN_0011e2c0()" (identifier "FUN_0011e2c0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "cVar2 = FUN_00113480(&local_60);" (assignment_expression "cVar2 = FUN_00113480(&local_60)" (identifier "cVar2") (= "=") (call_expression "FUN_00113480(&local_60)" (identifier "FUN_00113480") (argument_list "(&local_60)" (( "(") (pointer_expression "&local_60" (& "&") (identifier "local_60")) () ")")))) (; ";")) (expression_statement "lVar4 = FUN_001292e0(local_60);" (assignment_expression "lVar4 = FUN_001292e0(local_60)" (identifier "lVar4") (= "=") (call_expression "FUN_001292e0(local_60)" (identifier "FUN_001292e0") (argument_list "(local_60)" (( "(") (identifier "local_60") () ")")))) (; ";")) (expression_statement "FUN_00114e60((int)cVar2);" (call_expression "FUN_00114e60((int)cVar2)" (identifier "FUN_00114e60") (argument_list "((int)cVar2)" (( "(") (cast_expression "(int)cVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar2")) () ")"))) (; ";")) (expression_statement "FUN_0010d530(&local_58);" (call_expression "FUN_0010d530(&local_58)" (identifier "FUN_0010d530") (argument_list "(&local_58)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (if_statement "if (local_28 == 0) {\n    uVar8 = 0;\n    if ((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }\n    uStack_2c = (uint)(uVar8 == param_1);\n  }\n  else {\n    uStack_2c = 1;\n  }" (if "if") (parenthesized_expression "(local_28 == 0)" (( "(") (binary_expression "local_28 == 0" (identifier "local_28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar8 = 0;\n    if ((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }\n    uStack_2c = (uint)(uVar8 == param_1);\n  }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }" (if "if") (parenthesized_expression "((lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0))))" (( "(") (binary_expression "(lVar4 != 0) &&\n       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))" (parenthesized_expression "(lVar4 != 0)" (( "(") (binary_expression "lVar4 != 0" (identifier "lVar4") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))" (( "(") (parenthesized_expression "(iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0))" (( "(") (comma_expression "iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)" (assignment_expression "iVar3 = FUN_00127510(lVar4)" (identifier "iVar3") (= "=") (call_expression "FUN_00127510(lVar4)" (identifier "FUN_00127510") (argument_list "(lVar4)" (( "(") (identifier "lVar4") () ")")))) (, ",") (binary_expression "iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)" (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar3 = FUN_0012a370(lVar4), iVar3 != 0)" (( "(") (comma_expression "iVar3 = FUN_0012a370(lVar4), iVar3 != 0" (assignment_expression "iVar3 = FUN_0012a370(lVar4)" (identifier "iVar3") (= "=") (call_expression "FUN_0012a370(lVar4)" (identifier "FUN_0012a370") (argument_list "(lVar4)" (( "(") (identifier "lVar4") () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n      lVar4 = FUN_00127840(lVar4);\n      uVar8 = (uint)(DAT_0016eee0 != lVar4);\n    }" ({ "{") (expression_statement "lVar4 = FUN_00127840(lVar4);" (assignment_expression "lVar4 = FUN_00127840(lVar4)" (identifier "lVar4") (= "=") (call_expression "FUN_00127840(lVar4)" (identifier "FUN_00127840") (argument_list "(lVar4)" (( "(") (identifier "lVar4") () ")")))) (; ";")) (expression_statement "uVar8 = (uint)(DAT_0016eee0 != lVar4);" (assignment_expression "uVar8 = (uint)(DAT_0016eee0 != lVar4)" (identifier "uVar8") (= "=") (call_expression "(uint)(DAT_0016eee0 != lVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(DAT_0016eee0 != lVar4)" (( "(") (binary_expression "DAT_0016eee0 != lVar4" (identifier "DAT_0016eee0") (!= "!=") (identifier "lVar4")) () ")")))) (; ";")) (} "}"))) (expression_statement "uStack_2c = (uint)(uVar8 == param_1);" (assignment_expression "uStack_2c = (uint)(uVar8 == param_1)" (identifier "uStack_2c") (= "=") (call_expression "(uint)(uVar8 == param_1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar8 == param_1)" (( "(") (binary_expression "uVar8 == param_1" (identifier "uVar8") (== "==") (identifier "param_1")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    uStack_2c = 1;\n  }" (else "else") (compound_statement "{\n    uStack_2c = 1;\n  }" ({ "{") (expression_statement "uStack_2c = 1;" (assignment_expression "uStack_2c = 1" (identifier "uStack_2c") (= "=") (number_literal "1")) (; ";")) (} "}")))) (if_statement "if ((ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38) {\n    _obstack_newchunk(&DAT_0016efc0,0x38);\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }\n  else {\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }" (if "if") (parenthesized_expression "((ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38)" (( "(") (binary_expression "(ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38" (call_expression "(ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((long)DAT_0016efe0 - (long)DAT_0016efd8)" (( "(") (binary_expression "(long)DAT_0016efe0 - (long)DAT_0016efd8" (cast_expression "(long)DAT_0016efe0" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_0016efe0")) (- "-") (cast_expression "(long)DAT_0016efd8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_0016efd8"))) () ")"))) (< "<") (number_literal "0x38")) () ")")) (compound_statement "{\n    _obstack_newchunk(&DAT_0016efc0,0x38);\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }" ({ "{") (expression_statement "_obstack_newchunk(&DAT_0016efc0,0x38);" (call_expression "_obstack_newchunk(&DAT_0016efc0,0x38)" (identifier "_obstack_newchunk") (argument_list "(&DAT_0016efc0,0x38)" (( "(") (pointer_expression "&DAT_0016efc0" (& "&") (identifier "DAT_0016efc0")) (, ",") (number_literal "0x38") () ")"))) (; ";")) (expression_statement "puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);" (assignment_expression "puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38)" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)(DAT_0016efd8 + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0016efd8 + 0x38)" (( "(") (binary_expression "DAT_0016efd8 + 0x38" (identifier "DAT_0016efd8") (+ "+") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "puVar6 = DAT_0016efd0;" (assignment_expression "puVar6 = DAT_0016efd0" (identifier "puVar6") (= "=") (identifier "DAT_0016efd0")) (; ";")) (if_statement "if (puVar7 != DAT_0016efd0) goto LAB_0010d640;" (if "if") (parenthesized_expression "(puVar7 != DAT_0016efd0)" (( "(") (binary_expression "puVar7 != DAT_0016efd0" (identifier "puVar7") (!= "!=") (identifier "DAT_0016efd0")) () ")")) (goto_statement "goto LAB_0010d640;" (goto "goto") (statement_identifier "LAB_0010d640") (; ";"))) (} "}")) (else_clause "else {\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }" (else "else") (compound_statement "{\n    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);\n    puVar6 = DAT_0016efd0;\n    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;\n  }" ({ "{") (expression_statement "puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);" (assignment_expression "puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38)" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)(DAT_0016efd8 + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0016efd8 + 0x38)" (( "(") (binary_expression "DAT_0016efd8 + 0x38" (identifier "DAT_0016efd8") (+ "+") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "puVar6 = DAT_0016efd0;" (assignment_expression "puVar6 = DAT_0016efd0" (identifier "puVar6") (= "=") (identifier "DAT_0016efd0")) (; ";")) (if_statement "if (puVar7 != DAT_0016efd0) goto LAB_0010d640;" (if "if") (parenthesized_expression "(puVar7 != DAT_0016efd0)" (( "(") (binary_expression "puVar7 != DAT_0016efd0" (identifier "puVar7") (!= "!=") (identifier "DAT_0016efd0")) () ")")) (goto_statement "goto LAB_0010d640;" (goto "goto") (statement_identifier "LAB_0010d640") (; ";"))) (} "}")))) (expression_statement "DAT_0016f010 = DAT_0016f010 | 2;" (assignment_expression "DAT_0016f010 = DAT_0016f010 | 2" (identifier "DAT_0016f010") (= "=") (binary_expression "DAT_0016f010 | 2" (identifier "DAT_0016f010") (| "|") (number_literal "2"))) (; ";")) (expression_statement "puVar6 = DAT_0016efd0;" (assignment_expression "puVar6 = DAT_0016efd0" (identifier "puVar6") (= "=") (identifier "DAT_0016efd0")) (; ";")) (labeled_statement "LAB_0010d640:\n  DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0);" (statement_identifier "LAB_0010d640") (: ":") (expression_statement "DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0);" (assignment_expression "DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0)" (identifier "DAT_0016efd0") (= "=") (cast_expression "(undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0)" (( "(") (binary_expression "(ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0" (call_expression "(ulong)((long)puVar7 + DAT_0016eff0)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((long)puVar7 + DAT_0016eff0)" (( "(") (binary_expression "(long)puVar7 + DAT_0016eff0" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (identifier "DAT_0016eff0")) () ")"))) (& "&") (unary_expression "~DAT_0016eff0" (~ "~") (identifier "DAT_0016eff0"))) () ")")))) (; ";"))) (if_statement "if ((ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8)) {\n    DAT_0016efd0 = (undefined8 *)DAT_0016efe0;\n  }" (if "if") (parenthesized_expression "((ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8))" (( "(") (binary_expression "(ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8)" (call_expression "(ulong)((long)DAT_0016efe0 - DAT_0016efc8)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((long)DAT_0016efe0 - DAT_0016efc8)" (( "(") (binary_expression "(long)DAT_0016efe0 - DAT_0016efc8" (cast_expression "(long)DAT_0016efe0" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_0016efe0")) (- "-") (identifier "DAT_0016efc8")) () ")"))) (< "<") (call_expression "(ulong)((long)DAT_0016efd0 - DAT_0016efc8)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((long)DAT_0016efd0 - DAT_0016efc8)" (( "(") (binary_expression "(long)DAT_0016efd0 - DAT_0016efc8" (cast_expression "(long)DAT_0016efd0" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_0016efd0")) (- "-") (identifier "DAT_0016efc8")) () ")")))) () ")")) (compound_statement "{\n    DAT_0016efd0 = (undefined8 *)DAT_0016efe0;\n  }" ({ "{") (expression_statement "DAT_0016efd0 = (undefined8 *)DAT_0016efe0;" (assignment_expression "DAT_0016efd0 = (undefined8 *)DAT_0016efe0" (identifier "DAT_0016efd0") (= "=") (cast_expression "(undefined8 *)DAT_0016efe0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_0016efe0"))) (; ";")) (} "}"))) (expression_statement "DAT_0016dbb0 = puVar6;" (assignment_expression "DAT_0016dbb0 = puVar6" (identifier "DAT_0016dbb0") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "DAT_0016efd8 = (undefined1 *)DAT_0016efd0;" (assignment_expression "DAT_0016efd8 = (undefined1 *)DAT_0016efd0" (identifier "DAT_0016efd8") (= "=") (cast_expression "(undefined1 *)DAT_0016efd0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_0016efd0"))) (; ";")) (expression_statement "*puVar6 = local_58;" (assignment_expression "*puVar6 = local_58" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "puVar6[1] = uStack_50;" (assignment_expression "puVar6[1] = uStack_50" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uStack_50")) (; ";")) (expression_statement "puVar6[2] = local_48;" (assignment_expression "puVar6[2] = local_48" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "puVar6[3] = uStack_40;" (assignment_expression "puVar6[3] = uStack_40" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uStack_40")) (; ";")) (expression_statement "puVar6[4] = local_38;" (assignment_expression "puVar6[4] = local_38" (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_38")) (; ";")) (expression_statement "puVar6[5] = CONCAT44(uStack_2c,uStack_30);" (assignment_expression "puVar6[5] = CONCAT44(uStack_2c,uStack_30)" (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]")) (= "=") (call_expression "CONCAT44(uStack_2c,uStack_30)" (identifier "CONCAT44") (argument_list "(uStack_2c,uStack_30)" (( "(") (identifier "uStack_2c") (, ",") (identifier "uStack_30") () ")")))) (; ";")) (expression_statement "puVar6[6] = CONCAT44(uStack_24,local_28);" (assignment_expression "puVar6[6] = CONCAT44(uStack_24,local_28)" (subscript_expression "puVar6[6]" (identifier "puVar6") ([ "[") (number_literal "6") (] "]")) (= "=") (call_expression "CONCAT44(uStack_24,local_28)" (identifier "CONCAT44") (argument_list "(uStack_24,local_28)" (( "(") (identifier "uStack_24") (, ",") (identifier "local_28") () ")")))) (; ";")) (if_statement "if (((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&\n     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))) {\n    FUN_00118e60(2);\n  }" (if "if") (parenthesized_expression "(((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&\n     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0))))" (( "(") (binary_expression "((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&\n     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))" (parenthesized_expression "((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0))" (( "(") (binary_expression "(((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)" (parenthesized_expression "(((byte)DAT_0016eef4 & 0x20) != 0)" (( "(") (binary_expression "((byte)DAT_0016eef4 & 0x20) != 0" (parenthesized_expression "((byte)DAT_0016eef4 & 0x20)" (( "(") (binary_expression "(byte)DAT_0016eef4 & 0x20" (cast_expression "(byte)DAT_0016eef4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_0016eef4")) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uStack_2c != 0)" (( "(") (binary_expression "uStack_2c != 0" (identifier "uStack_2c") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))" (( "(") (parenthesized_expression "(local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0))" (( "(") (binary_expression "local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)" (binary_expression "local_38 == 0" (identifier "local_38") (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(*(int *)(local_38 + 0x2c) == 0)" (( "(") (binary_expression "*(int *)(local_38 + 0x2c) == 0" (pointer_expression "*(int *)(local_38 + 0x2c)" (* "*") (cast_expression "(int *)(local_38 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_38 + 0x2c)" (( "(") (binary_expression "local_38 + 0x2c" (identifier "local_38") (+ "+") (number_literal "0x2c")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    FUN_00118e60(2);\n  }" ({ "{") (expression_statement "FUN_00118e60(2);" (call_expression "FUN_00118e60(2)" (identifier "FUN_00118e60") (argument_list "(2)" (( "(") (number_literal "2") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0011e4e0();" (call_expression "FUN_0011e4e0()" (identifier "FUN_0011e4e0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(int var_18)

{
  char c;
  int var_12;
  type_1 *var_10;
  type_2 var_16;
  char *var_19;
  type_3 *pcVar4;
  type_4 var_17;
  char *name;
  type_3 cframe;
  
  if (*var_1 == ' ') {
    var_1 = var_1 + 1;
  }
  name = var_1;
  if (((lex_type[(type_6)*var_1] & 2) == 0) && (*var_1 != 0x22)) {
    var_19 = (char *)var_2(0,"invalid identifier for \".ifdef\"",5);
    var_3(var_19);
    if (cond_obstack.chunk_limit == cond_obstack.next_free) {
      var_4(&cond_obstack,1);
    }
    var_19 = cond_obstack.next_free + 1;
    *cond_obstack.next_free = '\0';
    cond_obstack.next_free = var_19;
    var_5();
    return;
  }
  c = var_6(&name);
  var_10 = var_7(name);
  var_8(c);
  var_9(&cframe);
  if (cframe.dead_tree == 0) {
    var_17 = 0;
    if ((var_10 != (type_1 *)0x0) &&
       ((var_12 = var_11(var_10), var_12 != 0 || (var_12 = var_13(var_10), var_12 != 0)))) {
      var_16 = var_14(var_10);
      var_17 = (type_4)(var_15 != var_16);
    }
    cframe.ignoring = (int)(var_17 == var_18);
  }
  else {
    cframe.ignoring = 1;
  }
  if ((ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.next_free) < 0x38) {
    var_4(&cond_obstack,0x38);
    var_19 = cond_obstack.next_free + 0x38;
    pcVar4 = (type_3 *)cond_obstack.object_base;
    if (var_19 != cond_obstack.object_base) goto LAB_0010d640;
  }
  else {
    var_19 = cond_obstack.next_free + 0x38;
    pcVar4 = (type_3 *)cond_obstack.object_base;
    if (var_19 != cond_obstack.object_base) goto LAB_0010d640;
  }
  cond_obstack._80_1_ = cond_obstack._80_1_ | 2;
  pcVar4 = (type_3 *)cond_obstack.object_base;
LAB_0010d640:
  cond_obstack.object_base =
       (char *)((ulong)(var_19 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask);
  if ((ulong)((long)cond_obstack.chunk_limit - (long)cond_obstack.chunk) <
      (ulong)((long)((ulong)(var_19 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -
             (long)cond_obstack.chunk)) {
    cond_obstack.object_base = cond_obstack.chunk_limit;
  }
  current_cframe = pcVar4;
  cond_obstack.next_free = cond_obstack.object_base;
  (pcVar4->if_file_line).file = cframe.if_file_line.file;
  (pcVar4->if_file_line).line = cframe.if_file_line.line;
  *(type_5 *)&(pcVar4->if_file_line).field_0xc = cframe.if_file_line._12_4_;
  (pcVar4->else_file_line).file = cframe.else_file_line.file;
  (pcVar4->else_file_line).line = cframe.else_file_line.line;
  *(type_5 *)&(pcVar4->else_file_line).field_0xc = cframe.else_file_line._12_4_;
  pcVar4->previous_cframe = cframe.previous_cframe;
  pcVar4->else_seen = (int)var_20(cframe.ignoring,cframe.else_seen);
  pcVar4->ignoring = (int)(var_20(cframe.ignoring,cframe.else_seen) >> 0x20);
  pcVar4->dead_tree = (int)var_20(cframe.macro_nest,cframe.dead_tree);
  pcVar4->macro_nest = (int)(var_20(cframe.macro_nest,cframe.dead_tree) >> 0x20);
  if (((((type_6)listing & 0x20) != 0) && (cframe.ignoring != 0)) &&
     ((cframe.previous_cframe == (type_3 *)0x0 ||
      ((cframe.previous_cframe)->ignoring == 0)))) {
    var_21(2);
  }
  var_22();
  return;
}


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

void MASKED(uint param_1)

{
  undefined1 *puVar1;
  char cVar2;
  int iVar3;
  long lVar4;
  undefined8 uVar5;
  undefined8 *puVar6;
  undefined8 *puVar7;
  uint uVar8;
  byte *local_60;
  undefined8 local_58;
  undefined8 uStack_50;
  undefined8 local_48;
  undefined8 uStack_40;
  long local_38;
  undefined4 uStack_30;
  uint uStack_2c;
  int local_28;
  undefined4 uStack_24;
  
  if (*DAT_0016f0a0 == 0x20) {
    DAT_0016f0a0 = DAT_0016f0a0 + 1;
  }
  local_60 = DAT_0016f0a0;
  if ((((&DAT_001645e0)[*DAT_0016f0a0] & 2) == 0) && (*DAT_0016f0a0 != 0x22)) {
    uVar5 = dcgettext(0,"invalid identifier for \".ifdef\"",5);
    FUN_0011c1a0(uVar5);
    if (DAT_0016efe0 == DAT_0016efd8) {
      _obstack_newchunk(&DAT_0016efc0,1);
    }
    puVar1 = DAT_0016efd8 + 1;
    *DAT_0016efd8 = 0;
    DAT_0016efd8 = puVar1;
    FUN_0011e2c0();
    return;
  }
  cVar2 = FUN_00113480(&local_60);
  lVar4 = FUN_001292e0(local_60);
  FUN_00114e60((int)cVar2);
  FUN_0010d530(&local_58);
  if (local_28 == 0) {
    uVar8 = 0;
    if ((lVar4 != 0) &&
       ((iVar3 = FUN_00127510(lVar4), iVar3 != 0 || (iVar3 = FUN_0012a370(lVar4), iVar3 != 0)))) {
      lVar4 = FUN_00127840(lVar4);
      uVar8 = (uint)(DAT_0016eee0 != lVar4);
    }
    uStack_2c = (uint)(uVar8 == param_1);
  }
  else {
    uStack_2c = 1;
  }
  if ((ulong)((long)DAT_0016efe0 - (long)DAT_0016efd8) < 0x38) {
    _obstack_newchunk(&DAT_0016efc0,0x38);
    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);
    puVar6 = DAT_0016efd0;
    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;
  }
  else {
    puVar7 = (undefined8 *)(DAT_0016efd8 + 0x38);
    puVar6 = DAT_0016efd0;
    if (puVar7 != DAT_0016efd0) goto LAB_0010d640;
  }
  DAT_0016f010 = DAT_0016f010 | 2;
  puVar6 = DAT_0016efd0;
LAB_0010d640:
  DAT_0016efd0 = (undefined8 *)((ulong)((long)puVar7 + DAT_0016eff0) & ~DAT_0016eff0);
  if ((ulong)((long)DAT_0016efe0 - DAT_0016efc8) < (ulong)((long)DAT_0016efd0 - DAT_0016efc8)) {
    DAT_0016efd0 = (undefined8 *)DAT_0016efe0;
  }
  DAT_0016dbb0 = puVar6;
  DAT_0016efd8 = (undefined1 *)DAT_0016efd0;
  *puVar6 = local_58;
  puVar6[1] = uStack_50;
  puVar6[2] = local_48;
  puVar6[3] = uStack_40;
  puVar6[4] = local_38;
  puVar6[5] = CONCAT44(uStack_2c,uStack_30);
  puVar6[6] = CONCAT44(uStack_24,local_28);
  if (((((byte)DAT_0016eef4 & 0x20) != 0) && (uStack_2c != 0)) &&
     ((local_38 == 0 || (*(int *)(local_38 + 0x2c) == 0)))) {
    FUN_00118e60(2);
  }
  FUN_0011e4e0();
  return;
}

