
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void s_ifc(int arg)

{
  char *pcVar1;
  char *pcVar2;
  int iVar3;
  conditional_frame *pcVar4;
  uint uVar5;
  char *local_50;
  char stopc;
  int len1;
  int len2;
  conditional_frame cframe;
  
  stopc = '\0';
  local_50 = (char *)0x0;
  if (flag_mri != 0) {
    local_50 = mri_comment_field(&stopc);
  }
  pcVar1 = get_mri_string(0x2c,&len1);
  if (*input_line_pointer == ',') {
    input_line_pointer = input_line_pointer + 1;
  }
  else {
    pcVar2 = (char *)dcgettext(0,"bad format for ifc or ifnc",5);
    as_bad(pcVar2);
  }
  uVar5 = 0;
  pcVar2 = get_mri_string(0x3b,&len2);
  if (len1 == len2) {
    iVar3 = strncmp(pcVar1,pcVar2,len1);
    uVar5 = (uint)(iVar3 == 0);
  }
  initialize_cframe(&cframe);
  cframe.ignoring = (int)(cframe.dead_tree != 0 || uVar5 == arg);
  if ((uint)((int)cond_obstack.chunk_limit - (int)cond_obstack.next_free) < 0x24) {
    _obstack_newchunk(&cond_obstack,0x24);
    pcVar1 = cond_obstack.next_free + 0x24;
    pcVar4 = (conditional_frame *)cond_obstack.object_base;
    if (pcVar1 != cond_obstack.object_base) goto LAB_0001bfd7;
  }
  else {
    pcVar1 = cond_obstack.next_free + 0x24;
    pcVar4 = (conditional_frame *)cond_obstack.object_base;
    if (pcVar1 != cond_obstack.object_base) goto LAB_0001bfd7;
  }
  cond_obstack._40_1_ = cond_obstack._40_1_ | 2;
  pcVar4 = (conditional_frame *)cond_obstack.object_base;
LAB_0001bfd7:
  cond_obstack.object_base =
       (char *)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask);
  if ((uint)((int)cond_obstack.chunk_limit - (int)cond_obstack.chunk) <
      (uint)((int)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -
            (int)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;
  (pcVar4->else_file_line).file = cframe.else_file_line.file;
  (pcVar4->else_file_line).line = cframe.else_file_line.line;
  pcVar4->previous_cframe = cframe.previous_cframe;
  pcVar4->else_seen = cframe.else_seen;
  pcVar4->ignoring = cframe.ignoring;
  pcVar4->dead_tree = cframe.dead_tree;
  pcVar4->macro_nest = cframe.macro_nest;
  if (((((byte)listing & 0x20) != 0) && (cframe.ignoring != 0)) &&
     ((cframe.previous_cframe == (conditional_frame *)0x0 ||
      ((cframe.previous_cframe)->ignoring == 0)))) {
    listing_list(2);
  }
  if (flag_mri == 0) {
    demand_empty_rest_of_line();
    return;
  }
  mri_comment_end(local_50,(int)stopc);
  demand_empty_rest_of_line();
  return;
}



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

void FUN_0001bf00(uint param_1)

{
  char *__s1;
  char *__s2;
  int iVar1;
  undefined4 uVar2;
  undefined4 *puVar3;
  uint uVar4;
  undefined4 *puVar5;
  undefined4 local_50;
  char local_49;
  size_t local_48;
  size_t local_44;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  int local_30;
  undefined4 local_2c;
  uint local_28;
  int local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x1bf09;
  local_49 = '\0';
  local_50 = 0;
  if (DAT_00083e34 != 0) {
    local_50 = FUN_0002f110(&local_49);
  }
  __s1 = (char *)FUN_0001b680();
  if (*DAT_00083ef0 == ',') {
    DAT_00083ef0 = DAT_00083ef0 + 1;
  }
  else {
    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);
    FUN_0002d660(uVar2);
  }
  uVar4 = 0;
  __s2 = (char *)FUN_0001b680();
  if (local_48 == local_44) {
    iVar1 = strncmp(__s1,__s2,local_48);
    uVar4 = (uint)(iVar1 == 0);
  }
  FUN_0001b7b0();
  local_28 = (uint)(local_24 != 0 || uVar4 == param_1);
  if (DAT_00083e50 - DAT_00083e4c < 0x24) {
    _obstack_newchunk(&DAT_00083e40,0x24);
    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);
    puVar3 = DAT_00083e48;
    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;
  }
  else {
    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);
    puVar3 = DAT_00083e48;
    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;
  }
  DAT_00083e68 = DAT_00083e68 | 2;
  puVar3 = DAT_00083e48;
LAB_0001bfd7:
  DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58);
  if (DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44)) {
    DAT_00083e48 = (undefined4 *)DAT_00083e50;
  }
  DAT_00083718 = puVar3;
  DAT_00083e4c = (uint)DAT_00083e48;
  *puVar3 = local_40;
  puVar3[1] = local_3c;
  puVar3[2] = local_38;
  puVar3[3] = local_34;
  puVar3[4] = local_30;
  puVar3[5] = local_2c;
  puVar3[6] = local_28;
  puVar3[7] = local_24;
  puVar3[8] = local_20;
  if (((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&
     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))) {
    FUN_0002a160(2);
  }
  if (DAT_00083e34 == 0) {
    FUN_0002f970();
    return;
  }
  FUN_0002f170(local_50,(int)local_49);
  FUN_0002f970();
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00019010
ADD EBX,0x5f0f7
SUB ESP,0x4c
MOV byte ptr [ESP + 0x13],0x0
MOV dword ptr [ESP + 0xc],0x0
LEA EAX,[EBX + 0x8e34]
MOV EDI,dword ptr [EAX]
MOV dword ptr [ESP + 0x8],EAX
TEST EDI,EDI
JNZ 0x0001c0b8
LEA EDX,[ESP + 0x14]
MOV EAX,0x2c
CALL 0x0001b680
LEA EDX,[EBX + 0x8ef0]
MOV ESI,EAX
MOV EAX,dword ptr [EDX]
CMP byte ptr [EAX],0x2c
JNZ 0x0001c090
ADD EAX,0x1
MOV dword ptr [EDX],EAX
LEA EDX,[ESP + 0x18]
MOV EAX,0x3b
XOR EDI,EDI
CALL 0x0001b680
MOV EDX,dword ptr [ESP + 0x14]
CMP EDX,dword ptr [ESP + 0x18]
JNZ 0x0001bf8b
SUB ESP,0x4
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x000176a0
ADD ESP,0x10
TEST EAX,EAX
SETZ AL
MOVZX EAX,AL
MOV EDI,EAX
LEA EAX,[ESP + 0x1c]
CALL 0x0001b7b0
MOV ESI,dword ptr [ESP + 0x38]
TEST ESI,ESI
LEA ESI,[EBX + 0x8e40]
SETNZ AL
CMP EDI,dword ptr [ESP + 0x60]
SETZ DL
MOV ECX,dword ptr [ESI + 0x10]
MOV EDI,dword ptr [ESI + 0xc]
OR EAX,EDX
MOVZX EAX,AL
MOV dword ptr [ESP + 0x34],EAX
MOV EAX,ECX
SUB EAX,EDI
CMP EAX,0x23
JBE 0x0001c0d8
MOV EDX,dword ptr [ESI + 0x8]
ADD EDI,0x24
MOV dword ptr [ESI + 0xc],EDI
CMP EDI,EDX
JZ 0x0001c0fd
MOV EBP,dword ptr [ESI + 0x18]
LEA EAX,[EDI + EBP*0x1]
NOT EBP
MOV EDI,dword ptr [ESI + 0x4]
AND EAX,EBP
MOV EBP,EAX
MOV dword ptr [ESI + 0xc],EAX
SUB EBP,EDI
MOV dword ptr [ESP + 0x4],EBP
MOV EBP,ECX
SUB EBP,EDI
CMP dword ptr [ESP + 0x4],EBP
JBE 0x0001bffe
MOV dword ptr [ESI + 0xc],ECX
MOV EAX,ECX
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [EBX + 0x8718],EDX
MOV dword ptr [EDX],EAX
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [EDX + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [EDX + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [EDX + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x2c]
MOV dword ptr [EDX + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x30]
MOV dword ptr [EDX + 0x14],EAX
MOV EAX,dword ptr [ESP + 0x34]
MOV dword ptr [EDX + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [EDX + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x3c]
MOV dword ptr [EDX + 0x20],EAX
LEA EAX,[EBX + 0x8dcc]
TEST byte ptr [EAX],0x20
JZ 0x0001c070
MOV ECX,dword ptr [ESP + 0x34]
TEST ECX,ECX
JZ 0x0001c070
MOV EAX,dword ptr [ESP + 0x2c]
TEST EAX,EAX
JZ 0x0001c138
MOV EDX,dword ptr [EAX + 0x18]
TEST EDX,EDX
JZ 0x0001c138
NOP
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x0001c110
CALL 0x0002f970
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdb02c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000171a0
MOV dword ptr [ESP],EAX
CALL 0x0002d660
ADD ESP,0x10
JMP 0x0001bf59
SUB ESP,0xc
LEA EAX,[ESP + 0x1f]
PUSH EAX
CALL 0x0002f110
MOV dword ptr [ESP + 0x1c],EAX
ADD ESP,0x10
JMP 0x0001bf33
SUB ESP,0x8
PUSH 0x24
PUSH ESI
CALL 0x00017190
MOV EDI,dword ptr [ESI + 0xc]
MOV EDX,dword ptr [ESI + 0x8]
ADD ESP,0x10
MOV ECX,dword ptr [ESI + 0x10]
ADD EDI,0x24
MOV dword ptr [ESI + 0xc],EDI
CMP EDI,EDX
JNZ 0x0001bfd7
OR byte ptr [ESI + 0x28],0x2
JMP 0x0001bfd7
SUB ESP,0x8
MOVSX EAX,byte ptr [ESP + 0x1b]
PUSH EAX
PUSH dword ptr [ESP + 0x18]
CALL 0x0002f170
ADD ESP,0x10
CALL 0x0002f970
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH 0x2
CALL 0x0002a160
ADD ESP,0x10
JMP 0x0001c070
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0001bf00(uint param_1)\n\n{\n  char *__s1;\n  char *__s2;\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  undefined4 *puVar5;\n  undefined4 local_50;\n  char local_49;\n  size_t local_48;\n  size_t local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  int local_30;\n  undefined4 local_2c;\n  uint local_28;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1bf09;\n  local_49 = '\0';\n  local_50 = 0;\n  if (DAT_00083e34 != 0) {\n    local_50 = FUN_0002f110(&local_49);\n  }\n  __s1 = (char *)FUN_0001b680();\n  if (*DAT_00083ef0 == ',') {\n    DAT_00083ef0 = DAT_00083ef0 + 1;\n  }\n  else {\n    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);\n    FUN_0002d660(uVar2);\n  }\n  uVar4 = 0;\n  __s2 = (char *)FUN_0001b680();\n  if (local_48 == local_44) {\n    iVar1 = strncmp(__s1,__s2,local_48);\n    uVar4 = (uint)(iVar1 == 0);\n  }\n  FUN_0001b7b0();\n  local_28 = (uint)(local_24 != 0 || uVar4 == param_1);\n  if (DAT_00083e50 - DAT_00083e4c < 0x24) {\n    _obstack_newchunk(&DAT_00083e40,0x24);\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  else {\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  DAT_00083e68 = DAT_00083e68 | 2;\n  puVar3 = DAT_00083e48;\nLAB_0001bfd7:\n  DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58);\n  if (DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44)) {\n    DAT_00083e48 = (undefined4 *)DAT_00083e50;\n  }\n  DAT_00083718 = puVar3;\n  DAT_00083e4c = (uint)DAT_00083e48;\n  *puVar3 = local_40;\n  puVar3[1] = local_3c;\n  puVar3[2] = local_38;\n  puVar3[3] = local_34;\n  puVar3[4] = local_30;\n  puVar3[5] = local_2c;\n  puVar3[6] = local_28;\n  puVar3[7] = local_24;\n  puVar3[8] = local_20;\n  if (((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&\n     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))) {\n    FUN_0002a160(2);\n  }\n  if (DAT_00083e34 == 0) {\n    FUN_0002f970();\n    return;\n  }\n  FUN_0002f170(local_50,(int)local_49);\n  FUN_0002f970();\n  return;\n}\n\n" comment (function_definition "void FUN_0001bf00(uint param_1)\n\n{\n  char *__s1;\n  char *__s2;\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  undefined4 *puVar5;\n  undefined4 local_50;\n  char local_49;\n  size_t local_48;\n  size_t local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  int local_30;\n  undefined4 local_2c;\n  uint local_28;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1bf09;\n  local_49 = '\0';\n  local_50 = 0;\n  if (DAT_00083e34 != 0) {\n    local_50 = FUN_0002f110(&local_49);\n  }\n  __s1 = (char *)FUN_0001b680();\n  if (*DAT_00083ef0 == ',') {\n    DAT_00083ef0 = DAT_00083ef0 + 1;\n  }\n  else {\n    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);\n    FUN_0002d660(uVar2);\n  }\n  uVar4 = 0;\n  __s2 = (char *)FUN_0001b680();\n  if (local_48 == local_44) {\n    iVar1 = strncmp(__s1,__s2,local_48);\n    uVar4 = (uint)(iVar1 == 0);\n  }\n  FUN_0001b7b0();\n  local_28 = (uint)(local_24 != 0 || uVar4 == param_1);\n  if (DAT_00083e50 - DAT_00083e4c < 0x24) {\n    _obstack_newchunk(&DAT_00083e40,0x24);\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  else {\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  DAT_00083e68 = DAT_00083e68 | 2;\n  puVar3 = DAT_00083e48;\nLAB_0001bfd7:\n  DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58);\n  if (DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44)) {\n    DAT_00083e48 = (undefined4 *)DAT_00083e50;\n  }\n  DAT_00083718 = puVar3;\n  DAT_00083e4c = (uint)DAT_00083e48;\n  *puVar3 = local_40;\n  puVar3[1] = local_3c;\n  puVar3[2] = local_38;\n  puVar3[3] = local_34;\n  puVar3[4] = local_30;\n  puVar3[5] = local_2c;\n  puVar3[6] = local_28;\n  puVar3[7] = local_24;\n  puVar3[8] = local_20;\n  if (((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&\n     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))) {\n    FUN_0002a160(2);\n  }\n  if (DAT_00083e34 == 0) {\n    FUN_0002f970();\n    return;\n  }\n  FUN_0002f170(local_50,(int)local_49);\n  FUN_0002f970();\n  return;\n}" primitive_type (function_declarator "FUN_0001bf00(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  char *__s1;\n  char *__s2;\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  undefined4 *puVar5;\n  undefined4 local_50;\n  char local_49;\n  size_t local_48;\n  size_t local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  int local_30;\n  undefined4 local_2c;\n  uint local_28;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1bf09;\n  local_49 = '\0';\n  local_50 = 0;\n  if (DAT_00083e34 != 0) {\n    local_50 = FUN_0002f110(&local_49);\n  }\n  __s1 = (char *)FUN_0001b680();\n  if (*DAT_00083ef0 == ',') {\n    DAT_00083ef0 = DAT_00083ef0 + 1;\n  }\n  else {\n    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);\n    FUN_0002d660(uVar2);\n  }\n  uVar4 = 0;\n  __s2 = (char *)FUN_0001b680();\n  if (local_48 == local_44) {\n    iVar1 = strncmp(__s1,__s2,local_48);\n    uVar4 = (uint)(iVar1 == 0);\n  }\n  FUN_0001b7b0();\n  local_28 = (uint)(local_24 != 0 || uVar4 == param_1);\n  if (DAT_00083e50 - DAT_00083e4c < 0x24) {\n    _obstack_newchunk(&DAT_00083e40,0x24);\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  else {\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  DAT_00083e68 = DAT_00083e68 | 2;\n  puVar3 = DAT_00083e48;\nLAB_0001bfd7:\n  DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58);\n  if (DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44)) {\n    DAT_00083e48 = (undefined4 *)DAT_00083e50;\n  }\n  DAT_00083718 = puVar3;\n  DAT_00083e4c = (uint)DAT_00083e48;\n  *puVar3 = local_40;\n  puVar3[1] = local_3c;\n  puVar3[2] = local_38;\n  puVar3[3] = local_34;\n  puVar3[4] = local_30;\n  puVar3[5] = local_2c;\n  puVar3[6] = local_28;\n  puVar3[7] = local_24;\n  puVar3[8] = local_20;\n  if (((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&\n     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))) {\n    FUN_0002a160(2);\n  }\n  if (DAT_00083e34 == 0) {\n    FUN_0002f970();\n    return;\n  }\n  FUN_0002f170(local_50,(int)local_49);\n  FUN_0002f970();\n  return;\n}" { (declaration "char *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "char local_49;" primitive_type identifier ;) (declaration "size_t local_48;" primitive_type identifier ;) (declaration "size_t local_44;" primitive_type identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1bf09;" (assignment_expression "uStack_14 = 0x1bf09" identifier = number_literal) ;) (expression_statement "local_49 = '\0';" (assignment_expression "local_49 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (if_statement "if (DAT_00083e34 != 0) {\n    local_50 = FUN_0002f110(&local_49);\n  }" if (parenthesized_expression "(DAT_00083e34 != 0)" ( (binary_expression "DAT_00083e34 != 0" identifier != number_literal) )) (compound_statement "{\n    local_50 = FUN_0002f110(&local_49);\n  }" { (expression_statement "local_50 = FUN_0002f110(&local_49);" (assignment_expression "local_50 = FUN_0002f110(&local_49)" identifier = (call_expression "FUN_0002f110(&local_49)" identifier (argument_list "(&local_49)" ( (pointer_expression "&local_49" & identifier) )))) ;) })) (expression_statement "__s1 = (char *)FUN_0001b680();" (assignment_expression "__s1 = (char *)FUN_0001b680()" identifier = (cast_expression "(char *)FUN_0001b680()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001b680()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (*DAT_00083ef0 == ',') {\n    DAT_00083ef0 = DAT_00083ef0 + 1;\n  }\n  else {\n    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);\n    FUN_0002d660(uVar2);\n  }" if (parenthesized_expression "(*DAT_00083ef0 == ',')" ( (binary_expression "*DAT_00083ef0 == ','" (pointer_expression "*DAT_00083ef0" * identifier) == (char_literal "','" ' character ')) )) (compound_statement "{\n    DAT_00083ef0 = DAT_00083ef0 + 1;\n  }" { (expression_statement "DAT_00083ef0 = DAT_00083ef0 + 1;" (assignment_expression "DAT_00083ef0 = DAT_00083ef0 + 1" identifier = (binary_expression "DAT_00083ef0 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);\n    FUN_0002d660(uVar2);\n  }" else (compound_statement "{\n    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);\n    FUN_0002d660(uVar2);\n  }" { (expression_statement "uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);" (assignment_expression "uVar2 = dcgettext(0,"bad format for ifc or ifnc",5)" identifier = (call_expression "dcgettext(0,"bad format for ifc or ifnc",5)" identifier (argument_list "(0,"bad format for ifc or ifnc",5)" ( number_literal , (string_literal ""bad format for ifc or ifnc"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002d660(uVar2);" (call_expression "FUN_0002d660(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) }))) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "__s2 = (char *)FUN_0001b680();" (assignment_expression "__s2 = (char *)FUN_0001b680()" identifier = (cast_expression "(char *)FUN_0001b680()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001b680()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (local_48 == local_44) {\n    iVar1 = strncmp(__s1,__s2,local_48);\n    uVar4 = (uint)(iVar1 == 0);\n  }" if (parenthesized_expression "(local_48 == local_44)" ( (binary_expression "local_48 == local_44" identifier == identifier) )) (compound_statement "{\n    iVar1 = strncmp(__s1,__s2,local_48);\n    uVar4 = (uint)(iVar1 == 0);\n  }" { (expression_statement "iVar1 = strncmp(__s1,__s2,local_48);" (assignment_expression "iVar1 = strncmp(__s1,__s2,local_48)" identifier = (call_expression "strncmp(__s1,__s2,local_48)" identifier (argument_list "(__s1,__s2,local_48)" ( identifier , identifier , identifier )))) ;) (expression_statement "uVar4 = (uint)(iVar1 == 0);" (assignment_expression "uVar4 = (uint)(iVar1 == 0)" identifier = (call_expression "(uint)(iVar1 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )))) ;) })) (expression_statement "FUN_0001b7b0();" (call_expression "FUN_0001b7b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_28 = (uint)(local_24 != 0 || uVar4 == param_1);" (assignment_expression "local_28 = (uint)(local_24 != 0 || uVar4 == param_1)" identifier = (call_expression "(uint)(local_24 != 0 || uVar4 == param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_24 != 0 || uVar4 == param_1)" ( (binary_expression "local_24 != 0 || uVar4 == param_1" (binary_expression "local_24 != 0" identifier != number_literal) || (binary_expression "uVar4 == param_1" identifier == identifier)) )))) ;) (if_statement "if (DAT_00083e50 - DAT_00083e4c < 0x24) {\n    _obstack_newchunk(&DAT_00083e40,0x24);\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  else {\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }" if (parenthesized_expression "(DAT_00083e50 - DAT_00083e4c < 0x24)" ( (binary_expression "DAT_00083e50 - DAT_00083e4c < 0x24" (binary_expression "DAT_00083e50 - DAT_00083e4c" identifier - identifier) < number_literal) )) (compound_statement "{\n    _obstack_newchunk(&DAT_00083e40,0x24);\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }" { (expression_statement "_obstack_newchunk(&DAT_00083e40,0x24);" (call_expression "_obstack_newchunk(&DAT_00083e40,0x24)" identifier (argument_list "(&DAT_00083e40,0x24)" ( (pointer_expression "&DAT_00083e40" & identifier) , number_literal ))) ;) (expression_statement "puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);" (assignment_expression "puVar5 = (undefined4 *)(DAT_00083e4c + 0x24)" identifier = (cast_expression "(undefined4 *)(DAT_00083e4c + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00083e4c + 0x24)" ( (binary_expression "DAT_00083e4c + 0x24" identifier + number_literal) )))) ;) (expression_statement "puVar3 = DAT_00083e48;" (assignment_expression "puVar3 = DAT_00083e48" identifier = identifier) ;) (if_statement "if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;" if (parenthesized_expression "(puVar5 != DAT_00083e48)" ( (binary_expression "puVar5 != DAT_00083e48" identifier != identifier) )) (goto_statement "goto LAB_0001bfd7;" goto statement_identifier ;)) }) (else_clause "else {\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }" else (compound_statement "{\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }" { (expression_statement "puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);" (assignment_expression "puVar5 = (undefined4 *)(DAT_00083e4c + 0x24)" identifier = (cast_expression "(undefined4 *)(DAT_00083e4c + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00083e4c + 0x24)" ( (binary_expression "DAT_00083e4c + 0x24" identifier + number_literal) )))) ;) (expression_statement "puVar3 = DAT_00083e48;" (assignment_expression "puVar3 = DAT_00083e48" identifier = identifier) ;) (if_statement "if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;" if (parenthesized_expression "(puVar5 != DAT_00083e48)" ( (binary_expression "puVar5 != DAT_00083e48" identifier != identifier) )) (goto_statement "goto LAB_0001bfd7;" goto statement_identifier ;)) }))) (expression_statement "DAT_00083e68 = DAT_00083e68 | 2;" (assignment_expression "DAT_00083e68 = DAT_00083e68 | 2" identifier = (binary_expression "DAT_00083e68 | 2" identifier | number_literal)) ;) (expression_statement "puVar3 = DAT_00083e48;" (assignment_expression "puVar3 = DAT_00083e48" identifier = identifier) ;) (labeled_statement "LAB_0001bfd7:\n  DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58);" statement_identifier : (expression_statement "DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58);" (assignment_expression "DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58)" identifier = (cast_expression "(undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + DAT_00083e58 & ~DAT_00083e58)" ( (binary_expression "(int)puVar5 + DAT_00083e58 & ~DAT_00083e58" (binary_expression "(int)puVar5 + DAT_00083e58" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) & (unary_expression "~DAT_00083e58" ~ identifier)) )))) ;)) (if_statement "if (DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44)) {\n    DAT_00083e48 = (undefined4 *)DAT_00083e50;\n  }" if (parenthesized_expression "(DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44))" ( (binary_expression "DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44)" (binary_expression "DAT_00083e50 - DAT_00083e44" identifier - identifier) < (call_expression "(uint)((int)DAT_00083e48 - DAT_00083e44)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)DAT_00083e48 - DAT_00083e44)" ( (binary_expression "(int)DAT_00083e48 - DAT_00083e44" (cast_expression "(int)DAT_00083e48" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) )) (compound_statement "{\n    DAT_00083e48 = (undefined4 *)DAT_00083e50;\n  }" { (expression_statement "DAT_00083e48 = (undefined4 *)DAT_00083e50;" (assignment_expression "DAT_00083e48 = (undefined4 *)DAT_00083e50" identifier = (cast_expression "(undefined4 *)DAT_00083e50" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "DAT_00083718 = puVar3;" (assignment_expression "DAT_00083718 = puVar3" identifier = identifier) ;) (expression_statement "DAT_00083e4c = (uint)DAT_00083e48;" (assignment_expression "DAT_00083e4c = (uint)DAT_00083e48" identifier = (cast_expression "(uint)DAT_00083e48" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*puVar3 = local_40;" (assignment_expression "*puVar3 = local_40" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "puVar3[1] = local_3c;" (assignment_expression "puVar3[1] = local_3c" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[2] = local_38;" (assignment_expression "puVar3[2] = local_38" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[3] = local_34;" (assignment_expression "puVar3[3] = local_34" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[4] = local_30;" (assignment_expression "puVar3[4] = local_30" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[5] = local_2c;" (assignment_expression "puVar3[5] = local_2c" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[6] = local_28;" (assignment_expression "puVar3[6] = local_28" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[7] = local_24;" (assignment_expression "puVar3[7] = local_24" (subscript_expression "puVar3[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[8] = local_20;" (assignment_expression "puVar3[8] = local_20" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&\n     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))) {\n    FUN_0002a160(2);\n  }" if (parenthesized_expression "(((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&\n     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0))))" ( (binary_expression "((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&\n     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))" (parenthesized_expression "((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0))" ( (binary_expression "(((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)" (parenthesized_expression "(((byte)DAT_00083dcc & 0x20) != 0)" ( (binary_expression "((byte)DAT_00083dcc & 0x20) != 0" (parenthesized_expression "((byte)DAT_00083dcc & 0x20)" ( (binary_expression "(byte)DAT_00083dcc & 0x20" (cast_expression "(byte)DAT_00083dcc" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(local_28 != 0)" ( (binary_expression "local_28 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))" ( (parenthesized_expression "(local_30 == 0 || (*(int *)(local_30 + 0x18) == 0))" ( (binary_expression "local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)" (binary_expression "local_30 == 0" identifier == number_literal) || (parenthesized_expression "(*(int *)(local_30 + 0x18) == 0)" ( (binary_expression "*(int *)(local_30 + 0x18) == 0" (pointer_expression "*(int *)(local_30 + 0x18)" * (cast_expression "(int *)(local_30 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x18)" ( (binary_expression "local_30 + 0x18" identifier + number_literal) )))) == number_literal) ))) )) ))) )) (compound_statement "{\n    FUN_0002a160(2);\n  }" { (expression_statement "FUN_0002a160(2);" (call_expression "FUN_0002a160(2)" identifier (argument_list "(2)" ( number_literal ))) ;) })) (if_statement "if (DAT_00083e34 == 0) {\n    FUN_0002f970();\n    return;\n  }" if (parenthesized_expression "(DAT_00083e34 == 0)" ( (binary_expression "DAT_00083e34 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0002f970();\n    return;\n  }" { (expression_statement "FUN_0002f970();" (call_expression "FUN_0002f970()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0002f170(local_50,(int)local_49);" (call_expression "FUN_0002f170(local_50,(int)local_49)" identifier (argument_list "(local_50,(int)local_49)" ( identifier , (cast_expression "(int)local_49" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "FUN_0002f970();" (call_expression "FUN_0002f970()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid s_ifc(int arg)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  int iVar3;\n  conditional_frame *pcVar4;\n  uint uVar5;\n  char *local_50;\n  char stopc;\n  int len1;\n  int len2;\n  conditional_frame cframe;\n  \n  stopc = '\0';\n  local_50 = (char *)0x0;\n  if (flag_mri != 0) {\n    local_50 = mri_comment_field(&stopc);\n  }\n  pcVar1 = get_mri_string(0x2c,&len1);\n  if (*input_line_pointer == ',') {\n    input_line_pointer = input_line_pointer + 1;\n  }\n  else {\n    pcVar2 = (char *)dcgettext(0,"bad format for ifc or ifnc",5);\n    as_bad(pcVar2);\n  }\n  uVar5 = 0;\n  pcVar2 = get_mri_string(0x3b,&len2);\n  if (len1 == len2) {\n    iVar3 = strncmp(pcVar1,pcVar2,len1);\n    uVar5 = (uint)(iVar3 == 0);\n  }\n  initialize_cframe(&cframe);\n  cframe.ignoring = (int)(cframe.dead_tree != 0 || uVar5 == arg);\n  if ((uint)((int)cond_obstack.chunk_limit - (int)cond_obstack.next_free) < 0x24) {\n    _obstack_newchunk(&cond_obstack,0x24);\n    pcVar1 = cond_obstack.next_free + 0x24;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar1 != cond_obstack.object_base) goto LAB_0001bfd7;\n  }\n  else {\n    pcVar1 = cond_obstack.next_free + 0x24;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar1 != cond_obstack.object_base) goto LAB_0001bfd7;\n  }\n  cond_obstack._40_1_ = cond_obstack._40_1_ | 2;\n  pcVar4 = (conditional_frame *)cond_obstack.object_base;\nLAB_0001bfd7:\n  cond_obstack.object_base =\n       (char *)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask);\n  if ((uint)((int)cond_obstack.chunk_limit - (int)cond_obstack.chunk) <\n      (uint)((int)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n            (int)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  (pcVar4->else_file_line).file = cframe.else_file_line.file;\n  (pcVar4->else_file_line).line = cframe.else_file_line.line;\n  pcVar4->previous_cframe = cframe.previous_cframe;\n  pcVar4->else_seen = cframe.else_seen;\n  pcVar4->ignoring = cframe.ignoring;\n  pcVar4->dead_tree = cframe.dead_tree;\n  pcVar4->macro_nest = cframe.macro_nest;\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  if (flag_mri == 0) {\n    demand_empty_rest_of_line();\n    return;\n  }\n  mri_comment_end(local_50,(int)stopc);\n  demand_empty_rest_of_line();\n  return;\n}\n\n" comment comment (function_definition "void s_ifc(int arg)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  int iVar3;\n  conditional_frame *pcVar4;\n  uint uVar5;\n  char *local_50;\n  char stopc;\n  int len1;\n  int len2;\n  conditional_frame cframe;\n  \n  stopc = '\0';\n  local_50 = (char *)0x0;\n  if (flag_mri != 0) {\n    local_50 = mri_comment_field(&stopc);\n  }\n  pcVar1 = get_mri_string(0x2c,&len1);\n  if (*input_line_pointer == ',') {\n    input_line_pointer = input_line_pointer + 1;\n  }\n  else {\n    pcVar2 = (char *)dcgettext(0,"bad format for ifc or ifnc",5);\n    as_bad(pcVar2);\n  }\n  uVar5 = 0;\n  pcVar2 = get_mri_string(0x3b,&len2);\n  if (len1 == len2) {\n    iVar3 = strncmp(pcVar1,pcVar2,len1);\n    uVar5 = (uint)(iVar3 == 0);\n  }\n  initialize_cframe(&cframe);\n  cframe.ignoring = (int)(cframe.dead_tree != 0 || uVar5 == arg);\n  if ((uint)((int)cond_obstack.chunk_limit - (int)cond_obstack.next_free) < 0x24) {\n    _obstack_newchunk(&cond_obstack,0x24);\n    pcVar1 = cond_obstack.next_free + 0x24;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar1 != cond_obstack.object_base) goto LAB_0001bfd7;\n  }\n  else {\n    pcVar1 = cond_obstack.next_free + 0x24;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar1 != cond_obstack.object_base) goto LAB_0001bfd7;\n  }\n  cond_obstack._40_1_ = cond_obstack._40_1_ | 2;\n  pcVar4 = (conditional_frame *)cond_obstack.object_base;\nLAB_0001bfd7:\n  cond_obstack.object_base =\n       (char *)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask);\n  if ((uint)((int)cond_obstack.chunk_limit - (int)cond_obstack.chunk) <\n      (uint)((int)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n            (int)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  (pcVar4->else_file_line).file = cframe.else_file_line.file;\n  (pcVar4->else_file_line).line = cframe.else_file_line.line;\n  pcVar4->previous_cframe = cframe.previous_cframe;\n  pcVar4->else_seen = cframe.else_seen;\n  pcVar4->ignoring = cframe.ignoring;\n  pcVar4->dead_tree = cframe.dead_tree;\n  pcVar4->macro_nest = cframe.macro_nest;\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  if (flag_mri == 0) {\n    demand_empty_rest_of_line();\n    return;\n  }\n  mri_comment_end(local_50,(int)stopc);\n  demand_empty_rest_of_line();\n  return;\n}" primitive_type (function_declarator "s_ifc(int arg)" identifier (parameter_list "(int arg)" ( (parameter_declaration "int arg" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  char *pcVar2;\n  int iVar3;\n  conditional_frame *pcVar4;\n  uint uVar5;\n  char *local_50;\n  char stopc;\n  int len1;\n  int len2;\n  conditional_frame cframe;\n  \n  stopc = '\0';\n  local_50 = (char *)0x0;\n  if (flag_mri != 0) {\n    local_50 = mri_comment_field(&stopc);\n  }\n  pcVar1 = get_mri_string(0x2c,&len1);\n  if (*input_line_pointer == ',') {\n    input_line_pointer = input_line_pointer + 1;\n  }\n  else {\n    pcVar2 = (char *)dcgettext(0,"bad format for ifc or ifnc",5);\n    as_bad(pcVar2);\n  }\n  uVar5 = 0;\n  pcVar2 = get_mri_string(0x3b,&len2);\n  if (len1 == len2) {\n    iVar3 = strncmp(pcVar1,pcVar2,len1);\n    uVar5 = (uint)(iVar3 == 0);\n  }\n  initialize_cframe(&cframe);\n  cframe.ignoring = (int)(cframe.dead_tree != 0 || uVar5 == arg);\n  if ((uint)((int)cond_obstack.chunk_limit - (int)cond_obstack.next_free) < 0x24) {\n    _obstack_newchunk(&cond_obstack,0x24);\n    pcVar1 = cond_obstack.next_free + 0x24;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar1 != cond_obstack.object_base) goto LAB_0001bfd7;\n  }\n  else {\n    pcVar1 = cond_obstack.next_free + 0x24;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar1 != cond_obstack.object_base) goto LAB_0001bfd7;\n  }\n  cond_obstack._40_1_ = cond_obstack._40_1_ | 2;\n  pcVar4 = (conditional_frame *)cond_obstack.object_base;\nLAB_0001bfd7:\n  cond_obstack.object_base =\n       (char *)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask);\n  if ((uint)((int)cond_obstack.chunk_limit - (int)cond_obstack.chunk) <\n      (uint)((int)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n            (int)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  (pcVar4->else_file_line).file = cframe.else_file_line.file;\n  (pcVar4->else_file_line).line = cframe.else_file_line.line;\n  pcVar4->previous_cframe = cframe.previous_cframe;\n  pcVar4->else_seen = cframe.else_seen;\n  pcVar4->ignoring = cframe.ignoring;\n  pcVar4->dead_tree = cframe.dead_tree;\n  pcVar4->macro_nest = cframe.macro_nest;\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  if (flag_mri == 0) {\n    demand_empty_rest_of_line();\n    return;\n  }\n  mri_comment_end(local_50,(int)stopc);\n  demand_empty_rest_of_line();\n  return;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "conditional_frame *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "char stopc;" primitive_type identifier ;) (declaration "int len1;" primitive_type identifier ;) (declaration "int len2;" primitive_type identifier ;) (declaration "conditional_frame cframe;" type_identifier identifier ;) (expression_statement "stopc = '\0';" (assignment_expression "stopc = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_50 = (char *)0x0;" (assignment_expression "local_50 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (flag_mri != 0) {\n    local_50 = mri_comment_field(&stopc);\n  }" if (parenthesized_expression "(flag_mri != 0)" ( (binary_expression "flag_mri != 0" identifier != number_literal) )) (compound_statement "{\n    local_50 = mri_comment_field(&stopc);\n  }" { (expression_statement "local_50 = mri_comment_field(&stopc);" (assignment_expression "local_50 = mri_comment_field(&stopc)" identifier = (call_expression "mri_comment_field(&stopc)" identifier (argument_list "(&stopc)" ( (pointer_expression "&stopc" & identifier) )))) ;) })) (expression_statement "pcVar1 = get_mri_string(0x2c,&len1);" (assignment_expression "pcVar1 = get_mri_string(0x2c,&len1)" identifier = (call_expression "get_mri_string(0x2c,&len1)" identifier (argument_list "(0x2c,&len1)" ( number_literal , (pointer_expression "&len1" & identifier) )))) ;) (if_statement "if (*input_line_pointer == ',') {\n    input_line_pointer = input_line_pointer + 1;\n  }\n  else {\n    pcVar2 = (char *)dcgettext(0,"bad format for ifc or ifnc",5);\n    as_bad(pcVar2);\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)) ;) }) (else_clause "else {\n    pcVar2 = (char *)dcgettext(0,"bad format for ifc or ifnc",5);\n    as_bad(pcVar2);\n  }" else (compound_statement "{\n    pcVar2 = (char *)dcgettext(0,"bad format for ifc or ifnc",5);\n    as_bad(pcVar2);\n  }" { (expression_statement "pcVar2 = (char *)dcgettext(0,"bad format for ifc or ifnc",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"bad format for ifc or ifnc",5)" identifier = (cast_expression "(char *)dcgettext(0,"bad format for ifc or ifnc",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"bad format for ifc or ifnc",5)" identifier (argument_list "(0,"bad format for ifc or ifnc",5)" ( number_literal , (string_literal ""bad format for ifc or ifnc"" " string_content ") , number_literal ))))) ;) (expression_statement "as_bad(pcVar2);" (call_expression "as_bad(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) }))) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "pcVar2 = get_mri_string(0x3b,&len2);" (assignment_expression "pcVar2 = get_mri_string(0x3b,&len2)" identifier = (call_expression "get_mri_string(0x3b,&len2)" identifier (argument_list "(0x3b,&len2)" ( number_literal , (pointer_expression "&len2" & identifier) )))) ;) (if_statement "if (len1 == len2) {\n    iVar3 = strncmp(pcVar1,pcVar2,len1);\n    uVar5 = (uint)(iVar3 == 0);\n  }" if (parenthesized_expression "(len1 == len2)" ( (binary_expression "len1 == len2" identifier == identifier) )) (compound_statement "{\n    iVar3 = strncmp(pcVar1,pcVar2,len1);\n    uVar5 = (uint)(iVar3 == 0);\n  }" { (expression_statement "iVar3 = strncmp(pcVar1,pcVar2,len1);" (assignment_expression "iVar3 = strncmp(pcVar1,pcVar2,len1)" identifier = (call_expression "strncmp(pcVar1,pcVar2,len1)" identifier (argument_list "(pcVar1,pcVar2,len1)" ( identifier , identifier , identifier )))) ;) (expression_statement "uVar5 = (uint)(iVar3 == 0);" (assignment_expression "uVar5 = (uint)(iVar3 == 0)" identifier = (call_expression "(uint)(iVar3 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )))) ;) })) (expression_statement "initialize_cframe(&cframe);" (call_expression "initialize_cframe(&cframe)" identifier (argument_list "(&cframe)" ( (pointer_expression "&cframe" & identifier) ))) ;) (expression_statement "cframe.ignoring = (int)(cframe.dead_tree != 0 || uVar5 == arg);" (assignment_expression "cframe.ignoring = (int)(cframe.dead_tree != 0 || uVar5 == arg)" (field_expression "cframe.ignoring" identifier . field_identifier) = (cast_expression "(int)(cframe.dead_tree != 0 || uVar5 == arg)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(cframe.dead_tree != 0 || uVar5 == arg)" ( (binary_expression "cframe.dead_tree != 0 || uVar5 == arg" (binary_expression "cframe.dead_tree != 0" (field_expression "cframe.dead_tree" identifier . field_identifier) != number_literal) || (binary_expression "uVar5 == arg" identifier == identifier)) )))) ;) (if_statement "if ((uint)((int)cond_obstack.chunk_limit - (int)cond_obstack.next_free) < 0x24) {\n    _obstack_newchunk(&cond_obstack,0x24);\n    pcVar1 = cond_obstack.next_free + 0x24;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar1 != cond_obstack.object_base) goto LAB_0001bfd7;\n  }\n  else {\n    pcVar1 = cond_obstack.next_free + 0x24;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar1 != cond_obstack.object_base) goto LAB_0001bfd7;\n  }" if (parenthesized_expression "((uint)((int)cond_obstack.chunk_limit - (int)cond_obstack.next_free) < 0x24)" ( (binary_expression "(uint)((int)cond_obstack.chunk_limit - (int)cond_obstack.next_free) < 0x24" (call_expression "(uint)((int)cond_obstack.chunk_limit - (int)cond_obstack.next_free)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)cond_obstack.chunk_limit - (int)cond_obstack.next_free)" ( (binary_expression "(int)cond_obstack.chunk_limit - (int)cond_obstack.next_free" (cast_expression "(int)cond_obstack.chunk_limit" ( (type_descriptor "int" primitive_type) ) (field_expression "cond_obstack.chunk_limit" identifier . field_identifier)) - (cast_expression "(int)cond_obstack.next_free" ( (type_descriptor "int" primitive_type) ) (field_expression "cond_obstack.next_free" identifier . field_identifier))) ))) < number_literal) )) (compound_statement "{\n    _obstack_newchunk(&cond_obstack,0x24);\n    pcVar1 = cond_obstack.next_free + 0x24;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar1 != cond_obstack.object_base) goto LAB_0001bfd7;\n  }" { (expression_statement "_obstack_newchunk(&cond_obstack,0x24);" (call_expression "_obstack_newchunk(&cond_obstack,0x24)" identifier (argument_list "(&cond_obstack,0x24)" ( (pointer_expression "&cond_obstack" & identifier) , number_literal ))) ;) (expression_statement "pcVar1 = cond_obstack.next_free + 0x24;" (assignment_expression "pcVar1 = cond_obstack.next_free + 0x24" identifier = (binary_expression "cond_obstack.next_free + 0x24" (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 (pcVar1 != cond_obstack.object_base) goto LAB_0001bfd7;" if (parenthesized_expression "(pcVar1 != cond_obstack.object_base)" ( (binary_expression "pcVar1 != cond_obstack.object_base" identifier != (field_expression "cond_obstack.object_base" identifier . field_identifier)) )) (goto_statement "goto LAB_0001bfd7;" goto statement_identifier ;)) }) (else_clause "else {\n    pcVar1 = cond_obstack.next_free + 0x24;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar1 != cond_obstack.object_base) goto LAB_0001bfd7;\n  }" else (compound_statement "{\n    pcVar1 = cond_obstack.next_free + 0x24;\n    pcVar4 = (conditional_frame *)cond_obstack.object_base;\n    if (pcVar1 != cond_obstack.object_base) goto LAB_0001bfd7;\n  }" { (expression_statement "pcVar1 = cond_obstack.next_free + 0x24;" (assignment_expression "pcVar1 = cond_obstack.next_free + 0x24" identifier = (binary_expression "cond_obstack.next_free + 0x24" (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 (pcVar1 != cond_obstack.object_base) goto LAB_0001bfd7;" if (parenthesized_expression "(pcVar1 != cond_obstack.object_base)" ( (binary_expression "pcVar1 != cond_obstack.object_base" identifier != (field_expression "cond_obstack.object_base" identifier . field_identifier)) )) (goto_statement "goto LAB_0001bfd7;" goto statement_identifier ;)) }))) (expression_statement "cond_obstack._40_1_ = cond_obstack._40_1_ | 2;" (assignment_expression "cond_obstack._40_1_ = cond_obstack._40_1_ | 2" (field_expression "cond_obstack._40_1_" identifier . field_identifier) = (binary_expression "cond_obstack._40_1_ | 2" (field_expression "cond_obstack._40_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_0001bfd7:\n  cond_obstack.object_base =\n       (char *)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask);" statement_identifier : (expression_statement "cond_obstack.object_base =\n       (char *)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask);" (assignment_expression "cond_obstack.object_base =\n       (char *)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask)" (field_expression "cond_obstack.object_base" identifier . field_identifier) = (cast_expression "(char *)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask)" ( (binary_expression "(uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask" (call_expression "(uint)(pcVar1 + cond_obstack.alignment_mask)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar1 + cond_obstack.alignment_mask)" ( (binary_expression "pcVar1 + 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 ((uint)((int)cond_obstack.chunk_limit - (int)cond_obstack.chunk) <\n      (uint)((int)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n            (int)cond_obstack.chunk)) {\n    cond_obstack.object_base = cond_obstack.chunk_limit;\n  }" if (parenthesized_expression "((uint)((int)cond_obstack.chunk_limit - (int)cond_obstack.chunk) <\n      (uint)((int)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n            (int)cond_obstack.chunk))" ( (binary_expression "(uint)((int)cond_obstack.chunk_limit - (int)cond_obstack.chunk) <\n      (uint)((int)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n            (int)cond_obstack.chunk)" (call_expression "(uint)((int)cond_obstack.chunk_limit - (int)cond_obstack.chunk)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)cond_obstack.chunk_limit - (int)cond_obstack.chunk)" ( (binary_expression "(int)cond_obstack.chunk_limit - (int)cond_obstack.chunk" (cast_expression "(int)cond_obstack.chunk_limit" ( (type_descriptor "int" primitive_type) ) (field_expression "cond_obstack.chunk_limit" identifier . field_identifier)) - (cast_expression "(int)cond_obstack.chunk" ( (type_descriptor "int" primitive_type) ) (field_expression "cond_obstack.chunk" identifier . field_identifier))) ))) < (call_expression "(uint)((int)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n            (int)cond_obstack.chunk)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n            (int)cond_obstack.chunk)" ( (binary_expression "(int)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -\n            (int)cond_obstack.chunk" (cast_expression "(int)((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask)" ( (binary_expression "(uint)(pcVar1 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask" (call_expression "(uint)(pcVar1 + cond_obstack.alignment_mask)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar1 + cond_obstack.alignment_mask)" ( (binary_expression "pcVar1 + 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 "(int)cond_obstack.chunk" ( (type_descriptor "int" primitive_type) ) (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 "(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 "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 = cframe.else_seen;" (assignment_expression "pcVar4->else_seen = cframe.else_seen" (field_expression "pcVar4->else_seen" identifier -> field_identifier) = (field_expression "cframe.else_seen" identifier . field_identifier)) ;) (expression_statement "pcVar4->ignoring = cframe.ignoring;" (assignment_expression "pcVar4->ignoring = cframe.ignoring" (field_expression "pcVar4->ignoring" identifier -> field_identifier) = (field_expression "cframe.ignoring" identifier . field_identifier)) ;) (expression_statement "pcVar4->dead_tree = cframe.dead_tree;" (assignment_expression "pcVar4->dead_tree = cframe.dead_tree" (field_expression "pcVar4->dead_tree" identifier -> field_identifier) = (field_expression "cframe.dead_tree" identifier . field_identifier)) ;) (expression_statement "pcVar4->macro_nest = cframe.macro_nest;" (assignment_expression "pcVar4->macro_nest = cframe.macro_nest" (field_expression "pcVar4->macro_nest" identifier -> field_identifier) = (field_expression "cframe.macro_nest" identifier . field_identifier)) ;) (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 ))) ;) })) (if_statement "if (flag_mri == 0) {\n    demand_empty_rest_of_line();\n    return;\n  }" if (parenthesized_expression "(flag_mri == 0)" ( (binary_expression "flag_mri == 0" identifier == number_literal) )) (compound_statement "{\n    demand_empty_rest_of_line();\n    return;\n  }" { (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "mri_comment_end(local_50,(int)stopc);" (call_expression "mri_comment_end(local_50,(int)stopc)" identifier (argument_list "(local_50,(int)stopc)" ( identifier , (cast_expression "(int)stopc" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (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_0001bf00(uint param_1)\n\n{\n  char *__s1;\n  char *__s2;\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  undefined4 *puVar5;\n  undefined4 local_50;\n  char local_49;\n  size_t local_48;\n  size_t local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  int local_30;\n  undefined4 local_2c;\n  uint local_28;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1bf09;\n  local_49 = '\0';\n  local_50 = 0;\n  if (DAT_00083e34 != 0) {\n    local_50 = FUN_0002f110(&local_49);\n  }\n  __s1 = (char *)FUN_0001b680();\n  if (*DAT_00083ef0 == ',') {\n    DAT_00083ef0 = DAT_00083ef0 + 1;\n  }\n  else {\n    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);\n    FUN_0002d660(uVar2);\n  }\n  uVar4 = 0;\n  __s2 = (char *)FUN_0001b680();\n  if (local_48 == local_44) {\n    iVar1 = strncmp(__s1,__s2,local_48);\n    uVar4 = (uint)(iVar1 == 0);\n  }\n  FUN_0001b7b0();\n  local_28 = (uint)(local_24 != 0 || uVar4 == param_1);\n  if (DAT_00083e50 - DAT_00083e4c < 0x24) {\n    _obstack_newchunk(&DAT_00083e40,0x24);\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  else {\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  DAT_00083e68 = DAT_00083e68 | 2;\n  puVar3 = DAT_00083e48;\nLAB_0001bfd7:\n  DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58);\n  if (DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44)) {\n    DAT_00083e48 = (undefined4 *)DAT_00083e50;\n  }\n  DAT_00083718 = puVar3;\n  DAT_00083e4c = (uint)DAT_00083e48;\n  *puVar3 = local_40;\n  puVar3[1] = local_3c;\n  puVar3[2] = local_38;\n  puVar3[3] = local_34;\n  puVar3[4] = local_30;\n  puVar3[5] = local_2c;\n  puVar3[6] = local_28;\n  puVar3[7] = local_24;\n  puVar3[8] = local_20;\n  if (((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&\n     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))) {\n    FUN_0002a160(2);\n  }\n  if (DAT_00083e34 == 0) {\n    FUN_0002f970();\n    return;\n  }\n  FUN_0002f170(local_50,(int)local_49);\n  FUN_0002f970();\n  return;\n}\n\n" (function_definition "void FUN_0001bf00(uint param_1)\n\n{\n  char *__s1;\n  char *__s2;\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  undefined4 *puVar5;\n  undefined4 local_50;\n  char local_49;\n  size_t local_48;\n  size_t local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  int local_30;\n  undefined4 local_2c;\n  uint local_28;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1bf09;\n  local_49 = '\0';\n  local_50 = 0;\n  if (DAT_00083e34 != 0) {\n    local_50 = FUN_0002f110(&local_49);\n  }\n  __s1 = (char *)FUN_0001b680();\n  if (*DAT_00083ef0 == ',') {\n    DAT_00083ef0 = DAT_00083ef0 + 1;\n  }\n  else {\n    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);\n    FUN_0002d660(uVar2);\n  }\n  uVar4 = 0;\n  __s2 = (char *)FUN_0001b680();\n  if (local_48 == local_44) {\n    iVar1 = strncmp(__s1,__s2,local_48);\n    uVar4 = (uint)(iVar1 == 0);\n  }\n  FUN_0001b7b0();\n  local_28 = (uint)(local_24 != 0 || uVar4 == param_1);\n  if (DAT_00083e50 - DAT_00083e4c < 0x24) {\n    _obstack_newchunk(&DAT_00083e40,0x24);\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  else {\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  DAT_00083e68 = DAT_00083e68 | 2;\n  puVar3 = DAT_00083e48;\nLAB_0001bfd7:\n  DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58);\n  if (DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44)) {\n    DAT_00083e48 = (undefined4 *)DAT_00083e50;\n  }\n  DAT_00083718 = puVar3;\n  DAT_00083e4c = (uint)DAT_00083e48;\n  *puVar3 = local_40;\n  puVar3[1] = local_3c;\n  puVar3[2] = local_38;\n  puVar3[3] = local_34;\n  puVar3[4] = local_30;\n  puVar3[5] = local_2c;\n  puVar3[6] = local_28;\n  puVar3[7] = local_24;\n  puVar3[8] = local_20;\n  if (((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&\n     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))) {\n    FUN_0002a160(2);\n  }\n  if (DAT_00083e34 == 0) {\n    FUN_0002f970();\n    return;\n  }\n  FUN_0002f170(local_50,(int)local_49);\n  FUN_0002f970();\n  return;\n}" primitive_type (function_declarator "FUN_0001bf00(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  char *__s1;\n  char *__s2;\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  undefined4 *puVar5;\n  undefined4 local_50;\n  char local_49;\n  size_t local_48;\n  size_t local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  int local_30;\n  undefined4 local_2c;\n  uint local_28;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1bf09;\n  local_49 = '\0';\n  local_50 = 0;\n  if (DAT_00083e34 != 0) {\n    local_50 = FUN_0002f110(&local_49);\n  }\n  __s1 = (char *)FUN_0001b680();\n  if (*DAT_00083ef0 == ',') {\n    DAT_00083ef0 = DAT_00083ef0 + 1;\n  }\n  else {\n    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);\n    FUN_0002d660(uVar2);\n  }\n  uVar4 = 0;\n  __s2 = (char *)FUN_0001b680();\n  if (local_48 == local_44) {\n    iVar1 = strncmp(__s1,__s2,local_48);\n    uVar4 = (uint)(iVar1 == 0);\n  }\n  FUN_0001b7b0();\n  local_28 = (uint)(local_24 != 0 || uVar4 == param_1);\n  if (DAT_00083e50 - DAT_00083e4c < 0x24) {\n    _obstack_newchunk(&DAT_00083e40,0x24);\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  else {\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  DAT_00083e68 = DAT_00083e68 | 2;\n  puVar3 = DAT_00083e48;\nLAB_0001bfd7:\n  DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58);\n  if (DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44)) {\n    DAT_00083e48 = (undefined4 *)DAT_00083e50;\n  }\n  DAT_00083718 = puVar3;\n  DAT_00083e4c = (uint)DAT_00083e48;\n  *puVar3 = local_40;\n  puVar3[1] = local_3c;\n  puVar3[2] = local_38;\n  puVar3[3] = local_34;\n  puVar3[4] = local_30;\n  puVar3[5] = local_2c;\n  puVar3[6] = local_28;\n  puVar3[7] = local_24;\n  puVar3[8] = local_20;\n  if (((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&\n     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))) {\n    FUN_0002a160(2);\n  }\n  if (DAT_00083e34 == 0) {\n    FUN_0002f970();\n    return;\n  }\n  FUN_0002f170(local_50,(int)local_49);\n  FUN_0002f970();\n  return;\n}" { (declaration "char *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "char local_49;" primitive_type identifier ;) (declaration "size_t local_48;" primitive_type identifier ;) (declaration "size_t local_44;" primitive_type identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1bf09;" (assignment_expression "uStack_14 = 0x1bf09" identifier = number_literal) ;) (expression_statement "local_49 = '\0';" (assignment_expression "local_49 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (if_statement "if (DAT_00083e34 != 0) {\n    local_50 = FUN_0002f110(&local_49);\n  }" if (parenthesized_expression "(DAT_00083e34 != 0)" ( (binary_expression "DAT_00083e34 != 0" identifier != number_literal) )) (compound_statement "{\n    local_50 = FUN_0002f110(&local_49);\n  }" { (expression_statement "local_50 = FUN_0002f110(&local_49);" (assignment_expression "local_50 = FUN_0002f110(&local_49)" identifier = (call_expression "FUN_0002f110(&local_49)" identifier (argument_list "(&local_49)" ( (pointer_expression "&local_49" & identifier) )))) ;) })) (expression_statement "__s1 = (char *)FUN_0001b680();" (assignment_expression "__s1 = (char *)FUN_0001b680()" identifier = (cast_expression "(char *)FUN_0001b680()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001b680()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (*DAT_00083ef0 == ',') {\n    DAT_00083ef0 = DAT_00083ef0 + 1;\n  }\n  else {\n    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);\n    FUN_0002d660(uVar2);\n  }" if (parenthesized_expression "(*DAT_00083ef0 == ',')" ( (binary_expression "*DAT_00083ef0 == ','" (pointer_expression "*DAT_00083ef0" * identifier) == (char_literal "','" ' character ')) )) (compound_statement "{\n    DAT_00083ef0 = DAT_00083ef0 + 1;\n  }" { (expression_statement "DAT_00083ef0 = DAT_00083ef0 + 1;" (assignment_expression "DAT_00083ef0 = DAT_00083ef0 + 1" identifier = (binary_expression "DAT_00083ef0 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);\n    FUN_0002d660(uVar2);\n  }" else (compound_statement "{\n    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);\n    FUN_0002d660(uVar2);\n  }" { (expression_statement "uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);" (assignment_expression "uVar2 = dcgettext(0,"bad format for ifc or ifnc",5)" identifier = (call_expression "dcgettext(0,"bad format for ifc or ifnc",5)" identifier (argument_list "(0,"bad format for ifc or ifnc",5)" ( number_literal , (string_literal ""bad format for ifc or ifnc"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002d660(uVar2);" (call_expression "FUN_0002d660(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) }))) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "__s2 = (char *)FUN_0001b680();" (assignment_expression "__s2 = (char *)FUN_0001b680()" identifier = (cast_expression "(char *)FUN_0001b680()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001b680()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (local_48 == local_44) {\n    iVar1 = strncmp(__s1,__s2,local_48);\n    uVar4 = (uint)(iVar1 == 0);\n  }" if (parenthesized_expression "(local_48 == local_44)" ( (binary_expression "local_48 == local_44" identifier == identifier) )) (compound_statement "{\n    iVar1 = strncmp(__s1,__s2,local_48);\n    uVar4 = (uint)(iVar1 == 0);\n  }" { (expression_statement "iVar1 = strncmp(__s1,__s2,local_48);" (assignment_expression "iVar1 = strncmp(__s1,__s2,local_48)" identifier = (call_expression "strncmp(__s1,__s2,local_48)" identifier (argument_list "(__s1,__s2,local_48)" ( identifier , identifier , identifier )))) ;) (expression_statement "uVar4 = (uint)(iVar1 == 0);" (assignment_expression "uVar4 = (uint)(iVar1 == 0)" identifier = (call_expression "(uint)(iVar1 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )))) ;) })) (expression_statement "FUN_0001b7b0();" (call_expression "FUN_0001b7b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_28 = (uint)(local_24 != 0 || uVar4 == param_1);" (assignment_expression "local_28 = (uint)(local_24 != 0 || uVar4 == param_1)" identifier = (call_expression "(uint)(local_24 != 0 || uVar4 == param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_24 != 0 || uVar4 == param_1)" ( (binary_expression "local_24 != 0 || uVar4 == param_1" (binary_expression "local_24 != 0" identifier != number_literal) || (binary_expression "uVar4 == param_1" identifier == identifier)) )))) ;) (if_statement "if (DAT_00083e50 - DAT_00083e4c < 0x24) {\n    _obstack_newchunk(&DAT_00083e40,0x24);\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  else {\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }" if (parenthesized_expression "(DAT_00083e50 - DAT_00083e4c < 0x24)" ( (binary_expression "DAT_00083e50 - DAT_00083e4c < 0x24" (binary_expression "DAT_00083e50 - DAT_00083e4c" identifier - identifier) < number_literal) )) (compound_statement "{\n    _obstack_newchunk(&DAT_00083e40,0x24);\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }" { (expression_statement "_obstack_newchunk(&DAT_00083e40,0x24);" (call_expression "_obstack_newchunk(&DAT_00083e40,0x24)" identifier (argument_list "(&DAT_00083e40,0x24)" ( (pointer_expression "&DAT_00083e40" & identifier) , number_literal ))) ;) (expression_statement "puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);" (assignment_expression "puVar5 = (undefined4 *)(DAT_00083e4c + 0x24)" identifier = (cast_expression "(undefined4 *)(DAT_00083e4c + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00083e4c + 0x24)" ( (binary_expression "DAT_00083e4c + 0x24" identifier + number_literal) )))) ;) (expression_statement "puVar3 = DAT_00083e48;" (assignment_expression "puVar3 = DAT_00083e48" identifier = identifier) ;) (if_statement "if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;" if (parenthesized_expression "(puVar5 != DAT_00083e48)" ( (binary_expression "puVar5 != DAT_00083e48" identifier != identifier) )) (goto_statement "goto LAB_0001bfd7;" goto statement_identifier ;)) }) (else_clause "else {\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }" else (compound_statement "{\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }" { (expression_statement "puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);" (assignment_expression "puVar5 = (undefined4 *)(DAT_00083e4c + 0x24)" identifier = (cast_expression "(undefined4 *)(DAT_00083e4c + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00083e4c + 0x24)" ( (binary_expression "DAT_00083e4c + 0x24" identifier + number_literal) )))) ;) (expression_statement "puVar3 = DAT_00083e48;" (assignment_expression "puVar3 = DAT_00083e48" identifier = identifier) ;) (if_statement "if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;" if (parenthesized_expression "(puVar5 != DAT_00083e48)" ( (binary_expression "puVar5 != DAT_00083e48" identifier != identifier) )) (goto_statement "goto LAB_0001bfd7;" goto statement_identifier ;)) }))) (expression_statement "DAT_00083e68 = DAT_00083e68 | 2;" (assignment_expression "DAT_00083e68 = DAT_00083e68 | 2" identifier = (binary_expression "DAT_00083e68 | 2" identifier | number_literal)) ;) (expression_statement "puVar3 = DAT_00083e48;" (assignment_expression "puVar3 = DAT_00083e48" identifier = identifier) ;) (labeled_statement "LAB_0001bfd7:\n  DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58);" statement_identifier : (expression_statement "DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58);" (assignment_expression "DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58)" identifier = (cast_expression "(undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + DAT_00083e58 & ~DAT_00083e58)" ( (binary_expression "(int)puVar5 + DAT_00083e58 & ~DAT_00083e58" (binary_expression "(int)puVar5 + DAT_00083e58" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) & (unary_expression "~DAT_00083e58" ~ identifier)) )))) ;)) (if_statement "if (DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44)) {\n    DAT_00083e48 = (undefined4 *)DAT_00083e50;\n  }" if (parenthesized_expression "(DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44))" ( (binary_expression "DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44)" (binary_expression "DAT_00083e50 - DAT_00083e44" identifier - identifier) < (call_expression "(uint)((int)DAT_00083e48 - DAT_00083e44)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)DAT_00083e48 - DAT_00083e44)" ( (binary_expression "(int)DAT_00083e48 - DAT_00083e44" (cast_expression "(int)DAT_00083e48" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) )) (compound_statement "{\n    DAT_00083e48 = (undefined4 *)DAT_00083e50;\n  }" { (expression_statement "DAT_00083e48 = (undefined4 *)DAT_00083e50;" (assignment_expression "DAT_00083e48 = (undefined4 *)DAT_00083e50" identifier = (cast_expression "(undefined4 *)DAT_00083e50" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "DAT_00083718 = puVar3;" (assignment_expression "DAT_00083718 = puVar3" identifier = identifier) ;) (expression_statement "DAT_00083e4c = (uint)DAT_00083e48;" (assignment_expression "DAT_00083e4c = (uint)DAT_00083e48" identifier = (cast_expression "(uint)DAT_00083e48" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*puVar3 = local_40;" (assignment_expression "*puVar3 = local_40" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "puVar3[1] = local_3c;" (assignment_expression "puVar3[1] = local_3c" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[2] = local_38;" (assignment_expression "puVar3[2] = local_38" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[3] = local_34;" (assignment_expression "puVar3[3] = local_34" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[4] = local_30;" (assignment_expression "puVar3[4] = local_30" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[5] = local_2c;" (assignment_expression "puVar3[5] = local_2c" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[6] = local_28;" (assignment_expression "puVar3[6] = local_28" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[7] = local_24;" (assignment_expression "puVar3[7] = local_24" (subscript_expression "puVar3[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[8] = local_20;" (assignment_expression "puVar3[8] = local_20" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&\n     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))) {\n    FUN_0002a160(2);\n  }" if (parenthesized_expression "(((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&\n     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0))))" ( (binary_expression "((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&\n     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))" (parenthesized_expression "((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0))" ( (binary_expression "(((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)" (parenthesized_expression "(((byte)DAT_00083dcc & 0x20) != 0)" ( (binary_expression "((byte)DAT_00083dcc & 0x20) != 0" (parenthesized_expression "((byte)DAT_00083dcc & 0x20)" ( (binary_expression "(byte)DAT_00083dcc & 0x20" (cast_expression "(byte)DAT_00083dcc" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(local_28 != 0)" ( (binary_expression "local_28 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))" ( (parenthesized_expression "(local_30 == 0 || (*(int *)(local_30 + 0x18) == 0))" ( (binary_expression "local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)" (binary_expression "local_30 == 0" identifier == number_literal) || (parenthesized_expression "(*(int *)(local_30 + 0x18) == 0)" ( (binary_expression "*(int *)(local_30 + 0x18) == 0" (pointer_expression "*(int *)(local_30 + 0x18)" * (cast_expression "(int *)(local_30 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_30 + 0x18)" ( (binary_expression "local_30 + 0x18" identifier + number_literal) )))) == number_literal) ))) )) ))) )) (compound_statement "{\n    FUN_0002a160(2);\n  }" { (expression_statement "FUN_0002a160(2);" (call_expression "FUN_0002a160(2)" identifier (argument_list "(2)" ( number_literal ))) ;) })) (if_statement "if (DAT_00083e34 == 0) {\n    FUN_0002f970();\n    return;\n  }" if (parenthesized_expression "(DAT_00083e34 == 0)" ( (binary_expression "DAT_00083e34 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0002f970();\n    return;\n  }" { (expression_statement "FUN_0002f970();" (call_expression "FUN_0002f970()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0002f170(local_50,(int)local_49);" (call_expression "FUN_0002f170(local_50,(int)local_49)" identifier (argument_list "(local_50,(int)local_49)" ( identifier , (cast_expression "(int)local_49" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "FUN_0002f970();" (call_expression "FUN_0002f970()" 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT == IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - 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 (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) & (unary_expression ~ IDENT)) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) ) 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 ]) = 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) ;) (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 ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0001bf00(uint param_1)\n\n{\n  char *__s1;\n  char *__s2;\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  undefined4 *puVar5;\n  undefined4 local_50;\n  char local_49;\n  size_t local_48;\n  size_t local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  int local_30;\n  undefined4 local_2c;\n  uint local_28;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1bf09;\n  local_49 = '\0';\n  local_50 = 0;\n  if (DAT_00083e34 != 0) {\n    local_50 = FUN_0002f110(&local_49);\n  }\n  __s1 = (char *)FUN_0001b680();\n  if (*DAT_00083ef0 == ',') {\n    DAT_00083ef0 = DAT_00083ef0 + 1;\n  }\n  else {\n    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);\n    FUN_0002d660(uVar2);\n  }\n  uVar4 = 0;\n  __s2 = (char *)FUN_0001b680();\n  if (local_48 == local_44) {\n    iVar1 = strncmp(__s1,__s2,local_48);\n    uVar4 = (uint)(iVar1 == 0);\n  }\n  FUN_0001b7b0();\n  local_28 = (uint)(local_24 != 0 || uVar4 == param_1);\n  if (DAT_00083e50 - DAT_00083e4c < 0x24) {\n    _obstack_newchunk(&DAT_00083e40,0x24);\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  else {\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  DAT_00083e68 = DAT_00083e68 | 2;\n  puVar3 = DAT_00083e48;\nLAB_0001bfd7:\n  DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58);\n  if (DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44)) {\n    DAT_00083e48 = (undefined4 *)DAT_00083e50;\n  }\n  DAT_00083718 = puVar3;\n  DAT_00083e4c = (uint)DAT_00083e48;\n  *puVar3 = local_40;\n  puVar3[1] = local_3c;\n  puVar3[2] = local_38;\n  puVar3[3] = local_34;\n  puVar3[4] = local_30;\n  puVar3[5] = local_2c;\n  puVar3[6] = local_28;\n  puVar3[7] = local_24;\n  puVar3[8] = local_20;\n  if (((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&\n     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))) {\n    FUN_0002a160(2);\n  }\n  if (DAT_00083e34 == 0) {\n    FUN_0002f970();\n    return;\n  }\n  FUN_0002f170(local_50,(int)local_49);\n  FUN_0002f970();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0001bf00(uint param_1)" (identifier "FUN_0001bf00") (parameter_list "(uint param_1)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) () ")"))) (compound_statement "{\n  char *__s1;\n  char *__s2;\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  undefined4 *puVar5;\n  undefined4 local_50;\n  char local_49;\n  size_t local_48;\n  size_t local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  int local_30;\n  undefined4 local_2c;\n  uint local_28;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1bf09;\n  local_49 = '\0';\n  local_50 = 0;\n  if (DAT_00083e34 != 0) {\n    local_50 = FUN_0002f110(&local_49);\n  }\n  __s1 = (char *)FUN_0001b680();\n  if (*DAT_00083ef0 == ',') {\n    DAT_00083ef0 = DAT_00083ef0 + 1;\n  }\n  else {\n    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);\n    FUN_0002d660(uVar2);\n  }\n  uVar4 = 0;\n  __s2 = (char *)FUN_0001b680();\n  if (local_48 == local_44) {\n    iVar1 = strncmp(__s1,__s2,local_48);\n    uVar4 = (uint)(iVar1 == 0);\n  }\n  FUN_0001b7b0();\n  local_28 = (uint)(local_24 != 0 || uVar4 == param_1);\n  if (DAT_00083e50 - DAT_00083e4c < 0x24) {\n    _obstack_newchunk(&DAT_00083e40,0x24);\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  else {\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  DAT_00083e68 = DAT_00083e68 | 2;\n  puVar3 = DAT_00083e48;\nLAB_0001bfd7:\n  DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58);\n  if (DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44)) {\n    DAT_00083e48 = (undefined4 *)DAT_00083e50;\n  }\n  DAT_00083718 = puVar3;\n  DAT_00083e4c = (uint)DAT_00083e48;\n  *puVar3 = local_40;\n  puVar3[1] = local_3c;\n  puVar3[2] = local_38;\n  puVar3[3] = local_34;\n  puVar3[4] = local_30;\n  puVar3[5] = local_2c;\n  puVar3[6] = local_28;\n  puVar3[7] = local_24;\n  puVar3[8] = local_20;\n  if (((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&\n     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))) {\n    FUN_0002a160(2);\n  }\n  if (DAT_00083e34 == 0) {\n    FUN_0002f970();\n    return;\n  }\n  FUN_0002f170(local_50,(int)local_49);\n  FUN_0002f970();\n  return;\n}" ({ "{") (declaration "char *__s1;" (primitive_type "char") (pointer_declarator "*__s1" (* "*") (identifier "__s1")) (; ";")) (declaration "char *__s2;" (primitive_type "char") (pointer_declarator "*__s2" (* "*") (identifier "__s2")) (; ";")) (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "char local_49;" (primitive_type "char") (identifier "local_49") (; ";")) (declaration "size_t local_48;" (primitive_type "size_t") (identifier "local_48") (; ";")) (declaration "size_t local_44;" (primitive_type "size_t") (identifier "local_44") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "uint local_28;" (type_identifier "uint") (identifier "local_28") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x1bf09;" (assignment_expression "uStack_14 = 0x1bf09" (identifier "uStack_14") (= "=") (number_literal "0x1bf09")) (; ";")) (expression_statement "local_49 = '\0';" (assignment_expression "local_49 = '\0'" (identifier "local_49") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_00083e34 != 0) {\n    local_50 = FUN_0002f110(&local_49);\n  }" (if "if") (parenthesized_expression "(DAT_00083e34 != 0)" (( "(") (binary_expression "DAT_00083e34 != 0" (identifier "DAT_00083e34") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_50 = FUN_0002f110(&local_49);\n  }" ({ "{") (expression_statement "local_50 = FUN_0002f110(&local_49);" (assignment_expression "local_50 = FUN_0002f110(&local_49)" (identifier "local_50") (= "=") (call_expression "FUN_0002f110(&local_49)" (identifier "FUN_0002f110") (argument_list "(&local_49)" (( "(") (pointer_expression "&local_49" (& "&") (identifier "local_49")) () ")")))) (; ";")) (} "}"))) (expression_statement "__s1 = (char *)FUN_0001b680();" (assignment_expression "__s1 = (char *)FUN_0001b680()" (identifier "__s1") (= "=") (cast_expression "(char *)FUN_0001b680()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001b680()" (identifier "FUN_0001b680") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (*DAT_00083ef0 == ',') {\n    DAT_00083ef0 = DAT_00083ef0 + 1;\n  }\n  else {\n    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);\n    FUN_0002d660(uVar2);\n  }" (if "if") (parenthesized_expression "(*DAT_00083ef0 == ',')" (( "(") (binary_expression "*DAT_00083ef0 == ','" (pointer_expression "*DAT_00083ef0" (* "*") (identifier "DAT_00083ef0")) (== "==") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n    DAT_00083ef0 = DAT_00083ef0 + 1;\n  }" ({ "{") (expression_statement "DAT_00083ef0 = DAT_00083ef0 + 1;" (assignment_expression "DAT_00083ef0 = DAT_00083ef0 + 1" (identifier "DAT_00083ef0") (= "=") (binary_expression "DAT_00083ef0 + 1" (identifier "DAT_00083ef0") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);\n    FUN_0002d660(uVar2);\n  }" (else "else") (compound_statement "{\n    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);\n    FUN_0002d660(uVar2);\n  }" ({ "{") (expression_statement "uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);" (assignment_expression "uVar2 = dcgettext(0,"bad format for ifc or ifnc",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"bad format for ifc or ifnc",5)" (identifier "dcgettext") (argument_list "(0,"bad format for ifc or ifnc",5)" (( "(") (number_literal "0") (, ",") (string_literal ""bad format for ifc or ifnc"" (" """) (string_content "bad format for ifc or ifnc") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002d660(uVar2);" (call_expression "FUN_0002d660(uVar2)" (identifier "FUN_0002d660") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "__s2 = (char *)FUN_0001b680();" (assignment_expression "__s2 = (char *)FUN_0001b680()" (identifier "__s2") (= "=") (cast_expression "(char *)FUN_0001b680()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001b680()" (identifier "FUN_0001b680") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (local_48 == local_44) {\n    iVar1 = strncmp(__s1,__s2,local_48);\n    uVar4 = (uint)(iVar1 == 0);\n  }" (if "if") (parenthesized_expression "(local_48 == local_44)" (( "(") (binary_expression "local_48 == local_44" (identifier "local_48") (== "==") (identifier "local_44")) () ")")) (compound_statement "{\n    iVar1 = strncmp(__s1,__s2,local_48);\n    uVar4 = (uint)(iVar1 == 0);\n  }" ({ "{") (expression_statement "iVar1 = strncmp(__s1,__s2,local_48);" (assignment_expression "iVar1 = strncmp(__s1,__s2,local_48)" (identifier "iVar1") (= "=") (call_expression "strncmp(__s1,__s2,local_48)" (identifier "strncmp") (argument_list "(__s1,__s2,local_48)" (( "(") (identifier "__s1") (, ",") (identifier "__s2") (, ",") (identifier "local_48") () ")")))) (; ";")) (expression_statement "uVar4 = (uint)(iVar1 == 0);" (assignment_expression "uVar4 = (uint)(iVar1 == 0)" (identifier "uVar4") (= "=") (call_expression "(uint)(iVar1 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")))) (; ";")) (} "}"))) (expression_statement "FUN_0001b7b0();" (call_expression "FUN_0001b7b0()" (identifier "FUN_0001b7b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_28 = (uint)(local_24 != 0 || uVar4 == param_1);" (assignment_expression "local_28 = (uint)(local_24 != 0 || uVar4 == param_1)" (identifier "local_28") (= "=") (call_expression "(uint)(local_24 != 0 || uVar4 == param_1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_24 != 0 || uVar4 == param_1)" (( "(") (binary_expression "local_24 != 0 || uVar4 == param_1" (binary_expression "local_24 != 0" (identifier "local_24") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar4 == param_1" (identifier "uVar4") (== "==") (identifier "param_1"))) () ")")))) (; ";")) (if_statement "if (DAT_00083e50 - DAT_00083e4c < 0x24) {\n    _obstack_newchunk(&DAT_00083e40,0x24);\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }\n  else {\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }" (if "if") (parenthesized_expression "(DAT_00083e50 - DAT_00083e4c < 0x24)" (( "(") (binary_expression "DAT_00083e50 - DAT_00083e4c < 0x24" (binary_expression "DAT_00083e50 - DAT_00083e4c" (identifier "DAT_00083e50") (- "-") (identifier "DAT_00083e4c")) (< "<") (number_literal "0x24")) () ")")) (compound_statement "{\n    _obstack_newchunk(&DAT_00083e40,0x24);\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }" ({ "{") (expression_statement "_obstack_newchunk(&DAT_00083e40,0x24);" (call_expression "_obstack_newchunk(&DAT_00083e40,0x24)" (identifier "_obstack_newchunk") (argument_list "(&DAT_00083e40,0x24)" (( "(") (pointer_expression "&DAT_00083e40" (& "&") (identifier "DAT_00083e40")) (, ",") (number_literal "0x24") () ")"))) (; ";")) (expression_statement "puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);" (assignment_expression "puVar5 = (undefined4 *)(DAT_00083e4c + 0x24)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(DAT_00083e4c + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00083e4c + 0x24)" (( "(") (binary_expression "DAT_00083e4c + 0x24" (identifier "DAT_00083e4c") (+ "+") (number_literal "0x24")) () ")")))) (; ";")) (expression_statement "puVar3 = DAT_00083e48;" (assignment_expression "puVar3 = DAT_00083e48" (identifier "puVar3") (= "=") (identifier "DAT_00083e48")) (; ";")) (if_statement "if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;" (if "if") (parenthesized_expression "(puVar5 != DAT_00083e48)" (( "(") (binary_expression "puVar5 != DAT_00083e48" (identifier "puVar5") (!= "!=") (identifier "DAT_00083e48")) () ")")) (goto_statement "goto LAB_0001bfd7;" (goto "goto") (statement_identifier "LAB_0001bfd7") (; ";"))) (} "}")) (else_clause "else {\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }" (else "else") (compound_statement "{\n    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);\n    puVar3 = DAT_00083e48;\n    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;\n  }" ({ "{") (expression_statement "puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);" (assignment_expression "puVar5 = (undefined4 *)(DAT_00083e4c + 0x24)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(DAT_00083e4c + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00083e4c + 0x24)" (( "(") (binary_expression "DAT_00083e4c + 0x24" (identifier "DAT_00083e4c") (+ "+") (number_literal "0x24")) () ")")))) (; ";")) (expression_statement "puVar3 = DAT_00083e48;" (assignment_expression "puVar3 = DAT_00083e48" (identifier "puVar3") (= "=") (identifier "DAT_00083e48")) (; ";")) (if_statement "if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;" (if "if") (parenthesized_expression "(puVar5 != DAT_00083e48)" (( "(") (binary_expression "puVar5 != DAT_00083e48" (identifier "puVar5") (!= "!=") (identifier "DAT_00083e48")) () ")")) (goto_statement "goto LAB_0001bfd7;" (goto "goto") (statement_identifier "LAB_0001bfd7") (; ";"))) (} "}")))) (expression_statement "DAT_00083e68 = DAT_00083e68 | 2;" (assignment_expression "DAT_00083e68 = DAT_00083e68 | 2" (identifier "DAT_00083e68") (= "=") (binary_expression "DAT_00083e68 | 2" (identifier "DAT_00083e68") (| "|") (number_literal "2"))) (; ";")) (expression_statement "puVar3 = DAT_00083e48;" (assignment_expression "puVar3 = DAT_00083e48" (identifier "puVar3") (= "=") (identifier "DAT_00083e48")) (; ";")) (labeled_statement "LAB_0001bfd7:\n  DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58);" (statement_identifier "LAB_0001bfd7") (: ":") (expression_statement "DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58);" (assignment_expression "DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58)" (identifier "DAT_00083e48") (= "=") (cast_expression "(undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar5 + DAT_00083e58 & ~DAT_00083e58)" (( "(") (binary_expression "(int)puVar5 + DAT_00083e58 & ~DAT_00083e58" (binary_expression "(int)puVar5 + DAT_00083e58" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (+ "+") (identifier "DAT_00083e58")) (& "&") (unary_expression "~DAT_00083e58" (~ "~") (identifier "DAT_00083e58"))) () ")")))) (; ";"))) (if_statement "if (DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44)) {\n    DAT_00083e48 = (undefined4 *)DAT_00083e50;\n  }" (if "if") (parenthesized_expression "(DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44))" (( "(") (binary_expression "DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44)" (binary_expression "DAT_00083e50 - DAT_00083e44" (identifier "DAT_00083e50") (- "-") (identifier "DAT_00083e44")) (< "<") (call_expression "(uint)((int)DAT_00083e48 - DAT_00083e44)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)DAT_00083e48 - DAT_00083e44)" (( "(") (binary_expression "(int)DAT_00083e48 - DAT_00083e44" (cast_expression "(int)DAT_00083e48" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_00083e48")) (- "-") (identifier "DAT_00083e44")) () ")")))) () ")")) (compound_statement "{\n    DAT_00083e48 = (undefined4 *)DAT_00083e50;\n  }" ({ "{") (expression_statement "DAT_00083e48 = (undefined4 *)DAT_00083e50;" (assignment_expression "DAT_00083e48 = (undefined4 *)DAT_00083e50" (identifier "DAT_00083e48") (= "=") (cast_expression "(undefined4 *)DAT_00083e50" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_00083e50"))) (; ";")) (} "}"))) (expression_statement "DAT_00083718 = puVar3;" (assignment_expression "DAT_00083718 = puVar3" (identifier "DAT_00083718") (= "=") (identifier "puVar3")) (; ";")) (expression_statement "DAT_00083e4c = (uint)DAT_00083e48;" (assignment_expression "DAT_00083e4c = (uint)DAT_00083e48" (identifier "DAT_00083e4c") (= "=") (cast_expression "(uint)DAT_00083e48" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "DAT_00083e48"))) (; ";")) (expression_statement "*puVar3 = local_40;" (assignment_expression "*puVar3 = local_40" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "puVar3[1] = local_3c;" (assignment_expression "puVar3[1] = local_3c" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "puVar3[2] = local_38;" (assignment_expression "puVar3[2] = local_38" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_38")) (; ";")) (expression_statement "puVar3[3] = local_34;" (assignment_expression "puVar3[3] = local_34" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "puVar3[4] = local_30;" (assignment_expression "puVar3[4] = local_30" (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_30")) (; ";")) (expression_statement "puVar3[5] = local_2c;" (assignment_expression "puVar3[5] = local_2c" (subscript_expression "puVar3[5]" (identifier "puVar3") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar3[6] = local_28;" (assignment_expression "puVar3[6] = local_28" (subscript_expression "puVar3[6]" (identifier "puVar3") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "puVar3[7] = local_24;" (assignment_expression "puVar3[7] = local_24" (subscript_expression "puVar3[7]" (identifier "puVar3") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_24")) (; ";")) (expression_statement "puVar3[8] = local_20;" (assignment_expression "puVar3[8] = local_20" (subscript_expression "puVar3[8]" (identifier "puVar3") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "local_20")) (; ";")) (if_statement "if (((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&\n     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))) {\n    FUN_0002a160(2);\n  }" (if "if") (parenthesized_expression "(((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&\n     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0))))" (( "(") (binary_expression "((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&\n     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))" (parenthesized_expression "((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0))" (( "(") (binary_expression "(((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)" (parenthesized_expression "(((byte)DAT_00083dcc & 0x20) != 0)" (( "(") (binary_expression "((byte)DAT_00083dcc & 0x20) != 0" (parenthesized_expression "((byte)DAT_00083dcc & 0x20)" (( "(") (binary_expression "(byte)DAT_00083dcc & 0x20" (cast_expression "(byte)DAT_00083dcc" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00083dcc")) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_28 != 0)" (( "(") (binary_expression "local_28 != 0" (identifier "local_28") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))" (( "(") (parenthesized_expression "(local_30 == 0 || (*(int *)(local_30 + 0x18) == 0))" (( "(") (binary_expression "local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)" (binary_expression "local_30 == 0" (identifier "local_30") (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(*(int *)(local_30 + 0x18) == 0)" (( "(") (binary_expression "*(int *)(local_30 + 0x18) == 0" (pointer_expression "*(int *)(local_30 + 0x18)" (* "*") (cast_expression "(int *)(local_30 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_30 + 0x18)" (( "(") (binary_expression "local_30 + 0x18" (identifier "local_30") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    FUN_0002a160(2);\n  }" ({ "{") (expression_statement "FUN_0002a160(2);" (call_expression "FUN_0002a160(2)" (identifier "FUN_0002a160") (argument_list "(2)" (( "(") (number_literal "2") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_00083e34 == 0) {\n    FUN_0002f970();\n    return;\n  }" (if "if") (parenthesized_expression "(DAT_00083e34 == 0)" (( "(") (binary_expression "DAT_00083e34 == 0" (identifier "DAT_00083e34") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0002f970();\n    return;\n  }" ({ "{") (expression_statement "FUN_0002f970();" (call_expression "FUN_0002f970()" (identifier "FUN_0002f970") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0002f170(local_50,(int)local_49);" (call_expression "FUN_0002f170(local_50,(int)local_49)" (identifier "FUN_0002f170") (argument_list "(local_50,(int)local_49)" (( "(") (identifier "local_50") (, ",") (cast_expression "(int)local_49" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_49")) () ")"))) (; ";")) (expression_statement "FUN_0002f970();" (call_expression "FUN_0002f970()" (identifier "FUN_0002f970") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void function_1(int var_13)

{
  char *var_15;
  char *pcVar2;
  int var_10;
  type_1 *pcVar4;
  type_2 var_12;
  char *local_50;
  char stopc;
  int var_7;
  int var_8;
  type_1 cframe;
  
  stopc = '\0';
  local_50 = (char *)0x0;
  if (var_1 != 0) {
    local_50 = var_2(&stopc);
  }
  var_15 = var_3(0x2c,&var_7);
  if (*var_4 == ',') {
    var_4 = var_4 + 1;
  }
  else {
    pcVar2 = (char *)var_5(0,"bad format for ifc or ifnc",5);
    var_6(pcVar2);
  }
  var_12 = 0;
  pcVar2 = var_3(0x3b,&var_8);
  if (var_7 == var_8) {
    var_10 = var_9(var_15,pcVar2,var_7);
    var_12 = (type_2)(var_10 == 0);
  }
  var_11(&cframe);
  cframe.ignoring = (int)(cframe.dead_tree != 0 || var_12 == var_13);
  if ((type_2)((int)cond_obstack.chunk_limit - (int)cond_obstack.next_free) < 0x24) {
    var_14(&cond_obstack,0x24);
    var_15 = cond_obstack.next_free + 0x24;
    pcVar4 = (type_1 *)cond_obstack.object_base;
    if (var_15 != cond_obstack.object_base) goto LAB_0001bfd7;
  }
  else {
    var_15 = cond_obstack.next_free + 0x24;
    pcVar4 = (type_1 *)cond_obstack.object_base;
    if (var_15 != cond_obstack.object_base) goto LAB_0001bfd7;
  }
  cond_obstack._40_1_ = cond_obstack._40_1_ | 2;
  pcVar4 = (type_1 *)cond_obstack.object_base;
LAB_0001bfd7:
  cond_obstack.object_base =
       (char *)((type_2)(var_15 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask);
  if ((type_2)((int)cond_obstack.chunk_limit - (int)cond_obstack.chunk) <
      (type_2)((int)((type_2)(var_15 + cond_obstack.alignment_mask) & ~cond_obstack.alignment_mask) -
            (int)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;
  (pcVar4->else_file_line).file = cframe.else_file_line.file;
  (pcVar4->else_file_line).line = cframe.else_file_line.line;
  pcVar4->previous_cframe = cframe.previous_cframe;
  pcVar4->else_seen = cframe.else_seen;
  pcVar4->ignoring = cframe.ignoring;
  pcVar4->dead_tree = cframe.dead_tree;
  pcVar4->macro_nest = cframe.macro_nest;
  if (((((type_3)listing & 0x20) != 0) && (cframe.ignoring != 0)) &&
     ((cframe.previous_cframe == (type_1 *)0x0 ||
      ((cframe.previous_cframe)->ignoring == 0)))) {
    var_16(2);
  }
  if (var_1 == 0) {
    var_17();
    return;
  }
  var_18(local_50,(int)stopc);
  var_17();
  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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (unary_expression argument: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) 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)) 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: (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))) (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))))

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

void MASKED(uint param_1)

{
  char *__s1;
  char *__s2;
  int iVar1;
  undefined4 uVar2;
  undefined4 *puVar3;
  uint uVar4;
  undefined4 *puVar5;
  undefined4 local_50;
  char local_49;
  size_t local_48;
  size_t local_44;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  int local_30;
  undefined4 local_2c;
  uint local_28;
  int local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x1bf09;
  local_49 = '\0';
  local_50 = 0;
  if (DAT_00083e34 != 0) {
    local_50 = FUN_0002f110(&local_49);
  }
  __s1 = (char *)FUN_0001b680();
  if (*DAT_00083ef0 == ',') {
    DAT_00083ef0 = DAT_00083ef0 + 1;
  }
  else {
    uVar2 = dcgettext(0,"bad format for ifc or ifnc",5);
    FUN_0002d660(uVar2);
  }
  uVar4 = 0;
  __s2 = (char *)FUN_0001b680();
  if (local_48 == local_44) {
    iVar1 = strncmp(__s1,__s2,local_48);
    uVar4 = (uint)(iVar1 == 0);
  }
  FUN_0001b7b0();
  local_28 = (uint)(local_24 != 0 || uVar4 == param_1);
  if (DAT_00083e50 - DAT_00083e4c < 0x24) {
    _obstack_newchunk(&DAT_00083e40,0x24);
    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);
    puVar3 = DAT_00083e48;
    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;
  }
  else {
    puVar5 = (undefined4 *)(DAT_00083e4c + 0x24);
    puVar3 = DAT_00083e48;
    if (puVar5 != DAT_00083e48) goto LAB_0001bfd7;
  }
  DAT_00083e68 = DAT_00083e68 | 2;
  puVar3 = DAT_00083e48;
LAB_0001bfd7:
  DAT_00083e48 = (undefined4 *)((int)puVar5 + DAT_00083e58 & ~DAT_00083e58);
  if (DAT_00083e50 - DAT_00083e44 < (uint)((int)DAT_00083e48 - DAT_00083e44)) {
    DAT_00083e48 = (undefined4 *)DAT_00083e50;
  }
  DAT_00083718 = puVar3;
  DAT_00083e4c = (uint)DAT_00083e48;
  *puVar3 = local_40;
  puVar3[1] = local_3c;
  puVar3[2] = local_38;
  puVar3[3] = local_34;
  puVar3[4] = local_30;
  puVar3[5] = local_2c;
  puVar3[6] = local_28;
  puVar3[7] = local_24;
  puVar3[8] = local_20;
  if (((((byte)DAT_00083dcc & 0x20) != 0) && (local_28 != 0)) &&
     ((local_30 == 0 || (*(int *)(local_30 + 0x18) == 0)))) {
    FUN_0002a160(2);
  }
  if (DAT_00083e34 == 0) {
    FUN_0002f970();
    return;
  }
  FUN_0002f170(local_50,(int)local_49);
  FUN_0002f970();
  return;
}

