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

bfd_boolean gldi386pep_handle_option(int optc)

{
  undefined4 uVar1;
  undefined *puVar2;
  char cVar3;
  char *pcVar4;
  char *__nptr;
  ulong uVar5;
  int iVar6;
  char *pcVar7;
  byte *pbVar8;
  int iVar9;
  size_t __n;
  byte *pbVar10;
  byte *pbVar11;
  bool bVar12;
  bool bVar13;
  byte bVar14;
  char **ppcVar15;
  exclude_type type;
  char **__endptr;
  bfd_vma in_stack_ffffffc4;
  char **local_30;
  char *end;
  undefined4 uStack_14;
  
  bVar14 = 0;
  uStack_14 = 0x54449;
  is_underscoring();
  puVar2 = PTR_optarg_001cefdc;
  switch(optc) {
  case 0x12d:
    link_info.base_file = fopen64(*(char **)PTR_optarg_001cefdc,"w");
    if ((FILE *)link_info.base_file == (FILE *)0x0) {
      uVar1 = *(undefined4 *)puVar2;
      pcVar7 = (char *)dcgettext(0,"%F%P: cannot open base file %s\n",5);
      einfo(pcVar7,uVar1);
      break;
    }
  case 0x13b:
_L606:
    break;
  case 0x12e:
    set_pep_name("__dll__",in_stack_ffffffc4);
    break;
  case 0x12f:
    set_pep_value("__file_alignment__");
    break;
  case 0x130:
    set_pep_value("__image_base__");
    break;
  case 0x131:
    set_pep_value("__major_image_version__");
    break;
  case 0x132:
    set_pep_value("__major_os_version__");
    break;
  case 0x133:
    set_pep_value("__major_subsystem_version__");
    break;
  case 0x134:
    set_pep_value("__minor_image_version__");
    break;
  case 0x135:
    set_pep_value("__minor_os_version__");
    break;
  case 0x136:
    set_pep_value("__minor_subsystem_version__");
    break;
  case 0x137:
    set_pep_value("__section_alignment__");
    break;
  case 0x138:
    set_pep_stack_heap("__size_of_stack_reserve__","__size_of_stack_commit__");
    break;
  case 0x139:
    pcVar7 = *(char **)PTR_optarg_001cefdc;
    pcVar4 = strchr(pcVar7,0x3a);
    if (pcVar4 == (char *)0x0) {
      __n = strlen(pcVar7);
    }
    else {
      __nptr = pcVar4 + 1;
      __n = (int)pcVar4 - (int)pcVar7;
      __endptr = &end;
      ppcVar15 = __endptr;
      strtoul(__nptr,__endptr,0);
      set_pep_name("__major_subsystem_version__",CONCAT44(ppcVar15,__nptr));
      cVar3 = *end;
      if (cVar3 == '.') {
        pcVar7 = end + 1;
        strtoul(pcVar7,__endptr,0);
        set_pep_name("__minor_subsystem_version__",CONCAT44(__endptr,pcVar7));
        cVar3 = *end;
      }
      if (cVar3 == '\0') {
        pcVar7 = *(char **)puVar2;
      }
      else {
        pcVar7 = (char *)dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);
        einfo(pcVar7);
        pcVar7 = *(char **)puVar2;
      }
    }
    local_30 = &end;
    uVar5 = strtoul(pcVar7,local_30,0);
    if ((*end == ':' || *end == '\0') && (uVar5 < 0x10000)) {
LAB_00054481:
      pep_subsystem = uVar5;
      set_pep_name("__subsystem__",in_stack_ffffffc4);
    }
    else {
      pcVar4 = *(char **)puVar2;
      pcVar7 = "native";
      iVar9 = 0;
      do {
        iVar6 = strncmp(pcVar4,pcVar7,__n);
        if ((iVar6 == 0) && (pcVar7[__n] == '\0')) {
          uVar5 = *(int *)(v_12444 + iVar9 * 8 + 4);
          goto LAB_00054481;
        }
        iVar9 = iVar9 + 1;
        pcVar7 = *(char **)(v_12444 + iVar9 * 8);
      } while (pcVar7 != (char *)0x0);
      pcVar7 = (char *)dcgettext(0,"%F%P: invalid subsystem type %s\n",5);
      einfo(pcVar7,pcVar4);
    }
    goto _L606;
  case 0x13a:
    set_pep_stack_heap("__size_of_heap_reserve__","__size_of_heap_commit__");
    goto _L606;
  case 0x13c:
    pep_out_def_filename = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc);
    break;
  case 0x13d:
    pep_dll_export_everything = 1;
    break;
  case 0x13e:
    type = EXCLUDESYMS;
    goto LAB_00054815;
  case 0x13f:
    pep_dll_exclude_all_symbols = 1;
    break;
  case 0x140:
    pep_dll_kill_ats = 1;
    break;
  case 0x141:
    pep_dll_stdcall_aliases = 1;
    break;
  case 0x142:
    pep_enable_stdcall_fixup = 1;
    break;
  case 0x143:
    pep_enable_stdcall_fixup = 0;
    break;
  case 0x144:
    pep_dll_warn_dup_exports = 1;
    break;
  case 0x145:
    pep_dll_compat_implib = 1;
    break;
  case 0x146:
    pep_enable_auto_image_base = 1;
    break;
  case 0x147:
    pep_enable_auto_image_base = 0;
    break;
  case 0x148:
    pep_dll_search_prefix = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc);
    break;
  case 0x149:
    pep_dll_do_default_excludes = 0;
    break;
  case 0x14a:
    link_info.pei386_auto_import = 1;
    break;
  case 0x14b:
    link_info.pei386_auto_import = 0;
    break;
  case 0x14c:
    pep_dll_extra_pe_debug = 1;
    break;
  case 0x14d:
    type = EXCLUDELIBS;
    goto LAB_00054815;
  case 0x14e:
  case 0x150:
    link_info.pei386_runtime_pseudo_reloc = 2;
    break;
  case 0x14f:
    link_info.pei386_runtime_pseudo_reloc = 0;
    break;
  case 0x151:
    type = EXCLUDEFORIMPLIB;
LAB_00054815:
    pep_dll_add_excludes(*(char **)PTR_optarg_001cefdc,type);
    break;
  case 0x152:
    pep_use_nul_prefixed_import_tables = 1;
    break;
  case 0x153:
    pep_leading_underscore = 0;
    break;
  case 0x154:
    pep_leading_underscore = 1;
    break;
  case 0x155:
    pep_use_coff_long_section_names = 1;
    break;
  case 0x156:
    pep_use_coff_long_section_names = 0;
    break;
  case 0x157:
    pe_dll_characteristics = pe_dll_characteristics | 0x20;
    break;
  case 0x158:
    pe_dll_characteristics = pe_dll_characteristics | 0x40;
    break;
  case 0x159:
    pe_dll_characteristics = pe_dll_characteristics | 0x80;
    break;
  case 0x15a:
    pe_dll_characteristics = pe_dll_characteristics | 0x100;
    break;
  case 0x15b:
    pe_dll_characteristics = pe_dll_characteristics | 0x200;
    break;
  case 0x15c:
    pe_dll_characteristics = pe_dll_characteristics | 0x400;
    break;
  case 0x15d:
    pe_dll_characteristics = pe_dll_characteristics | 0x800;
    break;
  case 0x15e:
    pe_dll_characteristics = pe_dll_characteristics | 0x2000;
    break;
  case 0x15f:
    insert_timestamp = 1;
    break;
  case 0x160:
    insert_timestamp = 0;
    break;
  case 0x161:
    pe_dll_characteristics = pe_dll_characteristics | 0x8000;
    break;
  case 0x162:
    if (emit_build_id != (char *)0x0) {
      free(emit_build_id);
      emit_build_id = (char *)0x0;
    }
    pbVar8 = *(byte **)PTR_optarg_001cefdc;
    bVar12 = false;
    bVar13 = pbVar8 == (byte *)0x0;
    if (bVar13) {
      pbVar8 = &DAT_0007e2c4;
      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;
    }
    else {
      iVar9 = 5;
      pbVar10 = pbVar8;
      pbVar11 = (byte *)0x79bf4;
      do {
        if (iVar9 == 0) break;
        iVar9 = iVar9 + -1;
        bVar12 = *pbVar10 < *pbVar11;
        bVar13 = *pbVar10 == *pbVar11;
        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;
        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;
      } while (bVar13);
      if ((!bVar12 && !bVar13) == bVar12) goto _L606;
    }
    emit_build_id = (char *)xstrdup(pbVar8);
    break;
  default:
    return 0;
  }
  set_pep_name("__dll_characteristics__",in_stack_ffffffc4);
  return 1;
}



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

undefined4 FUN_00054440(undefined4 param_1)

{
  undefined *puVar1;
  char cVar2;
  char *pcVar3;
  ulong uVar4;
  int iVar5;
  undefined4 uVar6;
  byte *pbVar7;
  int iVar8;
  char *pcVar9;
  size_t __n;
  byte *pbVar10;
  byte *pbVar11;
  bool bVar12;
  bool bVar13;
  byte bVar14;
  undefined4 uVar15;
  char **ppcStack_30;
  char *apcStack_20 [3];
  undefined4 uStack_14;
  
  bVar14 = 0;
  uStack_14 = 0x54449;
  FUN_00052dd0();
  puVar1 = PTR_optarg_001cefdc;
  switch(param_1) {
  case 0x12d:
    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");
    if (pFRam001d142c == (FILE *)0x0) {
      uVar15 = *(undefined4 *)puVar1;
      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);
      FUN_00034d20(uVar6,uVar15);
      break;
    }
  case 0x13b:
code_r0x00054491:
    break;
  case 0x12e:
    FUN_00054230();
    break;
  case 0x12f:
    FUN_00054350();
    break;
  case 0x130:
    FUN_00054350();
    break;
  case 0x131:
    FUN_00054350();
    break;
  case 0x132:
    FUN_00054350();
    break;
  case 0x133:
    FUN_00054350();
    break;
  case 0x134:
    FUN_00054350();
    break;
  case 0x135:
    FUN_00054350();
    break;
  case 0x136:
    FUN_00054350();
    break;
  case 0x137:
    FUN_00054350();
    break;
  case 0x138:
    FUN_000543d0();
    break;
  case 0x139:
    pcVar9 = *(char **)PTR_optarg_001cefdc;
    pcVar3 = strchr(pcVar9,0x3a);
    if (pcVar3 == (char *)0x0) {
      __n = strlen(pcVar9);
    }
    else {
      __n = (int)pcVar3 - (int)pcVar9;
      strtoul(pcVar3 + 1,apcStack_20,0);
      FUN_00054230();
      cVar2 = *apcStack_20[0];
      if (cVar2 == '.') {
        strtoul(apcStack_20[0] + 1,apcStack_20,0);
        FUN_00054230();
        cVar2 = *apcStack_20[0];
      }
      if (cVar2 == '\0') {
        pcVar9 = *(char **)puVar1;
      }
      else {
        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);
        FUN_00034d20(uVar15);
        pcVar9 = *(char **)puVar1;
      }
    }
    ppcStack_30 = apcStack_20;
    uVar4 = strtoul(pcVar9,ppcStack_30,0);
    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {
code_r0x00054481:
      DAT_001cfc74 = uVar4;
      FUN_00054230();
    }
    else {
      pcVar3 = *(char **)puVar1;
      pcVar9 = "native";
      iVar8 = 0;
      do {
        iVar5 = strncmp(pcVar3,pcVar9,__n);
        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {
          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);
          goto code_r0x00054481;
        }
        iVar8 = iVar8 + 1;
        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);
      } while (pcVar9 != (char *)0x0);
      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);
      FUN_00034d20(uVar15,pcVar3);
    }
    goto code_r0x00054491;
  case 0x13a:
    FUN_000543d0();
    goto code_r0x00054491;
  case 0x13c:
    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);
    break;
  case 0x13d:
    DAT_001d115c = 1;
    break;
  case 0x13e:
    uVar15 = 0;
    goto code_r0x00054815;
  case 0x13f:
    DAT_001d1158 = 1;
    break;
  case 0x140:
    DAT_001d1154 = 1;
    break;
  case 0x141:
    DAT_001d1150 = 1;
    break;
  case 0x142:
    DAT_001cfc6c = 1;
    break;
  case 0x143:
    DAT_001cfc6c = 0;
    break;
  case 0x144:
    DAT_001d114c = 1;
    break;
  case 0x145:
    DAT_001d1148 = 1;
    break;
  case 0x146:
    DAT_001d0df4 = 1;
    break;
  case 0x147:
    DAT_001d0df4 = 0;
    break;
  case 0x148:
    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);
    break;
  case 0x149:
    DAT_001d02b8 = 0;
    break;
  case 0x14a:
    DAT_001d1448 = 1;
    break;
  case 0x14b:
    DAT_001d1448 = 0;
    break;
  case 0x14c:
    DAT_001d1144 = 1;
    break;
  case 0x14d:
    uVar15 = 1;
    goto code_r0x00054815;
  case 0x14e:
  case 0x150:
    DAT_001d144c = 2;
    break;
  case 0x14f:
    DAT_001d144c = 0;
    break;
  case 0x151:
    uVar15 = 2;
code_r0x00054815:
    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);
    break;
  case 0x152:
    DAT_001d1140 = 1;
    break;
  case 0x153:
    DAT_001d02b0 = 0;
    break;
  case 0x154:
    DAT_001d02b0 = 1;
    break;
  case 0x155:
    DAT_001d02b4 = 1;
    break;
  case 0x156:
    DAT_001d02b4 = 0;
    break;
  case 0x157:
    uRam001d0e00 = uRam001d0e00 | 0x20;
    break;
  case 0x158:
    uRam001d0e00 = uRam001d0e00 | 0x40;
    break;
  case 0x159:
    uRam001d0e00 = uRam001d0e00 | 0x80;
    break;
  case 0x15a:
    uRam001d0e00 = uRam001d0e00 | 0x100;
    break;
  case 0x15b:
    uRam001d0e00 = uRam001d0e00 | 0x200;
    break;
  case 0x15c:
    uRam001d0e00 = uRam001d0e00 | 0x400;
    break;
  case 0x15d:
    uRam001d0e00 = uRam001d0e00 | 0x800;
    break;
  case 0x15e:
    uRam001d0e00 = uRam001d0e00 | 0x2000;
    break;
  case 0x15f:
    DAT_001cfc70 = 1;
    break;
  case 0x160:
    DAT_001cfc70 = 0;
    break;
  case 0x161:
    uRam001d0e00 = uRam001d0e00 | 0x8000;
    break;
  case 0x162:
    if (DAT_001d0dfc != (void *)0x0) {
      free(DAT_001d0dfc);
      DAT_001d0dfc = (void *)0x0;
    }
    pbVar7 = *(byte **)PTR_optarg_001cefdc;
    bVar12 = false;
    bVar13 = pbVar7 == (byte *)0x0;
    if (bVar13) {
      pbVar7 = &DAT_0007e2c4;
      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;
    }
    else {
      iVar8 = 5;
      pbVar10 = pbVar7;
      pbVar11 = (byte *)0x79bf4;
      do {
        if (iVar8 == 0) break;
        iVar8 = iVar8 + -1;
        bVar12 = *pbVar10 < *pbVar11;
        bVar13 = *pbVar10 == *pbVar11;
        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;
        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;
      } while (bVar13);
      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;
    }
    DAT_001d0dfc = (void *)xstrdup(pbVar7);
    break;
  default:
    return 0;
  }
  FUN_00054230();
  return 1;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00017b80
ADD EBX,0x17abb7
SUB ESP,0x2c
CALL 0x00052dd0
MOV EAX,dword ptr [ESP + 0x40]
SUB EAX,0x12d
CMP EAX,0x35
JA 0x00054d00
MOV ECX,dword ptr [EBX + EAX*0x4 + 0xfffd2300]
ADD ECX,EBX
JMP ECX
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
XOR EAX,EAX
JMP 0x000544b5
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_00054440(undefined4 param_1)\n\n{\n  undefined *puVar1;\n  char cVar2;\n  char *pcVar3;\n  ulong uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte *pbVar7;\n  int iVar8;\n  char *pcVar9;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined4 uVar15;\n  char **ppcStack_30;\n  char *apcStack_20 [3];\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x54449;\n  FUN_00052dd0();\n  puVar1 = PTR_optarg_001cefdc;\n  switch(param_1) {\n  case 0x12d:\n    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }\n  case 0x13b:\ncode_r0x00054491:\n    break;\n  case 0x12e:\n    FUN_00054230();\n    break;\n  case 0x12f:\n    FUN_00054350();\n    break;\n  case 0x130:\n    FUN_00054350();\n    break;\n  case 0x131:\n    FUN_00054350();\n    break;\n  case 0x132:\n    FUN_00054350();\n    break;\n  case 0x133:\n    FUN_00054350();\n    break;\n  case 0x134:\n    FUN_00054350();\n    break;\n  case 0x135:\n    FUN_00054350();\n    break;\n  case 0x136:\n    FUN_00054350();\n    break;\n  case 0x137:\n    FUN_00054350();\n    break;\n  case 0x138:\n    FUN_000543d0();\n    break;\n  case 0x139:\n    pcVar9 = *(char **)PTR_optarg_001cefdc;\n    pcVar3 = strchr(pcVar9,0x3a);\n    if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }\n    ppcStack_30 = apcStack_20;\n    uVar4 = strtoul(pcVar9,ppcStack_30,0);\n    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }\n    goto code_r0x00054491;\n  case 0x13a:\n    FUN_000543d0();\n    goto code_r0x00054491;\n  case 0x13c:\n    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    DAT_001d115c = 1;\n    break;\n  case 0x13e:\n    uVar15 = 0;\n    goto code_r0x00054815;\n  case 0x13f:\n    DAT_001d1158 = 1;\n    break;\n  case 0x140:\n    DAT_001d1154 = 1;\n    break;\n  case 0x141:\n    DAT_001d1150 = 1;\n    break;\n  case 0x142:\n    DAT_001cfc6c = 1;\n    break;\n  case 0x143:\n    DAT_001cfc6c = 0;\n    break;\n  case 0x144:\n    DAT_001d114c = 1;\n    break;\n  case 0x145:\n    DAT_001d1148 = 1;\n    break;\n  case 0x146:\n    DAT_001d0df4 = 1;\n    break;\n  case 0x147:\n    DAT_001d0df4 = 0;\n    break;\n  case 0x148:\n    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    DAT_001d02b8 = 0;\n    break;\n  case 0x14a:\n    DAT_001d1448 = 1;\n    break;\n  case 0x14b:\n    DAT_001d1448 = 0;\n    break;\n  case 0x14c:\n    DAT_001d1144 = 1;\n    break;\n  case 0x14d:\n    uVar15 = 1;\n    goto code_r0x00054815;\n  case 0x14e:\n  case 0x150:\n    DAT_001d144c = 2;\n    break;\n  case 0x14f:\n    DAT_001d144c = 0;\n    break;\n  case 0x151:\n    uVar15 = 2;\ncode_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);\n    break;\n  case 0x152:\n    DAT_001d1140 = 1;\n    break;\n  case 0x153:\n    DAT_001d02b0 = 0;\n    break;\n  case 0x154:\n    DAT_001d02b0 = 1;\n    break;\n  case 0x155:\n    DAT_001d02b4 = 1;\n    break;\n  case 0x156:\n    DAT_001d02b4 = 0;\n    break;\n  case 0x157:\n    uRam001d0e00 = uRam001d0e00 | 0x20;\n    break;\n  case 0x158:\n    uRam001d0e00 = uRam001d0e00 | 0x40;\n    break;\n  case 0x159:\n    uRam001d0e00 = uRam001d0e00 | 0x80;\n    break;\n  case 0x15a:\n    uRam001d0e00 = uRam001d0e00 | 0x100;\n    break;\n  case 0x15b:\n    uRam001d0e00 = uRam001d0e00 | 0x200;\n    break;\n  case 0x15c:\n    uRam001d0e00 = uRam001d0e00 | 0x400;\n    break;\n  case 0x15d:\n    uRam001d0e00 = uRam001d0e00 | 0x800;\n    break;\n  case 0x15e:\n    uRam001d0e00 = uRam001d0e00 | 0x2000;\n    break;\n  case 0x15f:\n    DAT_001cfc70 = 1;\n    break;\n  case 0x160:\n    DAT_001cfc70 = 0;\n    break;\n  case 0x161:\n    uRam001d0e00 = uRam001d0e00 | 0x8000;\n    break;\n  case 0x162:\n    if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }\n    pbVar7 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar7 == (byte *)0x0;\n    if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }\n    DAT_001d0dfc = (void *)xstrdup(pbVar7);\n    break;\n  default:\n    return 0;\n  }\n  FUN_00054230();\n  return 1;\n}\n\n" comment (function_definition "undefined4 FUN_00054440(undefined4 param_1)\n\n{\n  undefined *puVar1;\n  char cVar2;\n  char *pcVar3;\n  ulong uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte *pbVar7;\n  int iVar8;\n  char *pcVar9;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined4 uVar15;\n  char **ppcStack_30;\n  char *apcStack_20 [3];\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x54449;\n  FUN_00052dd0();\n  puVar1 = PTR_optarg_001cefdc;\n  switch(param_1) {\n  case 0x12d:\n    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }\n  case 0x13b:\ncode_r0x00054491:\n    break;\n  case 0x12e:\n    FUN_00054230();\n    break;\n  case 0x12f:\n    FUN_00054350();\n    break;\n  case 0x130:\n    FUN_00054350();\n    break;\n  case 0x131:\n    FUN_00054350();\n    break;\n  case 0x132:\n    FUN_00054350();\n    break;\n  case 0x133:\n    FUN_00054350();\n    break;\n  case 0x134:\n    FUN_00054350();\n    break;\n  case 0x135:\n    FUN_00054350();\n    break;\n  case 0x136:\n    FUN_00054350();\n    break;\n  case 0x137:\n    FUN_00054350();\n    break;\n  case 0x138:\n    FUN_000543d0();\n    break;\n  case 0x139:\n    pcVar9 = *(char **)PTR_optarg_001cefdc;\n    pcVar3 = strchr(pcVar9,0x3a);\n    if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }\n    ppcStack_30 = apcStack_20;\n    uVar4 = strtoul(pcVar9,ppcStack_30,0);\n    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }\n    goto code_r0x00054491;\n  case 0x13a:\n    FUN_000543d0();\n    goto code_r0x00054491;\n  case 0x13c:\n    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    DAT_001d115c = 1;\n    break;\n  case 0x13e:\n    uVar15 = 0;\n    goto code_r0x00054815;\n  case 0x13f:\n    DAT_001d1158 = 1;\n    break;\n  case 0x140:\n    DAT_001d1154 = 1;\n    break;\n  case 0x141:\n    DAT_001d1150 = 1;\n    break;\n  case 0x142:\n    DAT_001cfc6c = 1;\n    break;\n  case 0x143:\n    DAT_001cfc6c = 0;\n    break;\n  case 0x144:\n    DAT_001d114c = 1;\n    break;\n  case 0x145:\n    DAT_001d1148 = 1;\n    break;\n  case 0x146:\n    DAT_001d0df4 = 1;\n    break;\n  case 0x147:\n    DAT_001d0df4 = 0;\n    break;\n  case 0x148:\n    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    DAT_001d02b8 = 0;\n    break;\n  case 0x14a:\n    DAT_001d1448 = 1;\n    break;\n  case 0x14b:\n    DAT_001d1448 = 0;\n    break;\n  case 0x14c:\n    DAT_001d1144 = 1;\n    break;\n  case 0x14d:\n    uVar15 = 1;\n    goto code_r0x00054815;\n  case 0x14e:\n  case 0x150:\n    DAT_001d144c = 2;\n    break;\n  case 0x14f:\n    DAT_001d144c = 0;\n    break;\n  case 0x151:\n    uVar15 = 2;\ncode_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);\n    break;\n  case 0x152:\n    DAT_001d1140 = 1;\n    break;\n  case 0x153:\n    DAT_001d02b0 = 0;\n    break;\n  case 0x154:\n    DAT_001d02b0 = 1;\n    break;\n  case 0x155:\n    DAT_001d02b4 = 1;\n    break;\n  case 0x156:\n    DAT_001d02b4 = 0;\n    break;\n  case 0x157:\n    uRam001d0e00 = uRam001d0e00 | 0x20;\n    break;\n  case 0x158:\n    uRam001d0e00 = uRam001d0e00 | 0x40;\n    break;\n  case 0x159:\n    uRam001d0e00 = uRam001d0e00 | 0x80;\n    break;\n  case 0x15a:\n    uRam001d0e00 = uRam001d0e00 | 0x100;\n    break;\n  case 0x15b:\n    uRam001d0e00 = uRam001d0e00 | 0x200;\n    break;\n  case 0x15c:\n    uRam001d0e00 = uRam001d0e00 | 0x400;\n    break;\n  case 0x15d:\n    uRam001d0e00 = uRam001d0e00 | 0x800;\n    break;\n  case 0x15e:\n    uRam001d0e00 = uRam001d0e00 | 0x2000;\n    break;\n  case 0x15f:\n    DAT_001cfc70 = 1;\n    break;\n  case 0x160:\n    DAT_001cfc70 = 0;\n    break;\n  case 0x161:\n    uRam001d0e00 = uRam001d0e00 | 0x8000;\n    break;\n  case 0x162:\n    if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }\n    pbVar7 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar7 == (byte *)0x0;\n    if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }\n    DAT_001d0dfc = (void *)xstrdup(pbVar7);\n    break;\n  default:\n    return 0;\n  }\n  FUN_00054230();\n  return 1;\n}" type_identifier (function_declarator "FUN_00054440(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  char cVar2;\n  char *pcVar3;\n  ulong uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte *pbVar7;\n  int iVar8;\n  char *pcVar9;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined4 uVar15;\n  char **ppcStack_30;\n  char *apcStack_20 [3];\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x54449;\n  FUN_00052dd0();\n  puVar1 = PTR_optarg_001cefdc;\n  switch(param_1) {\n  case 0x12d:\n    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }\n  case 0x13b:\ncode_r0x00054491:\n    break;\n  case 0x12e:\n    FUN_00054230();\n    break;\n  case 0x12f:\n    FUN_00054350();\n    break;\n  case 0x130:\n    FUN_00054350();\n    break;\n  case 0x131:\n    FUN_00054350();\n    break;\n  case 0x132:\n    FUN_00054350();\n    break;\n  case 0x133:\n    FUN_00054350();\n    break;\n  case 0x134:\n    FUN_00054350();\n    break;\n  case 0x135:\n    FUN_00054350();\n    break;\n  case 0x136:\n    FUN_00054350();\n    break;\n  case 0x137:\n    FUN_00054350();\n    break;\n  case 0x138:\n    FUN_000543d0();\n    break;\n  case 0x139:\n    pcVar9 = *(char **)PTR_optarg_001cefdc;\n    pcVar3 = strchr(pcVar9,0x3a);\n    if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }\n    ppcStack_30 = apcStack_20;\n    uVar4 = strtoul(pcVar9,ppcStack_30,0);\n    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }\n    goto code_r0x00054491;\n  case 0x13a:\n    FUN_000543d0();\n    goto code_r0x00054491;\n  case 0x13c:\n    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    DAT_001d115c = 1;\n    break;\n  case 0x13e:\n    uVar15 = 0;\n    goto code_r0x00054815;\n  case 0x13f:\n    DAT_001d1158 = 1;\n    break;\n  case 0x140:\n    DAT_001d1154 = 1;\n    break;\n  case 0x141:\n    DAT_001d1150 = 1;\n    break;\n  case 0x142:\n    DAT_001cfc6c = 1;\n    break;\n  case 0x143:\n    DAT_001cfc6c = 0;\n    break;\n  case 0x144:\n    DAT_001d114c = 1;\n    break;\n  case 0x145:\n    DAT_001d1148 = 1;\n    break;\n  case 0x146:\n    DAT_001d0df4 = 1;\n    break;\n  case 0x147:\n    DAT_001d0df4 = 0;\n    break;\n  case 0x148:\n    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    DAT_001d02b8 = 0;\n    break;\n  case 0x14a:\n    DAT_001d1448 = 1;\n    break;\n  case 0x14b:\n    DAT_001d1448 = 0;\n    break;\n  case 0x14c:\n    DAT_001d1144 = 1;\n    break;\n  case 0x14d:\n    uVar15 = 1;\n    goto code_r0x00054815;\n  case 0x14e:\n  case 0x150:\n    DAT_001d144c = 2;\n    break;\n  case 0x14f:\n    DAT_001d144c = 0;\n    break;\n  case 0x151:\n    uVar15 = 2;\ncode_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);\n    break;\n  case 0x152:\n    DAT_001d1140 = 1;\n    break;\n  case 0x153:\n    DAT_001d02b0 = 0;\n    break;\n  case 0x154:\n    DAT_001d02b0 = 1;\n    break;\n  case 0x155:\n    DAT_001d02b4 = 1;\n    break;\n  case 0x156:\n    DAT_001d02b4 = 0;\n    break;\n  case 0x157:\n    uRam001d0e00 = uRam001d0e00 | 0x20;\n    break;\n  case 0x158:\n    uRam001d0e00 = uRam001d0e00 | 0x40;\n    break;\n  case 0x159:\n    uRam001d0e00 = uRam001d0e00 | 0x80;\n    break;\n  case 0x15a:\n    uRam001d0e00 = uRam001d0e00 | 0x100;\n    break;\n  case 0x15b:\n    uRam001d0e00 = uRam001d0e00 | 0x200;\n    break;\n  case 0x15c:\n    uRam001d0e00 = uRam001d0e00 | 0x400;\n    break;\n  case 0x15d:\n    uRam001d0e00 = uRam001d0e00 | 0x800;\n    break;\n  case 0x15e:\n    uRam001d0e00 = uRam001d0e00 | 0x2000;\n    break;\n  case 0x15f:\n    DAT_001cfc70 = 1;\n    break;\n  case 0x160:\n    DAT_001cfc70 = 0;\n    break;\n  case 0x161:\n    uRam001d0e00 = uRam001d0e00 | 0x8000;\n    break;\n  case 0x162:\n    if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }\n    pbVar7 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar7 == (byte *)0x0;\n    if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }\n    DAT_001d0dfc = (void *)xstrdup(pbVar7);\n    break;\n  default:\n    return 0;\n  }\n  FUN_00054230();\n  return 1;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "char **ppcStack_30;" primitive_type (pointer_declarator "**ppcStack_30" * (pointer_declarator "*ppcStack_30" * identifier)) ;) (declaration "char *apcStack_20 [3];" primitive_type (pointer_declarator "*apcStack_20 [3]" * (array_declarator "apcStack_20 [3]" identifier [ number_literal ])) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x54449;" (assignment_expression "uStack_14 = 0x54449" identifier = number_literal) ;) (expression_statement "FUN_00052dd0();" (call_expression "FUN_00052dd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar1 = PTR_optarg_001cefdc;" (assignment_expression "puVar1 = PTR_optarg_001cefdc" identifier = identifier) ;) (switch_statement "switch(param_1) {\n  case 0x12d:\n    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }\n  case 0x13b:\ncode_r0x00054491:\n    break;\n  case 0x12e:\n    FUN_00054230();\n    break;\n  case 0x12f:\n    FUN_00054350();\n    break;\n  case 0x130:\n    FUN_00054350();\n    break;\n  case 0x131:\n    FUN_00054350();\n    break;\n  case 0x132:\n    FUN_00054350();\n    break;\n  case 0x133:\n    FUN_00054350();\n    break;\n  case 0x134:\n    FUN_00054350();\n    break;\n  case 0x135:\n    FUN_00054350();\n    break;\n  case 0x136:\n    FUN_00054350();\n    break;\n  case 0x137:\n    FUN_00054350();\n    break;\n  case 0x138:\n    FUN_000543d0();\n    break;\n  case 0x139:\n    pcVar9 = *(char **)PTR_optarg_001cefdc;\n    pcVar3 = strchr(pcVar9,0x3a);\n    if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }\n    ppcStack_30 = apcStack_20;\n    uVar4 = strtoul(pcVar9,ppcStack_30,0);\n    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }\n    goto code_r0x00054491;\n  case 0x13a:\n    FUN_000543d0();\n    goto code_r0x00054491;\n  case 0x13c:\n    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    DAT_001d115c = 1;\n    break;\n  case 0x13e:\n    uVar15 = 0;\n    goto code_r0x00054815;\n  case 0x13f:\n    DAT_001d1158 = 1;\n    break;\n  case 0x140:\n    DAT_001d1154 = 1;\n    break;\n  case 0x141:\n    DAT_001d1150 = 1;\n    break;\n  case 0x142:\n    DAT_001cfc6c = 1;\n    break;\n  case 0x143:\n    DAT_001cfc6c = 0;\n    break;\n  case 0x144:\n    DAT_001d114c = 1;\n    break;\n  case 0x145:\n    DAT_001d1148 = 1;\n    break;\n  case 0x146:\n    DAT_001d0df4 = 1;\n    break;\n  case 0x147:\n    DAT_001d0df4 = 0;\n    break;\n  case 0x148:\n    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    DAT_001d02b8 = 0;\n    break;\n  case 0x14a:\n    DAT_001d1448 = 1;\n    break;\n  case 0x14b:\n    DAT_001d1448 = 0;\n    break;\n  case 0x14c:\n    DAT_001d1144 = 1;\n    break;\n  case 0x14d:\n    uVar15 = 1;\n    goto code_r0x00054815;\n  case 0x14e:\n  case 0x150:\n    DAT_001d144c = 2;\n    break;\n  case 0x14f:\n    DAT_001d144c = 0;\n    break;\n  case 0x151:\n    uVar15 = 2;\ncode_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);\n    break;\n  case 0x152:\n    DAT_001d1140 = 1;\n    break;\n  case 0x153:\n    DAT_001d02b0 = 0;\n    break;\n  case 0x154:\n    DAT_001d02b0 = 1;\n    break;\n  case 0x155:\n    DAT_001d02b4 = 1;\n    break;\n  case 0x156:\n    DAT_001d02b4 = 0;\n    break;\n  case 0x157:\n    uRam001d0e00 = uRam001d0e00 | 0x20;\n    break;\n  case 0x158:\n    uRam001d0e00 = uRam001d0e00 | 0x40;\n    break;\n  case 0x159:\n    uRam001d0e00 = uRam001d0e00 | 0x80;\n    break;\n  case 0x15a:\n    uRam001d0e00 = uRam001d0e00 | 0x100;\n    break;\n  case 0x15b:\n    uRam001d0e00 = uRam001d0e00 | 0x200;\n    break;\n  case 0x15c:\n    uRam001d0e00 = uRam001d0e00 | 0x400;\n    break;\n  case 0x15d:\n    uRam001d0e00 = uRam001d0e00 | 0x800;\n    break;\n  case 0x15e:\n    uRam001d0e00 = uRam001d0e00 | 0x2000;\n    break;\n  case 0x15f:\n    DAT_001cfc70 = 1;\n    break;\n  case 0x160:\n    DAT_001cfc70 = 0;\n    break;\n  case 0x161:\n    uRam001d0e00 = uRam001d0e00 | 0x8000;\n    break;\n  case 0x162:\n    if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }\n    pbVar7 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar7 == (byte *)0x0;\n    if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }\n    DAT_001d0dfc = (void *)xstrdup(pbVar7);\n    break;\n  default:\n    return 0;\n  }" switch (parenthesized_expression "(param_1)" ( identifier )) (compound_statement "{\n  case 0x12d:\n    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }\n  case 0x13b:\ncode_r0x00054491:\n    break;\n  case 0x12e:\n    FUN_00054230();\n    break;\n  case 0x12f:\n    FUN_00054350();\n    break;\n  case 0x130:\n    FUN_00054350();\n    break;\n  case 0x131:\n    FUN_00054350();\n    break;\n  case 0x132:\n    FUN_00054350();\n    break;\n  case 0x133:\n    FUN_00054350();\n    break;\n  case 0x134:\n    FUN_00054350();\n    break;\n  case 0x135:\n    FUN_00054350();\n    break;\n  case 0x136:\n    FUN_00054350();\n    break;\n  case 0x137:\n    FUN_00054350();\n    break;\n  case 0x138:\n    FUN_000543d0();\n    break;\n  case 0x139:\n    pcVar9 = *(char **)PTR_optarg_001cefdc;\n    pcVar3 = strchr(pcVar9,0x3a);\n    if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }\n    ppcStack_30 = apcStack_20;\n    uVar4 = strtoul(pcVar9,ppcStack_30,0);\n    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }\n    goto code_r0x00054491;\n  case 0x13a:\n    FUN_000543d0();\n    goto code_r0x00054491;\n  case 0x13c:\n    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    DAT_001d115c = 1;\n    break;\n  case 0x13e:\n    uVar15 = 0;\n    goto code_r0x00054815;\n  case 0x13f:\n    DAT_001d1158 = 1;\n    break;\n  case 0x140:\n    DAT_001d1154 = 1;\n    break;\n  case 0x141:\n    DAT_001d1150 = 1;\n    break;\n  case 0x142:\n    DAT_001cfc6c = 1;\n    break;\n  case 0x143:\n    DAT_001cfc6c = 0;\n    break;\n  case 0x144:\n    DAT_001d114c = 1;\n    break;\n  case 0x145:\n    DAT_001d1148 = 1;\n    break;\n  case 0x146:\n    DAT_001d0df4 = 1;\n    break;\n  case 0x147:\n    DAT_001d0df4 = 0;\n    break;\n  case 0x148:\n    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    DAT_001d02b8 = 0;\n    break;\n  case 0x14a:\n    DAT_001d1448 = 1;\n    break;\n  case 0x14b:\n    DAT_001d1448 = 0;\n    break;\n  case 0x14c:\n    DAT_001d1144 = 1;\n    break;\n  case 0x14d:\n    uVar15 = 1;\n    goto code_r0x00054815;\n  case 0x14e:\n  case 0x150:\n    DAT_001d144c = 2;\n    break;\n  case 0x14f:\n    DAT_001d144c = 0;\n    break;\n  case 0x151:\n    uVar15 = 2;\ncode_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);\n    break;\n  case 0x152:\n    DAT_001d1140 = 1;\n    break;\n  case 0x153:\n    DAT_001d02b0 = 0;\n    break;\n  case 0x154:\n    DAT_001d02b0 = 1;\n    break;\n  case 0x155:\n    DAT_001d02b4 = 1;\n    break;\n  case 0x156:\n    DAT_001d02b4 = 0;\n    break;\n  case 0x157:\n    uRam001d0e00 = uRam001d0e00 | 0x20;\n    break;\n  case 0x158:\n    uRam001d0e00 = uRam001d0e00 | 0x40;\n    break;\n  case 0x159:\n    uRam001d0e00 = uRam001d0e00 | 0x80;\n    break;\n  case 0x15a:\n    uRam001d0e00 = uRam001d0e00 | 0x100;\n    break;\n  case 0x15b:\n    uRam001d0e00 = uRam001d0e00 | 0x200;\n    break;\n  case 0x15c:\n    uRam001d0e00 = uRam001d0e00 | 0x400;\n    break;\n  case 0x15d:\n    uRam001d0e00 = uRam001d0e00 | 0x800;\n    break;\n  case 0x15e:\n    uRam001d0e00 = uRam001d0e00 | 0x2000;\n    break;\n  case 0x15f:\n    DAT_001cfc70 = 1;\n    break;\n  case 0x160:\n    DAT_001cfc70 = 0;\n    break;\n  case 0x161:\n    uRam001d0e00 = uRam001d0e00 | 0x8000;\n    break;\n  case 0x162:\n    if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }\n    pbVar7 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar7 == (byte *)0x0;\n    if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }\n    DAT_001d0dfc = (void *)xstrdup(pbVar7);\n    break;\n  default:\n    return 0;\n  }" { (case_statement "case 0x12d:\n    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }" case number_literal : (expression_statement "pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");" (assignment_expression "pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w")" identifier = (call_expression "fopen64(*(char **)PTR_optarg_001cefdc,"w")" identifier (argument_list "(*(char **)PTR_optarg_001cefdc,"w")" ( (pointer_expression "*(char **)PTR_optarg_001cefdc" * (cast_expression "(char **)PTR_optarg_001cefdc" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (string_literal ""w"" " string_content ") )))) ;) (if_statement "if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }" if (parenthesized_expression "(pFRam001d142c == (FILE *)0x0)" ( (binary_expression "pFRam001d142c == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }" { (expression_statement "uVar15 = *(undefined4 *)puVar1;" (assignment_expression "uVar15 = *(undefined4 *)puVar1" identifier = (pointer_expression "*(undefined4 *)puVar1" * (cast_expression "(undefined4 *)puVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: cannot open base file %s\n",5)" identifier (argument_list "(0,"%F%P: cannot open base file %s\n",5)" ( number_literal , (string_literal ""%F%P: cannot open base file %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar6,uVar15);" (call_expression "FUN_00034d20(uVar6,uVar15)" identifier (argument_list "(uVar6,uVar15)" ( identifier , identifier ))) ;) (break_statement "break;" break ;) }))) (case_statement "case 0x13b:\ncode_r0x00054491:\n    break;" case number_literal : (labeled_statement "code_r0x00054491:\n    break;" statement_identifier : (break_statement "break;" break ;))) (case_statement "case 0x12e:\n    FUN_00054230();\n    break;" case number_literal : (expression_statement "FUN_00054230();" (call_expression "FUN_00054230()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x12f:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x130:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x131:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x132:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x133:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x134:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x135:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x136:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x137:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x138:\n    FUN_000543d0();\n    break;" case number_literal : (expression_statement "FUN_000543d0();" (call_expression "FUN_000543d0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x139:\n    pcVar9 = *(char **)PTR_optarg_001cefdc;\n    pcVar3 = strchr(pcVar9,0x3a);\n    if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }\n    ppcStack_30 = apcStack_20;\n    uVar4 = strtoul(pcVar9,ppcStack_30,0);\n    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }\n    goto code_r0x00054491;" case number_literal : (expression_statement "pcVar9 = *(char **)PTR_optarg_001cefdc;" (assignment_expression "pcVar9 = *(char **)PTR_optarg_001cefdc" identifier = (pointer_expression "*(char **)PTR_optarg_001cefdc" * (cast_expression "(char **)PTR_optarg_001cefdc" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar3 = strchr(pcVar9,0x3a);" (assignment_expression "pcVar3 = strchr(pcVar9,0x3a)" identifier = (call_expression "strchr(pcVar9,0x3a)" identifier (argument_list "(pcVar9,0x3a)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      __n = strlen(pcVar9);\n    }" { (expression_statement "__n = strlen(pcVar9);" (assignment_expression "__n = strlen(pcVar9)" identifier = (call_expression "strlen(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) ;) }) (else_clause "else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }" else (compound_statement "{\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }" { (expression_statement "__n = (int)pcVar3 - (int)pcVar9;" (assignment_expression "__n = (int)pcVar3 - (int)pcVar9" identifier = (binary_expression "(int)pcVar3 - (int)pcVar9" (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "strtoul(pcVar3 + 1,apcStack_20,0);" (call_expression "strtoul(pcVar3 + 1,apcStack_20,0)" identifier (argument_list "(pcVar3 + 1,apcStack_20,0)" ( (binary_expression "pcVar3 + 1" identifier + number_literal) , identifier , number_literal ))) ;) (expression_statement "FUN_00054230();" (call_expression "FUN_00054230()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar2 = *apcStack_20[0];" (assignment_expression "cVar2 = *apcStack_20[0]" identifier = (pointer_expression "*apcStack_20[0]" * (subscript_expression "apcStack_20[0]" identifier [ number_literal ]))) ;) (if_statement "if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }" if (parenthesized_expression "(cVar2 == '.')" ( (binary_expression "cVar2 == '.'" identifier == (char_literal "'.'" ' character ')) )) (compound_statement "{\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }" { (expression_statement "strtoul(apcStack_20[0] + 1,apcStack_20,0);" (call_expression "strtoul(apcStack_20[0] + 1,apcStack_20,0)" identifier (argument_list "(apcStack_20[0] + 1,apcStack_20,0)" ( (binary_expression "apcStack_20[0] + 1" (subscript_expression "apcStack_20[0]" identifier [ number_literal ]) + number_literal) , identifier , number_literal ))) ;) (expression_statement "FUN_00054230();" (call_expression "FUN_00054230()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar2 = *apcStack_20[0];" (assignment_expression "cVar2 = *apcStack_20[0]" identifier = (pointer_expression "*apcStack_20[0]" * (subscript_expression "apcStack_20[0]" identifier [ number_literal ]))) ;) })) (if_statement "if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar9 = *(char **)puVar1;\n      }" { (expression_statement "pcVar9 = *(char **)puVar1;" (assignment_expression "pcVar9 = *(char **)puVar1" identifier = (pointer_expression "*(char **)puVar1" * (cast_expression "(char **)puVar1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) }) (else_clause "else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }" else (compound_statement "{\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }" { (expression_statement "uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);" (assignment_expression "uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5)" identifier = (call_expression "dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5)" identifier (argument_list "(0,"%P: warning: bad version number in -subsystem option\n",5)" ( number_literal , (string_literal ""%P: warning: bad version number in -subsystem option\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar15);" (call_expression "FUN_00034d20(uVar15)" identifier (argument_list "(uVar15)" ( identifier ))) ;) (expression_statement "pcVar9 = *(char **)puVar1;" (assignment_expression "pcVar9 = *(char **)puVar1" identifier = (pointer_expression "*(char **)puVar1" * (cast_expression "(char **)puVar1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) }))) }))) (expression_statement "ppcStack_30 = apcStack_20;" (assignment_expression "ppcStack_30 = apcStack_20" identifier = identifier) ;) (expression_statement "uVar4 = strtoul(pcVar9,ppcStack_30,0);" (assignment_expression "uVar4 = strtoul(pcVar9,ppcStack_30,0)" identifier = (call_expression "strtoul(pcVar9,ppcStack_30,0)" identifier (argument_list "(pcVar9,ppcStack_30,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }" if (parenthesized_expression "((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000))" ( (binary_expression "(*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)" (parenthesized_expression "(*apcStack_20[0] == ':' || *apcStack_20[0] == '\0')" ( (binary_expression "*apcStack_20[0] == ':' || *apcStack_20[0] == '\0'" (binary_expression "*apcStack_20[0] == ':'" (pointer_expression "*apcStack_20[0]" * (subscript_expression "apcStack_20[0]" identifier [ number_literal ])) == (char_literal "':'" ' character ')) || (binary_expression "*apcStack_20[0] == '\0'" (pointer_expression "*apcStack_20[0]" * (subscript_expression "apcStack_20[0]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence '))) )) && (parenthesized_expression "(uVar4 < 0x10000)" ( (binary_expression "uVar4 < 0x10000" identifier < number_literal) ))) )) (compound_statement "{\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }" { (labeled_statement "code_r0x00054481:\n      DAT_001cfc74 = uVar4;" statement_identifier : (expression_statement "DAT_001cfc74 = uVar4;" (assignment_expression "DAT_001cfc74 = uVar4" identifier = identifier) ;)) (expression_statement "FUN_00054230();" (call_expression "FUN_00054230()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }" else (compound_statement "{\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }" { (expression_statement "pcVar3 = *(char **)puVar1;" (assignment_expression "pcVar3 = *(char **)puVar1" identifier = (pointer_expression "*(char **)puVar1" * (cast_expression "(char **)puVar1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar9 = "native";" (assignment_expression "pcVar9 = "native"" identifier = (string_literal ""native"" " string_content ")) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);" do (compound_statement "{\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      }" { (expression_statement "iVar5 = strncmp(pcVar3,pcVar9,__n);" (assignment_expression "iVar5 = strncmp(pcVar3,pcVar9,__n)" identifier = (call_expression "strncmp(pcVar3,pcVar9,__n)" identifier (argument_list "(pcVar3,pcVar9,__n)" ( identifier , identifier , identifier )))) ;) (if_statement "if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }" if (parenthesized_expression "((iVar5 == 0) && (pcVar9[__n] == '\0'))" ( (binary_expression "(iVar5 == 0) && (pcVar9[__n] == '\0')" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar9[__n] == '\0')" ( (binary_expression "pcVar9[__n] == '\0'" (subscript_expression "pcVar9[__n]" identifier [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }" { (expression_statement "uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);" (assignment_expression "uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8)" identifier = (pointer_expression "*(ulong *)(&UNK_001ce484 + iVar8 * 8)" * (cast_expression "(ulong *)(&UNK_001ce484 + iVar8 * 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_001ce484 + iVar8 * 8)" ( (binary_expression "&UNK_001ce484 + iVar8 * 8" (pointer_expression "&UNK_001ce484" & identifier) + (binary_expression "iVar8 * 8" identifier * number_literal)) ))))) ;) (goto_statement "goto code_r0x00054481;" goto statement_identifier ;) })) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);" (assignment_expression "pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8)" identifier = (pointer_expression "*(char **)(&UNK_001ce480 + iVar8 * 8)" * (cast_expression "(char **)(&UNK_001ce480 + iVar8 * 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&UNK_001ce480 + iVar8 * 8)" ( (binary_expression "&UNK_001ce480 + iVar8 * 8" (pointer_expression "&UNK_001ce480" & identifier) + (binary_expression "iVar8 * 8" identifier * number_literal)) ))))) ;) }) while (parenthesized_expression "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);" (assignment_expression "uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: invalid subsystem type %s\n",5)" identifier (argument_list "(0,"%F%P: invalid subsystem type %s\n",5)" ( number_literal , (string_literal ""%F%P: invalid subsystem type %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar15,pcVar3);" (call_expression "FUN_00034d20(uVar15,pcVar3)" identifier (argument_list "(uVar15,pcVar3)" ( identifier , identifier ))) ;) }))) (goto_statement "goto code_r0x00054491;" goto statement_identifier ;)) (case_statement "case 0x13a:\n    FUN_000543d0();\n    goto code_r0x00054491;" case number_literal : (expression_statement "FUN_000543d0();" (call_expression "FUN_000543d0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x00054491;" goto statement_identifier ;)) (case_statement "case 0x13c:\n    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;" case number_literal : (expression_statement "DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);" (assignment_expression "DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" identifier = (call_expression "xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" identifier (argument_list "(*(undefined4 *)PTR_optarg_001cefdc)" ( (pointer_expression "*(undefined4 *)PTR_optarg_001cefdc" * (cast_expression "(undefined4 *)PTR_optarg_001cefdc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x13d:\n    DAT_001d115c = 1;\n    break;" case number_literal : (expression_statement "DAT_001d115c = 1;" (assignment_expression "DAT_001d115c = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x13e:\n    uVar15 = 0;\n    goto code_r0x00054815;" case number_literal : (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (goto_statement "goto code_r0x00054815;" goto statement_identifier ;)) (case_statement "case 0x13f:\n    DAT_001d1158 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d1158 = 1;" (assignment_expression "DAT_001d1158 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x140:\n    DAT_001d1154 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d1154 = 1;" (assignment_expression "DAT_001d1154 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x141:\n    DAT_001d1150 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d1150 = 1;" (assignment_expression "DAT_001d1150 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x142:\n    DAT_001cfc6c = 1;\n    break;" case number_literal : (expression_statement "DAT_001cfc6c = 1;" (assignment_expression "DAT_001cfc6c = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x143:\n    DAT_001cfc6c = 0;\n    break;" case number_literal : (expression_statement "DAT_001cfc6c = 0;" (assignment_expression "DAT_001cfc6c = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x144:\n    DAT_001d114c = 1;\n    break;" case number_literal : (expression_statement "DAT_001d114c = 1;" (assignment_expression "DAT_001d114c = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x145:\n    DAT_001d1148 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d1148 = 1;" (assignment_expression "DAT_001d1148 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x146:\n    DAT_001d0df4 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d0df4 = 1;" (assignment_expression "DAT_001d0df4 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x147:\n    DAT_001d0df4 = 0;\n    break;" case number_literal : (expression_statement "DAT_001d0df4 = 0;" (assignment_expression "DAT_001d0df4 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x148:\n    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;" case number_literal : (expression_statement "DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);" (assignment_expression "DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" identifier = (call_expression "xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" identifier (argument_list "(*(undefined4 *)PTR_optarg_001cefdc)" ( (pointer_expression "*(undefined4 *)PTR_optarg_001cefdc" * (cast_expression "(undefined4 *)PTR_optarg_001cefdc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x149:\n    DAT_001d02b8 = 0;\n    break;" case number_literal : (expression_statement "DAT_001d02b8 = 0;" (assignment_expression "DAT_001d02b8 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x14a:\n    DAT_001d1448 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d1448 = 1;" (assignment_expression "DAT_001d1448 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x14b:\n    DAT_001d1448 = 0;\n    break;" case number_literal : (expression_statement "DAT_001d1448 = 0;" (assignment_expression "DAT_001d1448 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x14c:\n    DAT_001d1144 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d1144 = 1;" (assignment_expression "DAT_001d1144 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x14d:\n    uVar15 = 1;\n    goto code_r0x00054815;" case number_literal : (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" identifier = number_literal) ;) (goto_statement "goto code_r0x00054815;" goto statement_identifier ;)) (case_statement "case 0x14e:" case number_literal :) (case_statement "case 0x150:\n    DAT_001d144c = 2;\n    break;" case number_literal : (expression_statement "DAT_001d144c = 2;" (assignment_expression "DAT_001d144c = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x14f:\n    DAT_001d144c = 0;\n    break;" case number_literal : (expression_statement "DAT_001d144c = 0;" (assignment_expression "DAT_001d144c = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x151:\n    uVar15 = 2;\ncode_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);\n    break;" case number_literal : (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;) (labeled_statement "code_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);" statement_identifier : (expression_statement "FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);" (call_expression "FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15)" identifier (argument_list "(*(undefined4 *)PTR_optarg_001cefdc,uVar15)" ( (pointer_expression "*(undefined4 *)PTR_optarg_001cefdc" * (cast_expression "(undefined4 *)PTR_optarg_001cefdc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , identifier ))) ;)) (break_statement "break;" break ;)) (case_statement "case 0x152:\n    DAT_001d1140 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d1140 = 1;" (assignment_expression "DAT_001d1140 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x153:\n    DAT_001d02b0 = 0;\n    break;" case number_literal : (expression_statement "DAT_001d02b0 = 0;" (assignment_expression "DAT_001d02b0 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x154:\n    DAT_001d02b0 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d02b0 = 1;" (assignment_expression "DAT_001d02b0 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x155:\n    DAT_001d02b4 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d02b4 = 1;" (assignment_expression "DAT_001d02b4 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x156:\n    DAT_001d02b4 = 0;\n    break;" case number_literal : (expression_statement "DAT_001d02b4 = 0;" (assignment_expression "DAT_001d02b4 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x157:\n    uRam001d0e00 = uRam001d0e00 | 0x20;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x20;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x20" identifier = (binary_expression "uRam001d0e00 | 0x20" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x158:\n    uRam001d0e00 = uRam001d0e00 | 0x40;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x40;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x40" identifier = (binary_expression "uRam001d0e00 | 0x40" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x159:\n    uRam001d0e00 = uRam001d0e00 | 0x80;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x80;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x80" identifier = (binary_expression "uRam001d0e00 | 0x80" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15a:\n    uRam001d0e00 = uRam001d0e00 | 0x100;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x100;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x100" identifier = (binary_expression "uRam001d0e00 | 0x100" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15b:\n    uRam001d0e00 = uRam001d0e00 | 0x200;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x200;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x200" identifier = (binary_expression "uRam001d0e00 | 0x200" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15c:\n    uRam001d0e00 = uRam001d0e00 | 0x400;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x400;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x400" identifier = (binary_expression "uRam001d0e00 | 0x400" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15d:\n    uRam001d0e00 = uRam001d0e00 | 0x800;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x800;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x800" identifier = (binary_expression "uRam001d0e00 | 0x800" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15e:\n    uRam001d0e00 = uRam001d0e00 | 0x2000;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x2000;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x2000" identifier = (binary_expression "uRam001d0e00 | 0x2000" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15f:\n    DAT_001cfc70 = 1;\n    break;" case number_literal : (expression_statement "DAT_001cfc70 = 1;" (assignment_expression "DAT_001cfc70 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x160:\n    DAT_001cfc70 = 0;\n    break;" case number_literal : (expression_statement "DAT_001cfc70 = 0;" (assignment_expression "DAT_001cfc70 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x161:\n    uRam001d0e00 = uRam001d0e00 | 0x8000;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x8000;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x8000" identifier = (binary_expression "uRam001d0e00 | 0x8000" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x162:\n    if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }\n    pbVar7 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar7 == (byte *)0x0;\n    if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }\n    DAT_001d0dfc = (void *)xstrdup(pbVar7);\n    break;" case number_literal : (if_statement "if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }" if (parenthesized_expression "(DAT_001d0dfc != (void *)0x0)" ( (binary_expression "DAT_001d0dfc != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }" { (expression_statement "free(DAT_001d0dfc);" (call_expression "free(DAT_001d0dfc)" identifier (argument_list "(DAT_001d0dfc)" ( identifier ))) ;) (expression_statement "DAT_001d0dfc = (void *)0x0;" (assignment_expression "DAT_001d0dfc = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "pbVar7 = *(byte **)PTR_optarg_001cefdc;" (assignment_expression "pbVar7 = *(byte **)PTR_optarg_001cefdc" identifier = (pointer_expression "*(byte **)PTR_optarg_001cefdc" * (cast_expression "(byte **)PTR_optarg_001cefdc" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar13 = pbVar7 == (byte *)0x0;" (assignment_expression "bVar13 = pbVar7 == (byte *)0x0" identifier = (binary_expression "pbVar7 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }" { (expression_statement "pbVar7 = &DAT_0007e2c4;" (assignment_expression "pbVar7 = &DAT_0007e2c4" identifier = (pointer_expression "&DAT_0007e2c4" & identifier)) ;) (expression_statement "*(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;" (assignment_expression "*(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4" (pointer_expression "*(undefined1 **)PTR_optarg_001cefdc" * (cast_expression "(undefined1 **)PTR_optarg_001cefdc" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (pointer_expression "&DAT_0007e2c4" & identifier)) ;) }) (else_clause "else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }" else (compound_statement "{\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }" { (expression_statement "iVar8 = 5;" (assignment_expression "iVar8 = 5" identifier = number_literal) ;) (expression_statement "pbVar10 = pbVar7;" (assignment_expression "pbVar10 = pbVar7" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)0x79bf4;" (assignment_expression "pbVar11 = (byte *)0x79bf4" identifier = (cast_expression "(byte *)0x79bf4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);" do (compound_statement "{\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar10 < *pbVar11;" (assignment_expression "bVar12 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar13 = *pbVar10 == *pbVar11;" (assignment_expression "bVar13 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;" if (parenthesized_expression "((!bVar12 && !bVar13) == bVar12)" ( (binary_expression "(!bVar12 && !bVar13) == bVar12" (parenthesized_expression "(!bVar12 && !bVar13)" ( (binary_expression "!bVar12 && !bVar13" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) (goto_statement "goto code_r0x00054491;" goto statement_identifier ;)) }))) (expression_statement "DAT_001d0dfc = (void *)xstrdup(pbVar7);" (assignment_expression "DAT_001d0dfc = (void *)xstrdup(pbVar7)" identifier = (cast_expression "(void *)xstrdup(pbVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pbVar7)" identifier (argument_list "(pbVar7)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    return 0;" default : (return_statement "return 0;" return number_literal ;)) })) (expression_statement "FUN_00054230();" (call_expression "FUN_00054230()" identifier (argument_list "()" ( ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nbfd_boolean gldi386pep_handle_option(int optc)\n\n{\n  undefined4 uVar1;\n  undefined *puVar2;\n  char cVar3;\n  char *pcVar4;\n  char *__nptr;\n  ulong uVar5;\n  int iVar6;\n  char *pcVar7;\n  byte *pbVar8;\n  int iVar9;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char **ppcVar15;\n  exclude_type type;\n  char **__endptr;\n  bfd_vma in_stack_ffffffc4;\n  char **local_30;\n  char *end;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x54449;\n  is_underscoring();\n  puVar2 = PTR_optarg_001cefdc;\n  switch(optc) {\n  case 0x12d:\n    link_info.base_file = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if ((FILE *)link_info.base_file == (FILE *)0x0) {\n      uVar1 = *(undefined4 *)puVar2;\n      pcVar7 = (char *)dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      einfo(pcVar7,uVar1);\n      break;\n    }\n  case 0x13b:\n_L606:\n    break;\n  case 0x12e:\n    set_pep_name("__dll__",in_stack_ffffffc4);\n    break;\n  case 0x12f:\n    set_pep_value("__file_alignment__");\n    break;\n  case 0x130:\n    set_pep_value("__image_base__");\n    break;\n  case 0x131:\n    set_pep_value("__major_image_version__");\n    break;\n  case 0x132:\n    set_pep_value("__major_os_version__");\n    break;\n  case 0x133:\n    set_pep_value("__major_subsystem_version__");\n    break;\n  case 0x134:\n    set_pep_value("__minor_image_version__");\n    break;\n  case 0x135:\n    set_pep_value("__minor_os_version__");\n    break;\n  case 0x136:\n    set_pep_value("__minor_subsystem_version__");\n    break;\n  case 0x137:\n    set_pep_value("__section_alignment__");\n    break;\n  case 0x138:\n    set_pep_stack_heap("__size_of_stack_reserve__","__size_of_stack_commit__");\n    break;\n  case 0x139:\n    pcVar7 = *(char **)PTR_optarg_001cefdc;\n    pcVar4 = strchr(pcVar7,0x3a);\n    if (pcVar4 == (char *)0x0) {\n      __n = strlen(pcVar7);\n    }\n    else {\n      __nptr = pcVar4 + 1;\n      __n = (int)pcVar4 - (int)pcVar7;\n      __endptr = &end;\n      ppcVar15 = __endptr;\n      strtoul(__nptr,__endptr,0);\n      set_pep_name("__major_subsystem_version__",CONCAT44(ppcVar15,__nptr));\n      cVar3 = *end;\n      if (cVar3 == '.') {\n        pcVar7 = end + 1;\n        strtoul(pcVar7,__endptr,0);\n        set_pep_name("__minor_subsystem_version__",CONCAT44(__endptr,pcVar7));\n        cVar3 = *end;\n      }\n      if (cVar3 == '\0') {\n        pcVar7 = *(char **)puVar2;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        einfo(pcVar7);\n        pcVar7 = *(char **)puVar2;\n      }\n    }\n    local_30 = &end;\n    uVar5 = strtoul(pcVar7,local_30,0);\n    if ((*end == ':' || *end == '\0') && (uVar5 < 0x10000)) {\nLAB_00054481:\n      pep_subsystem = uVar5;\n      set_pep_name("__subsystem__",in_stack_ffffffc4);\n    }\n    else {\n      pcVar4 = *(char **)puVar2;\n      pcVar7 = "native";\n      iVar9 = 0;\n      do {\n        iVar6 = strncmp(pcVar4,pcVar7,__n);\n        if ((iVar6 == 0) && (pcVar7[__n] == '\0')) {\n          uVar5 = *(int *)(v_12444 + iVar9 * 8 + 4);\n          goto LAB_00054481;\n        }\n        iVar9 = iVar9 + 1;\n        pcVar7 = *(char **)(v_12444 + iVar9 * 8);\n      } while (pcVar7 != (char *)0x0);\n      pcVar7 = (char *)dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      einfo(pcVar7,pcVar4);\n    }\n    goto _L606;\n  case 0x13a:\n    set_pep_stack_heap("__size_of_heap_reserve__","__size_of_heap_commit__");\n    goto _L606;\n  case 0x13c:\n    pep_out_def_filename = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    pep_dll_export_everything = 1;\n    break;\n  case 0x13e:\n    type = EXCLUDESYMS;\n    goto LAB_00054815;\n  case 0x13f:\n    pep_dll_exclude_all_symbols = 1;\n    break;\n  case 0x140:\n    pep_dll_kill_ats = 1;\n    break;\n  case 0x141:\n    pep_dll_stdcall_aliases = 1;\n    break;\n  case 0x142:\n    pep_enable_stdcall_fixup = 1;\n    break;\n  case 0x143:\n    pep_enable_stdcall_fixup = 0;\n    break;\n  case 0x144:\n    pep_dll_warn_dup_exports = 1;\n    break;\n  case 0x145:\n    pep_dll_compat_implib = 1;\n    break;\n  case 0x146:\n    pep_enable_auto_image_base = 1;\n    break;\n  case 0x147:\n    pep_enable_auto_image_base = 0;\n    break;\n  case 0x148:\n    pep_dll_search_prefix = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    pep_dll_do_default_excludes = 0;\n    break;\n  case 0x14a:\n    link_info.pei386_auto_import = 1;\n    break;\n  case 0x14b:\n    link_info.pei386_auto_import = 0;\n    break;\n  case 0x14c:\n    pep_dll_extra_pe_debug = 1;\n    break;\n  case 0x14d:\n    type = EXCLUDELIBS;\n    goto LAB_00054815;\n  case 0x14e:\n  case 0x150:\n    link_info.pei386_runtime_pseudo_reloc = 2;\n    break;\n  case 0x14f:\n    link_info.pei386_runtime_pseudo_reloc = 0;\n    break;\n  case 0x151:\n    type = EXCLUDEFORIMPLIB;\nLAB_00054815:\n    pep_dll_add_excludes(*(char **)PTR_optarg_001cefdc,type);\n    break;\n  case 0x152:\n    pep_use_nul_prefixed_import_tables = 1;\n    break;\n  case 0x153:\n    pep_leading_underscore = 0;\n    break;\n  case 0x154:\n    pep_leading_underscore = 1;\n    break;\n  case 0x155:\n    pep_use_coff_long_section_names = 1;\n    break;\n  case 0x156:\n    pep_use_coff_long_section_names = 0;\n    break;\n  case 0x157:\n    pe_dll_characteristics = pe_dll_characteristics | 0x20;\n    break;\n  case 0x158:\n    pe_dll_characteristics = pe_dll_characteristics | 0x40;\n    break;\n  case 0x159:\n    pe_dll_characteristics = pe_dll_characteristics | 0x80;\n    break;\n  case 0x15a:\n    pe_dll_characteristics = pe_dll_characteristics | 0x100;\n    break;\n  case 0x15b:\n    pe_dll_characteristics = pe_dll_characteristics | 0x200;\n    break;\n  case 0x15c:\n    pe_dll_characteristics = pe_dll_characteristics | 0x400;\n    break;\n  case 0x15d:\n    pe_dll_characteristics = pe_dll_characteristics | 0x800;\n    break;\n  case 0x15e:\n    pe_dll_characteristics = pe_dll_characteristics | 0x2000;\n    break;\n  case 0x15f:\n    insert_timestamp = 1;\n    break;\n  case 0x160:\n    insert_timestamp = 0;\n    break;\n  case 0x161:\n    pe_dll_characteristics = pe_dll_characteristics | 0x8000;\n    break;\n  case 0x162:\n    if (emit_build_id != (char *)0x0) {\n      free(emit_build_id);\n      emit_build_id = (char *)0x0;\n    }\n    pbVar8 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar8 == (byte *)0x0;\n    if (bVar13) {\n      pbVar8 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar9 = 5;\n      pbVar10 = pbVar8;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto _L606;\n    }\n    emit_build_id = (char *)xstrdup(pbVar8);\n    break;\n  default:\n    return 0;\n  }\n  set_pep_name("__dll_characteristics__",in_stack_ffffffc4);\n  return 1;\n}\n\n" comment comment (function_definition "bfd_boolean gldi386pep_handle_option(int optc)\n\n{\n  undefined4 uVar1;\n  undefined *puVar2;\n  char cVar3;\n  char *pcVar4;\n  char *__nptr;\n  ulong uVar5;\n  int iVar6;\n  char *pcVar7;\n  byte *pbVar8;\n  int iVar9;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char **ppcVar15;\n  exclude_type type;\n  char **__endptr;\n  bfd_vma in_stack_ffffffc4;\n  char **local_30;\n  char *end;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x54449;\n  is_underscoring();\n  puVar2 = PTR_optarg_001cefdc;\n  switch(optc) {\n  case 0x12d:\n    link_info.base_file = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if ((FILE *)link_info.base_file == (FILE *)0x0) {\n      uVar1 = *(undefined4 *)puVar2;\n      pcVar7 = (char *)dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      einfo(pcVar7,uVar1);\n      break;\n    }\n  case 0x13b:\n_L606:\n    break;\n  case 0x12e:\n    set_pep_name("__dll__",in_stack_ffffffc4);\n    break;\n  case 0x12f:\n    set_pep_value("__file_alignment__");\n    break;\n  case 0x130:\n    set_pep_value("__image_base__");\n    break;\n  case 0x131:\n    set_pep_value("__major_image_version__");\n    break;\n  case 0x132:\n    set_pep_value("__major_os_version__");\n    break;\n  case 0x133:\n    set_pep_value("__major_subsystem_version__");\n    break;\n  case 0x134:\n    set_pep_value("__minor_image_version__");\n    break;\n  case 0x135:\n    set_pep_value("__minor_os_version__");\n    break;\n  case 0x136:\n    set_pep_value("__minor_subsystem_version__");\n    break;\n  case 0x137:\n    set_pep_value("__section_alignment__");\n    break;\n  case 0x138:\n    set_pep_stack_heap("__size_of_stack_reserve__","__size_of_stack_commit__");\n    break;\n  case 0x139:\n    pcVar7 = *(char **)PTR_optarg_001cefdc;\n    pcVar4 = strchr(pcVar7,0x3a);\n    if (pcVar4 == (char *)0x0) {\n      __n = strlen(pcVar7);\n    }\n    else {\n      __nptr = pcVar4 + 1;\n      __n = (int)pcVar4 - (int)pcVar7;\n      __endptr = &end;\n      ppcVar15 = __endptr;\n      strtoul(__nptr,__endptr,0);\n      set_pep_name("__major_subsystem_version__",CONCAT44(ppcVar15,__nptr));\n      cVar3 = *end;\n      if (cVar3 == '.') {\n        pcVar7 = end + 1;\n        strtoul(pcVar7,__endptr,0);\n        set_pep_name("__minor_subsystem_version__",CONCAT44(__endptr,pcVar7));\n        cVar3 = *end;\n      }\n      if (cVar3 == '\0') {\n        pcVar7 = *(char **)puVar2;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        einfo(pcVar7);\n        pcVar7 = *(char **)puVar2;\n      }\n    }\n    local_30 = &end;\n    uVar5 = strtoul(pcVar7,local_30,0);\n    if ((*end == ':' || *end == '\0') && (uVar5 < 0x10000)) {\nLAB_00054481:\n      pep_subsystem = uVar5;\n      set_pep_name("__subsystem__",in_stack_ffffffc4);\n    }\n    else {\n      pcVar4 = *(char **)puVar2;\n      pcVar7 = "native";\n      iVar9 = 0;\n      do {\n        iVar6 = strncmp(pcVar4,pcVar7,__n);\n        if ((iVar6 == 0) && (pcVar7[__n] == '\0')) {\n          uVar5 = *(int *)(v_12444 + iVar9 * 8 + 4);\n          goto LAB_00054481;\n        }\n        iVar9 = iVar9 + 1;\n        pcVar7 = *(char **)(v_12444 + iVar9 * 8);\n      } while (pcVar7 != (char *)0x0);\n      pcVar7 = (char *)dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      einfo(pcVar7,pcVar4);\n    }\n    goto _L606;\n  case 0x13a:\n    set_pep_stack_heap("__size_of_heap_reserve__","__size_of_heap_commit__");\n    goto _L606;\n  case 0x13c:\n    pep_out_def_filename = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    pep_dll_export_everything = 1;\n    break;\n  case 0x13e:\n    type = EXCLUDESYMS;\n    goto LAB_00054815;\n  case 0x13f:\n    pep_dll_exclude_all_symbols = 1;\n    break;\n  case 0x140:\n    pep_dll_kill_ats = 1;\n    break;\n  case 0x141:\n    pep_dll_stdcall_aliases = 1;\n    break;\n  case 0x142:\n    pep_enable_stdcall_fixup = 1;\n    break;\n  case 0x143:\n    pep_enable_stdcall_fixup = 0;\n    break;\n  case 0x144:\n    pep_dll_warn_dup_exports = 1;\n    break;\n  case 0x145:\n    pep_dll_compat_implib = 1;\n    break;\n  case 0x146:\n    pep_enable_auto_image_base = 1;\n    break;\n  case 0x147:\n    pep_enable_auto_image_base = 0;\n    break;\n  case 0x148:\n    pep_dll_search_prefix = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    pep_dll_do_default_excludes = 0;\n    break;\n  case 0x14a:\n    link_info.pei386_auto_import = 1;\n    break;\n  case 0x14b:\n    link_info.pei386_auto_import = 0;\n    break;\n  case 0x14c:\n    pep_dll_extra_pe_debug = 1;\n    break;\n  case 0x14d:\n    type = EXCLUDELIBS;\n    goto LAB_00054815;\n  case 0x14e:\n  case 0x150:\n    link_info.pei386_runtime_pseudo_reloc = 2;\n    break;\n  case 0x14f:\n    link_info.pei386_runtime_pseudo_reloc = 0;\n    break;\n  case 0x151:\n    type = EXCLUDEFORIMPLIB;\nLAB_00054815:\n    pep_dll_add_excludes(*(char **)PTR_optarg_001cefdc,type);\n    break;\n  case 0x152:\n    pep_use_nul_prefixed_import_tables = 1;\n    break;\n  case 0x153:\n    pep_leading_underscore = 0;\n    break;\n  case 0x154:\n    pep_leading_underscore = 1;\n    break;\n  case 0x155:\n    pep_use_coff_long_section_names = 1;\n    break;\n  case 0x156:\n    pep_use_coff_long_section_names = 0;\n    break;\n  case 0x157:\n    pe_dll_characteristics = pe_dll_characteristics | 0x20;\n    break;\n  case 0x158:\n    pe_dll_characteristics = pe_dll_characteristics | 0x40;\n    break;\n  case 0x159:\n    pe_dll_characteristics = pe_dll_characteristics | 0x80;\n    break;\n  case 0x15a:\n    pe_dll_characteristics = pe_dll_characteristics | 0x100;\n    break;\n  case 0x15b:\n    pe_dll_characteristics = pe_dll_characteristics | 0x200;\n    break;\n  case 0x15c:\n    pe_dll_characteristics = pe_dll_characteristics | 0x400;\n    break;\n  case 0x15d:\n    pe_dll_characteristics = pe_dll_characteristics | 0x800;\n    break;\n  case 0x15e:\n    pe_dll_characteristics = pe_dll_characteristics | 0x2000;\n    break;\n  case 0x15f:\n    insert_timestamp = 1;\n    break;\n  case 0x160:\n    insert_timestamp = 0;\n    break;\n  case 0x161:\n    pe_dll_characteristics = pe_dll_characteristics | 0x8000;\n    break;\n  case 0x162:\n    if (emit_build_id != (char *)0x0) {\n      free(emit_build_id);\n      emit_build_id = (char *)0x0;\n    }\n    pbVar8 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar8 == (byte *)0x0;\n    if (bVar13) {\n      pbVar8 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar9 = 5;\n      pbVar10 = pbVar8;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto _L606;\n    }\n    emit_build_id = (char *)xstrdup(pbVar8);\n    break;\n  default:\n    return 0;\n  }\n  set_pep_name("__dll_characteristics__",in_stack_ffffffc4);\n  return 1;\n}" type_identifier (function_declarator "gldi386pep_handle_option(int optc)" identifier (parameter_list "(int optc)" ( (parameter_declaration "int optc" primitive_type identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined *puVar2;\n  char cVar3;\n  char *pcVar4;\n  char *__nptr;\n  ulong uVar5;\n  int iVar6;\n  char *pcVar7;\n  byte *pbVar8;\n  int iVar9;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char **ppcVar15;\n  exclude_type type;\n  char **__endptr;\n  bfd_vma in_stack_ffffffc4;\n  char **local_30;\n  char *end;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x54449;\n  is_underscoring();\n  puVar2 = PTR_optarg_001cefdc;\n  switch(optc) {\n  case 0x12d:\n    link_info.base_file = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if ((FILE *)link_info.base_file == (FILE *)0x0) {\n      uVar1 = *(undefined4 *)puVar2;\n      pcVar7 = (char *)dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      einfo(pcVar7,uVar1);\n      break;\n    }\n  case 0x13b:\n_L606:\n    break;\n  case 0x12e:\n    set_pep_name("__dll__",in_stack_ffffffc4);\n    break;\n  case 0x12f:\n    set_pep_value("__file_alignment__");\n    break;\n  case 0x130:\n    set_pep_value("__image_base__");\n    break;\n  case 0x131:\n    set_pep_value("__major_image_version__");\n    break;\n  case 0x132:\n    set_pep_value("__major_os_version__");\n    break;\n  case 0x133:\n    set_pep_value("__major_subsystem_version__");\n    break;\n  case 0x134:\n    set_pep_value("__minor_image_version__");\n    break;\n  case 0x135:\n    set_pep_value("__minor_os_version__");\n    break;\n  case 0x136:\n    set_pep_value("__minor_subsystem_version__");\n    break;\n  case 0x137:\n    set_pep_value("__section_alignment__");\n    break;\n  case 0x138:\n    set_pep_stack_heap("__size_of_stack_reserve__","__size_of_stack_commit__");\n    break;\n  case 0x139:\n    pcVar7 = *(char **)PTR_optarg_001cefdc;\n    pcVar4 = strchr(pcVar7,0x3a);\n    if (pcVar4 == (char *)0x0) {\n      __n = strlen(pcVar7);\n    }\n    else {\n      __nptr = pcVar4 + 1;\n      __n = (int)pcVar4 - (int)pcVar7;\n      __endptr = &end;\n      ppcVar15 = __endptr;\n      strtoul(__nptr,__endptr,0);\n      set_pep_name("__major_subsystem_version__",CONCAT44(ppcVar15,__nptr));\n      cVar3 = *end;\n      if (cVar3 == '.') {\n        pcVar7 = end + 1;\n        strtoul(pcVar7,__endptr,0);\n        set_pep_name("__minor_subsystem_version__",CONCAT44(__endptr,pcVar7));\n        cVar3 = *end;\n      }\n      if (cVar3 == '\0') {\n        pcVar7 = *(char **)puVar2;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        einfo(pcVar7);\n        pcVar7 = *(char **)puVar2;\n      }\n    }\n    local_30 = &end;\n    uVar5 = strtoul(pcVar7,local_30,0);\n    if ((*end == ':' || *end == '\0') && (uVar5 < 0x10000)) {\nLAB_00054481:\n      pep_subsystem = uVar5;\n      set_pep_name("__subsystem__",in_stack_ffffffc4);\n    }\n    else {\n      pcVar4 = *(char **)puVar2;\n      pcVar7 = "native";\n      iVar9 = 0;\n      do {\n        iVar6 = strncmp(pcVar4,pcVar7,__n);\n        if ((iVar6 == 0) && (pcVar7[__n] == '\0')) {\n          uVar5 = *(int *)(v_12444 + iVar9 * 8 + 4);\n          goto LAB_00054481;\n        }\n        iVar9 = iVar9 + 1;\n        pcVar7 = *(char **)(v_12444 + iVar9 * 8);\n      } while (pcVar7 != (char *)0x0);\n      pcVar7 = (char *)dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      einfo(pcVar7,pcVar4);\n    }\n    goto _L606;\n  case 0x13a:\n    set_pep_stack_heap("__size_of_heap_reserve__","__size_of_heap_commit__");\n    goto _L606;\n  case 0x13c:\n    pep_out_def_filename = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    pep_dll_export_everything = 1;\n    break;\n  case 0x13e:\n    type = EXCLUDESYMS;\n    goto LAB_00054815;\n  case 0x13f:\n    pep_dll_exclude_all_symbols = 1;\n    break;\n  case 0x140:\n    pep_dll_kill_ats = 1;\n    break;\n  case 0x141:\n    pep_dll_stdcall_aliases = 1;\n    break;\n  case 0x142:\n    pep_enable_stdcall_fixup = 1;\n    break;\n  case 0x143:\n    pep_enable_stdcall_fixup = 0;\n    break;\n  case 0x144:\n    pep_dll_warn_dup_exports = 1;\n    break;\n  case 0x145:\n    pep_dll_compat_implib = 1;\n    break;\n  case 0x146:\n    pep_enable_auto_image_base = 1;\n    break;\n  case 0x147:\n    pep_enable_auto_image_base = 0;\n    break;\n  case 0x148:\n    pep_dll_search_prefix = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    pep_dll_do_default_excludes = 0;\n    break;\n  case 0x14a:\n    link_info.pei386_auto_import = 1;\n    break;\n  case 0x14b:\n    link_info.pei386_auto_import = 0;\n    break;\n  case 0x14c:\n    pep_dll_extra_pe_debug = 1;\n    break;\n  case 0x14d:\n    type = EXCLUDELIBS;\n    goto LAB_00054815;\n  case 0x14e:\n  case 0x150:\n    link_info.pei386_runtime_pseudo_reloc = 2;\n    break;\n  case 0x14f:\n    link_info.pei386_runtime_pseudo_reloc = 0;\n    break;\n  case 0x151:\n    type = EXCLUDEFORIMPLIB;\nLAB_00054815:\n    pep_dll_add_excludes(*(char **)PTR_optarg_001cefdc,type);\n    break;\n  case 0x152:\n    pep_use_nul_prefixed_import_tables = 1;\n    break;\n  case 0x153:\n    pep_leading_underscore = 0;\n    break;\n  case 0x154:\n    pep_leading_underscore = 1;\n    break;\n  case 0x155:\n    pep_use_coff_long_section_names = 1;\n    break;\n  case 0x156:\n    pep_use_coff_long_section_names = 0;\n    break;\n  case 0x157:\n    pe_dll_characteristics = pe_dll_characteristics | 0x20;\n    break;\n  case 0x158:\n    pe_dll_characteristics = pe_dll_characteristics | 0x40;\n    break;\n  case 0x159:\n    pe_dll_characteristics = pe_dll_characteristics | 0x80;\n    break;\n  case 0x15a:\n    pe_dll_characteristics = pe_dll_characteristics | 0x100;\n    break;\n  case 0x15b:\n    pe_dll_characteristics = pe_dll_characteristics | 0x200;\n    break;\n  case 0x15c:\n    pe_dll_characteristics = pe_dll_characteristics | 0x400;\n    break;\n  case 0x15d:\n    pe_dll_characteristics = pe_dll_characteristics | 0x800;\n    break;\n  case 0x15e:\n    pe_dll_characteristics = pe_dll_characteristics | 0x2000;\n    break;\n  case 0x15f:\n    insert_timestamp = 1;\n    break;\n  case 0x160:\n    insert_timestamp = 0;\n    break;\n  case 0x161:\n    pe_dll_characteristics = pe_dll_characteristics | 0x8000;\n    break;\n  case 0x162:\n    if (emit_build_id != (char *)0x0) {\n      free(emit_build_id);\n      emit_build_id = (char *)0x0;\n    }\n    pbVar8 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar8 == (byte *)0x0;\n    if (bVar13) {\n      pbVar8 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar9 = 5;\n      pbVar10 = pbVar8;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto _L606;\n    }\n    emit_build_id = (char *)xstrdup(pbVar8);\n    break;\n  default:\n    return 0;\n  }\n  set_pep_name("__dll_characteristics__",in_stack_ffffffc4);\n  return 1;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *__nptr;" primitive_type (pointer_declarator "*__nptr" * identifier) ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "char **ppcVar15;" primitive_type (pointer_declarator "**ppcVar15" * (pointer_declarator "*ppcVar15" * identifier)) ;) (declaration "exclude_type type;" type_identifier identifier ;) (declaration "char **__endptr;" primitive_type (pointer_declarator "**__endptr" * (pointer_declarator "*__endptr" * identifier)) ;) (declaration "bfd_vma in_stack_ffffffc4;" type_identifier identifier ;) (declaration "char **local_30;" primitive_type (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)) ;) (declaration "char *end;" primitive_type (pointer_declarator "*end" * identifier) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x54449;" (assignment_expression "uStack_14 = 0x54449" identifier = number_literal) ;) (expression_statement "is_underscoring();" (call_expression "is_underscoring()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar2 = PTR_optarg_001cefdc;" (assignment_expression "puVar2 = PTR_optarg_001cefdc" identifier = identifier) ;) (switch_statement "switch(optc) {\n  case 0x12d:\n    link_info.base_file = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if ((FILE *)link_info.base_file == (FILE *)0x0) {\n      uVar1 = *(undefined4 *)puVar2;\n      pcVar7 = (char *)dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      einfo(pcVar7,uVar1);\n      break;\n    }\n  case 0x13b:\n_L606:\n    break;\n  case 0x12e:\n    set_pep_name("__dll__",in_stack_ffffffc4);\n    break;\n  case 0x12f:\n    set_pep_value("__file_alignment__");\n    break;\n  case 0x130:\n    set_pep_value("__image_base__");\n    break;\n  case 0x131:\n    set_pep_value("__major_image_version__");\n    break;\n  case 0x132:\n    set_pep_value("__major_os_version__");\n    break;\n  case 0x133:\n    set_pep_value("__major_subsystem_version__");\n    break;\n  case 0x134:\n    set_pep_value("__minor_image_version__");\n    break;\n  case 0x135:\n    set_pep_value("__minor_os_version__");\n    break;\n  case 0x136:\n    set_pep_value("__minor_subsystem_version__");\n    break;\n  case 0x137:\n    set_pep_value("__section_alignment__");\n    break;\n  case 0x138:\n    set_pep_stack_heap("__size_of_stack_reserve__","__size_of_stack_commit__");\n    break;\n  case 0x139:\n    pcVar7 = *(char **)PTR_optarg_001cefdc;\n    pcVar4 = strchr(pcVar7,0x3a);\n    if (pcVar4 == (char *)0x0) {\n      __n = strlen(pcVar7);\n    }\n    else {\n      __nptr = pcVar4 + 1;\n      __n = (int)pcVar4 - (int)pcVar7;\n      __endptr = &end;\n      ppcVar15 = __endptr;\n      strtoul(__nptr,__endptr,0);\n      set_pep_name("__major_subsystem_version__",CONCAT44(ppcVar15,__nptr));\n      cVar3 = *end;\n      if (cVar3 == '.') {\n        pcVar7 = end + 1;\n        strtoul(pcVar7,__endptr,0);\n        set_pep_name("__minor_subsystem_version__",CONCAT44(__endptr,pcVar7));\n        cVar3 = *end;\n      }\n      if (cVar3 == '\0') {\n        pcVar7 = *(char **)puVar2;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        einfo(pcVar7);\n        pcVar7 = *(char **)puVar2;\n      }\n    }\n    local_30 = &end;\n    uVar5 = strtoul(pcVar7,local_30,0);\n    if ((*end == ':' || *end == '\0') && (uVar5 < 0x10000)) {\nLAB_00054481:\n      pep_subsystem = uVar5;\n      set_pep_name("__subsystem__",in_stack_ffffffc4);\n    }\n    else {\n      pcVar4 = *(char **)puVar2;\n      pcVar7 = "native";\n      iVar9 = 0;\n      do {\n        iVar6 = strncmp(pcVar4,pcVar7,__n);\n        if ((iVar6 == 0) && (pcVar7[__n] == '\0')) {\n          uVar5 = *(int *)(v_12444 + iVar9 * 8 + 4);\n          goto LAB_00054481;\n        }\n        iVar9 = iVar9 + 1;\n        pcVar7 = *(char **)(v_12444 + iVar9 * 8);\n      } while (pcVar7 != (char *)0x0);\n      pcVar7 = (char *)dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      einfo(pcVar7,pcVar4);\n    }\n    goto _L606;\n  case 0x13a:\n    set_pep_stack_heap("__size_of_heap_reserve__","__size_of_heap_commit__");\n    goto _L606;\n  case 0x13c:\n    pep_out_def_filename = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    pep_dll_export_everything = 1;\n    break;\n  case 0x13e:\n    type = EXCLUDESYMS;\n    goto LAB_00054815;\n  case 0x13f:\n    pep_dll_exclude_all_symbols = 1;\n    break;\n  case 0x140:\n    pep_dll_kill_ats = 1;\n    break;\n  case 0x141:\n    pep_dll_stdcall_aliases = 1;\n    break;\n  case 0x142:\n    pep_enable_stdcall_fixup = 1;\n    break;\n  case 0x143:\n    pep_enable_stdcall_fixup = 0;\n    break;\n  case 0x144:\n    pep_dll_warn_dup_exports = 1;\n    break;\n  case 0x145:\n    pep_dll_compat_implib = 1;\n    break;\n  case 0x146:\n    pep_enable_auto_image_base = 1;\n    break;\n  case 0x147:\n    pep_enable_auto_image_base = 0;\n    break;\n  case 0x148:\n    pep_dll_search_prefix = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    pep_dll_do_default_excludes = 0;\n    break;\n  case 0x14a:\n    link_info.pei386_auto_import = 1;\n    break;\n  case 0x14b:\n    link_info.pei386_auto_import = 0;\n    break;\n  case 0x14c:\n    pep_dll_extra_pe_debug = 1;\n    break;\n  case 0x14d:\n    type = EXCLUDELIBS;\n    goto LAB_00054815;\n  case 0x14e:\n  case 0x150:\n    link_info.pei386_runtime_pseudo_reloc = 2;\n    break;\n  case 0x14f:\n    link_info.pei386_runtime_pseudo_reloc = 0;\n    break;\n  case 0x151:\n    type = EXCLUDEFORIMPLIB;\nLAB_00054815:\n    pep_dll_add_excludes(*(char **)PTR_optarg_001cefdc,type);\n    break;\n  case 0x152:\n    pep_use_nul_prefixed_import_tables = 1;\n    break;\n  case 0x153:\n    pep_leading_underscore = 0;\n    break;\n  case 0x154:\n    pep_leading_underscore = 1;\n    break;\n  case 0x155:\n    pep_use_coff_long_section_names = 1;\n    break;\n  case 0x156:\n    pep_use_coff_long_section_names = 0;\n    break;\n  case 0x157:\n    pe_dll_characteristics = pe_dll_characteristics | 0x20;\n    break;\n  case 0x158:\n    pe_dll_characteristics = pe_dll_characteristics | 0x40;\n    break;\n  case 0x159:\n    pe_dll_characteristics = pe_dll_characteristics | 0x80;\n    break;\n  case 0x15a:\n    pe_dll_characteristics = pe_dll_characteristics | 0x100;\n    break;\n  case 0x15b:\n    pe_dll_characteristics = pe_dll_characteristics | 0x200;\n    break;\n  case 0x15c:\n    pe_dll_characteristics = pe_dll_characteristics | 0x400;\n    break;\n  case 0x15d:\n    pe_dll_characteristics = pe_dll_characteristics | 0x800;\n    break;\n  case 0x15e:\n    pe_dll_characteristics = pe_dll_characteristics | 0x2000;\n    break;\n  case 0x15f:\n    insert_timestamp = 1;\n    break;\n  case 0x160:\n    insert_timestamp = 0;\n    break;\n  case 0x161:\n    pe_dll_characteristics = pe_dll_characteristics | 0x8000;\n    break;\n  case 0x162:\n    if (emit_build_id != (char *)0x0) {\n      free(emit_build_id);\n      emit_build_id = (char *)0x0;\n    }\n    pbVar8 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar8 == (byte *)0x0;\n    if (bVar13) {\n      pbVar8 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar9 = 5;\n      pbVar10 = pbVar8;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto _L606;\n    }\n    emit_build_id = (char *)xstrdup(pbVar8);\n    break;\n  default:\n    return 0;\n  }" switch (parenthesized_expression "(optc)" ( identifier )) (compound_statement "{\n  case 0x12d:\n    link_info.base_file = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if ((FILE *)link_info.base_file == (FILE *)0x0) {\n      uVar1 = *(undefined4 *)puVar2;\n      pcVar7 = (char *)dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      einfo(pcVar7,uVar1);\n      break;\n    }\n  case 0x13b:\n_L606:\n    break;\n  case 0x12e:\n    set_pep_name("__dll__",in_stack_ffffffc4);\n    break;\n  case 0x12f:\n    set_pep_value("__file_alignment__");\n    break;\n  case 0x130:\n    set_pep_value("__image_base__");\n    break;\n  case 0x131:\n    set_pep_value("__major_image_version__");\n    break;\n  case 0x132:\n    set_pep_value("__major_os_version__");\n    break;\n  case 0x133:\n    set_pep_value("__major_subsystem_version__");\n    break;\n  case 0x134:\n    set_pep_value("__minor_image_version__");\n    break;\n  case 0x135:\n    set_pep_value("__minor_os_version__");\n    break;\n  case 0x136:\n    set_pep_value("__minor_subsystem_version__");\n    break;\n  case 0x137:\n    set_pep_value("__section_alignment__");\n    break;\n  case 0x138:\n    set_pep_stack_heap("__size_of_stack_reserve__","__size_of_stack_commit__");\n    break;\n  case 0x139:\n    pcVar7 = *(char **)PTR_optarg_001cefdc;\n    pcVar4 = strchr(pcVar7,0x3a);\n    if (pcVar4 == (char *)0x0) {\n      __n = strlen(pcVar7);\n    }\n    else {\n      __nptr = pcVar4 + 1;\n      __n = (int)pcVar4 - (int)pcVar7;\n      __endptr = &end;\n      ppcVar15 = __endptr;\n      strtoul(__nptr,__endptr,0);\n      set_pep_name("__major_subsystem_version__",CONCAT44(ppcVar15,__nptr));\n      cVar3 = *end;\n      if (cVar3 == '.') {\n        pcVar7 = end + 1;\n        strtoul(pcVar7,__endptr,0);\n        set_pep_name("__minor_subsystem_version__",CONCAT44(__endptr,pcVar7));\n        cVar3 = *end;\n      }\n      if (cVar3 == '\0') {\n        pcVar7 = *(char **)puVar2;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        einfo(pcVar7);\n        pcVar7 = *(char **)puVar2;\n      }\n    }\n    local_30 = &end;\n    uVar5 = strtoul(pcVar7,local_30,0);\n    if ((*end == ':' || *end == '\0') && (uVar5 < 0x10000)) {\nLAB_00054481:\n      pep_subsystem = uVar5;\n      set_pep_name("__subsystem__",in_stack_ffffffc4);\n    }\n    else {\n      pcVar4 = *(char **)puVar2;\n      pcVar7 = "native";\n      iVar9 = 0;\n      do {\n        iVar6 = strncmp(pcVar4,pcVar7,__n);\n        if ((iVar6 == 0) && (pcVar7[__n] == '\0')) {\n          uVar5 = *(int *)(v_12444 + iVar9 * 8 + 4);\n          goto LAB_00054481;\n        }\n        iVar9 = iVar9 + 1;\n        pcVar7 = *(char **)(v_12444 + iVar9 * 8);\n      } while (pcVar7 != (char *)0x0);\n      pcVar7 = (char *)dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      einfo(pcVar7,pcVar4);\n    }\n    goto _L606;\n  case 0x13a:\n    set_pep_stack_heap("__size_of_heap_reserve__","__size_of_heap_commit__");\n    goto _L606;\n  case 0x13c:\n    pep_out_def_filename = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    pep_dll_export_everything = 1;\n    break;\n  case 0x13e:\n    type = EXCLUDESYMS;\n    goto LAB_00054815;\n  case 0x13f:\n    pep_dll_exclude_all_symbols = 1;\n    break;\n  case 0x140:\n    pep_dll_kill_ats = 1;\n    break;\n  case 0x141:\n    pep_dll_stdcall_aliases = 1;\n    break;\n  case 0x142:\n    pep_enable_stdcall_fixup = 1;\n    break;\n  case 0x143:\n    pep_enable_stdcall_fixup = 0;\n    break;\n  case 0x144:\n    pep_dll_warn_dup_exports = 1;\n    break;\n  case 0x145:\n    pep_dll_compat_implib = 1;\n    break;\n  case 0x146:\n    pep_enable_auto_image_base = 1;\n    break;\n  case 0x147:\n    pep_enable_auto_image_base = 0;\n    break;\n  case 0x148:\n    pep_dll_search_prefix = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    pep_dll_do_default_excludes = 0;\n    break;\n  case 0x14a:\n    link_info.pei386_auto_import = 1;\n    break;\n  case 0x14b:\n    link_info.pei386_auto_import = 0;\n    break;\n  case 0x14c:\n    pep_dll_extra_pe_debug = 1;\n    break;\n  case 0x14d:\n    type = EXCLUDELIBS;\n    goto LAB_00054815;\n  case 0x14e:\n  case 0x150:\n    link_info.pei386_runtime_pseudo_reloc = 2;\n    break;\n  case 0x14f:\n    link_info.pei386_runtime_pseudo_reloc = 0;\n    break;\n  case 0x151:\n    type = EXCLUDEFORIMPLIB;\nLAB_00054815:\n    pep_dll_add_excludes(*(char **)PTR_optarg_001cefdc,type);\n    break;\n  case 0x152:\n    pep_use_nul_prefixed_import_tables = 1;\n    break;\n  case 0x153:\n    pep_leading_underscore = 0;\n    break;\n  case 0x154:\n    pep_leading_underscore = 1;\n    break;\n  case 0x155:\n    pep_use_coff_long_section_names = 1;\n    break;\n  case 0x156:\n    pep_use_coff_long_section_names = 0;\n    break;\n  case 0x157:\n    pe_dll_characteristics = pe_dll_characteristics | 0x20;\n    break;\n  case 0x158:\n    pe_dll_characteristics = pe_dll_characteristics | 0x40;\n    break;\n  case 0x159:\n    pe_dll_characteristics = pe_dll_characteristics | 0x80;\n    break;\n  case 0x15a:\n    pe_dll_characteristics = pe_dll_characteristics | 0x100;\n    break;\n  case 0x15b:\n    pe_dll_characteristics = pe_dll_characteristics | 0x200;\n    break;\n  case 0x15c:\n    pe_dll_characteristics = pe_dll_characteristics | 0x400;\n    break;\n  case 0x15d:\n    pe_dll_characteristics = pe_dll_characteristics | 0x800;\n    break;\n  case 0x15e:\n    pe_dll_characteristics = pe_dll_characteristics | 0x2000;\n    break;\n  case 0x15f:\n    insert_timestamp = 1;\n    break;\n  case 0x160:\n    insert_timestamp = 0;\n    break;\n  case 0x161:\n    pe_dll_characteristics = pe_dll_characteristics | 0x8000;\n    break;\n  case 0x162:\n    if (emit_build_id != (char *)0x0) {\n      free(emit_build_id);\n      emit_build_id = (char *)0x0;\n    }\n    pbVar8 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar8 == (byte *)0x0;\n    if (bVar13) {\n      pbVar8 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar9 = 5;\n      pbVar10 = pbVar8;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto _L606;\n    }\n    emit_build_id = (char *)xstrdup(pbVar8);\n    break;\n  default:\n    return 0;\n  }" { (case_statement "case 0x12d:\n    link_info.base_file = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if ((FILE *)link_info.base_file == (FILE *)0x0) {\n      uVar1 = *(undefined4 *)puVar2;\n      pcVar7 = (char *)dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      einfo(pcVar7,uVar1);\n      break;\n    }" case number_literal : (expression_statement "link_info.base_file = fopen64(*(char **)PTR_optarg_001cefdc,"w");" (assignment_expression "link_info.base_file = fopen64(*(char **)PTR_optarg_001cefdc,"w")" (field_expression "link_info.base_file" identifier . field_identifier) = (call_expression "fopen64(*(char **)PTR_optarg_001cefdc,"w")" identifier (argument_list "(*(char **)PTR_optarg_001cefdc,"w")" ( (pointer_expression "*(char **)PTR_optarg_001cefdc" * (cast_expression "(char **)PTR_optarg_001cefdc" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (string_literal ""w"" " string_content ") )))) ;) (if_statement "if ((FILE *)link_info.base_file == (FILE *)0x0) {\n      uVar1 = *(undefined4 *)puVar2;\n      pcVar7 = (char *)dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      einfo(pcVar7,uVar1);\n      break;\n    }" if (parenthesized_expression "((FILE *)link_info.base_file == (FILE *)0x0)" ( (binary_expression "(FILE *)link_info.base_file == (FILE *)0x0" (cast_expression "(FILE *)link_info.base_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "link_info.base_file" identifier . field_identifier)) == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar1 = *(undefined4 *)puVar2;\n      pcVar7 = (char *)dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      einfo(pcVar7,uVar1);\n      break;\n    }" { (expression_statement "uVar1 = *(undefined4 *)puVar2;" (assignment_expression "uVar1 = *(undefined4 *)puVar2" identifier = (pointer_expression "*(undefined4 *)puVar2" * (cast_expression "(undefined4 *)puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar7 = (char *)dcgettext(0,"%F%P: cannot open base file %s\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"%F%P: cannot open base file %s\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: cannot open base file %s\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: cannot open base file %s\n",5)" identifier (argument_list "(0,"%F%P: cannot open base file %s\n",5)" ( number_literal , (string_literal ""%F%P: cannot open base file %s\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar7,uVar1);" (call_expression "einfo(pcVar7,uVar1)" identifier (argument_list "(pcVar7,uVar1)" ( identifier , identifier ))) ;) (break_statement "break;" break ;) }))) (case_statement "case 0x13b:\n_L606:\n    break;" case number_literal : (labeled_statement "_L606:\n    break;" statement_identifier : (break_statement "break;" break ;))) (case_statement "case 0x12e:\n    set_pep_name("__dll__",in_stack_ffffffc4);\n    break;" case number_literal : (expression_statement "set_pep_name("__dll__",in_stack_ffffffc4);" (call_expression "set_pep_name("__dll__",in_stack_ffffffc4)" identifier (argument_list "("__dll__",in_stack_ffffffc4)" ( (string_literal ""__dll__"" " string_content ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x12f:\n    set_pep_value("__file_alignment__");\n    break;" case number_literal : (expression_statement "set_pep_value("__file_alignment__");" (call_expression "set_pep_value("__file_alignment__")" identifier (argument_list "("__file_alignment__")" ( (string_literal ""__file_alignment__"" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x130:\n    set_pep_value("__image_base__");\n    break;" case number_literal : (expression_statement "set_pep_value("__image_base__");" (call_expression "set_pep_value("__image_base__")" identifier (argument_list "("__image_base__")" ( (string_literal ""__image_base__"" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x131:\n    set_pep_value("__major_image_version__");\n    break;" case number_literal : (expression_statement "set_pep_value("__major_image_version__");" (call_expression "set_pep_value("__major_image_version__")" identifier (argument_list "("__major_image_version__")" ( (string_literal ""__major_image_version__"" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x132:\n    set_pep_value("__major_os_version__");\n    break;" case number_literal : (expression_statement "set_pep_value("__major_os_version__");" (call_expression "set_pep_value("__major_os_version__")" identifier (argument_list "("__major_os_version__")" ( (string_literal ""__major_os_version__"" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x133:\n    set_pep_value("__major_subsystem_version__");\n    break;" case number_literal : (expression_statement "set_pep_value("__major_subsystem_version__");" (call_expression "set_pep_value("__major_subsystem_version__")" identifier (argument_list "("__major_subsystem_version__")" ( (string_literal ""__major_subsystem_version__"" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x134:\n    set_pep_value("__minor_image_version__");\n    break;" case number_literal : (expression_statement "set_pep_value("__minor_image_version__");" (call_expression "set_pep_value("__minor_image_version__")" identifier (argument_list "("__minor_image_version__")" ( (string_literal ""__minor_image_version__"" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x135:\n    set_pep_value("__minor_os_version__");\n    break;" case number_literal : (expression_statement "set_pep_value("__minor_os_version__");" (call_expression "set_pep_value("__minor_os_version__")" identifier (argument_list "("__minor_os_version__")" ( (string_literal ""__minor_os_version__"" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x136:\n    set_pep_value("__minor_subsystem_version__");\n    break;" case number_literal : (expression_statement "set_pep_value("__minor_subsystem_version__");" (call_expression "set_pep_value("__minor_subsystem_version__")" identifier (argument_list "("__minor_subsystem_version__")" ( (string_literal ""__minor_subsystem_version__"" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x137:\n    set_pep_value("__section_alignment__");\n    break;" case number_literal : (expression_statement "set_pep_value("__section_alignment__");" (call_expression "set_pep_value("__section_alignment__")" identifier (argument_list "("__section_alignment__")" ( (string_literal ""__section_alignment__"" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x138:\n    set_pep_stack_heap("__size_of_stack_reserve__","__size_of_stack_commit__");\n    break;" case number_literal : (expression_statement "set_pep_stack_heap("__size_of_stack_reserve__","__size_of_stack_commit__");" (call_expression "set_pep_stack_heap("__size_of_stack_reserve__","__size_of_stack_commit__")" identifier (argument_list "("__size_of_stack_reserve__","__size_of_stack_commit__")" ( (string_literal ""__size_of_stack_reserve__"" " string_content ") , (string_literal ""__size_of_stack_commit__"" " string_content ") ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x139:\n    pcVar7 = *(char **)PTR_optarg_001cefdc;\n    pcVar4 = strchr(pcVar7,0x3a);\n    if (pcVar4 == (char *)0x0) {\n      __n = strlen(pcVar7);\n    }\n    else {\n      __nptr = pcVar4 + 1;\n      __n = (int)pcVar4 - (int)pcVar7;\n      __endptr = &end;\n      ppcVar15 = __endptr;\n      strtoul(__nptr,__endptr,0);\n      set_pep_name("__major_subsystem_version__",CONCAT44(ppcVar15,__nptr));\n      cVar3 = *end;\n      if (cVar3 == '.') {\n        pcVar7 = end + 1;\n        strtoul(pcVar7,__endptr,0);\n        set_pep_name("__minor_subsystem_version__",CONCAT44(__endptr,pcVar7));\n        cVar3 = *end;\n      }\n      if (cVar3 == '\0') {\n        pcVar7 = *(char **)puVar2;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        einfo(pcVar7);\n        pcVar7 = *(char **)puVar2;\n      }\n    }\n    local_30 = &end;\n    uVar5 = strtoul(pcVar7,local_30,0);\n    if ((*end == ':' || *end == '\0') && (uVar5 < 0x10000)) {\nLAB_00054481:\n      pep_subsystem = uVar5;\n      set_pep_name("__subsystem__",in_stack_ffffffc4);\n    }\n    else {\n      pcVar4 = *(char **)puVar2;\n      pcVar7 = "native";\n      iVar9 = 0;\n      do {\n        iVar6 = strncmp(pcVar4,pcVar7,__n);\n        if ((iVar6 == 0) && (pcVar7[__n] == '\0')) {\n          uVar5 = *(int *)(v_12444 + iVar9 * 8 + 4);\n          goto LAB_00054481;\n        }\n        iVar9 = iVar9 + 1;\n        pcVar7 = *(char **)(v_12444 + iVar9 * 8);\n      } while (pcVar7 != (char *)0x0);\n      pcVar7 = (char *)dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      einfo(pcVar7,pcVar4);\n    }\n    goto _L606;" case number_literal : (expression_statement "pcVar7 = *(char **)PTR_optarg_001cefdc;" (assignment_expression "pcVar7 = *(char **)PTR_optarg_001cefdc" identifier = (pointer_expression "*(char **)PTR_optarg_001cefdc" * (cast_expression "(char **)PTR_optarg_001cefdc" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar4 = strchr(pcVar7,0x3a);" (assignment_expression "pcVar4 = strchr(pcVar7,0x3a)" identifier = (call_expression "strchr(pcVar7,0x3a)" identifier (argument_list "(pcVar7,0x3a)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar4 == (char *)0x0) {\n      __n = strlen(pcVar7);\n    }\n    else {\n      __nptr = pcVar4 + 1;\n      __n = (int)pcVar4 - (int)pcVar7;\n      __endptr = &end;\n      ppcVar15 = __endptr;\n      strtoul(__nptr,__endptr,0);\n      set_pep_name("__major_subsystem_version__",CONCAT44(ppcVar15,__nptr));\n      cVar3 = *end;\n      if (cVar3 == '.') {\n        pcVar7 = end + 1;\n        strtoul(pcVar7,__endptr,0);\n        set_pep_name("__minor_subsystem_version__",CONCAT44(__endptr,pcVar7));\n        cVar3 = *end;\n      }\n      if (cVar3 == '\0') {\n        pcVar7 = *(char **)puVar2;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        einfo(pcVar7);\n        pcVar7 = *(char **)puVar2;\n      }\n    }" if (parenthesized_expression "(pcVar4 == (char *)0x0)" ( (binary_expression "pcVar4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      __n = strlen(pcVar7);\n    }" { (expression_statement "__n = strlen(pcVar7);" (assignment_expression "__n = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) }) (else_clause "else {\n      __nptr = pcVar4 + 1;\n      __n = (int)pcVar4 - (int)pcVar7;\n      __endptr = &end;\n      ppcVar15 = __endptr;\n      strtoul(__nptr,__endptr,0);\n      set_pep_name("__major_subsystem_version__",CONCAT44(ppcVar15,__nptr));\n      cVar3 = *end;\n      if (cVar3 == '.') {\n        pcVar7 = end + 1;\n        strtoul(pcVar7,__endptr,0);\n        set_pep_name("__minor_subsystem_version__",CONCAT44(__endptr,pcVar7));\n        cVar3 = *end;\n      }\n      if (cVar3 == '\0') {\n        pcVar7 = *(char **)puVar2;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        einfo(pcVar7);\n        pcVar7 = *(char **)puVar2;\n      }\n    }" else (compound_statement "{\n      __nptr = pcVar4 + 1;\n      __n = (int)pcVar4 - (int)pcVar7;\n      __endptr = &end;\n      ppcVar15 = __endptr;\n      strtoul(__nptr,__endptr,0);\n      set_pep_name("__major_subsystem_version__",CONCAT44(ppcVar15,__nptr));\n      cVar3 = *end;\n      if (cVar3 == '.') {\n        pcVar7 = end + 1;\n        strtoul(pcVar7,__endptr,0);\n        set_pep_name("__minor_subsystem_version__",CONCAT44(__endptr,pcVar7));\n        cVar3 = *end;\n      }\n      if (cVar3 == '\0') {\n        pcVar7 = *(char **)puVar2;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        einfo(pcVar7);\n        pcVar7 = *(char **)puVar2;\n      }\n    }" { (expression_statement "__nptr = pcVar4 + 1;" (assignment_expression "__nptr = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (expression_statement "__n = (int)pcVar4 - (int)pcVar7;" (assignment_expression "__n = (int)pcVar4 - (int)pcVar7" identifier = (binary_expression "(int)pcVar4 - (int)pcVar7" (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "__endptr = &end;" (assignment_expression "__endptr = &end" identifier = (pointer_expression "&end" & identifier)) ;) (expression_statement "ppcVar15 = __endptr;" (assignment_expression "ppcVar15 = __endptr" identifier = identifier) ;) (expression_statement "strtoul(__nptr,__endptr,0);" (call_expression "strtoul(__nptr,__endptr,0)" identifier (argument_list "(__nptr,__endptr,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "set_pep_name("__major_subsystem_version__",CONCAT44(ppcVar15,__nptr));" (call_expression "set_pep_name("__major_subsystem_version__",CONCAT44(ppcVar15,__nptr))" identifier (argument_list "("__major_subsystem_version__",CONCAT44(ppcVar15,__nptr))" ( (string_literal ""__major_subsystem_version__"" " string_content ") , (call_expression "CONCAT44(ppcVar15,__nptr)" identifier (argument_list "(ppcVar15,__nptr)" ( identifier , identifier ))) ))) ;) (expression_statement "cVar3 = *end;" (assignment_expression "cVar3 = *end" identifier = (pointer_expression "*end" * identifier)) ;) (if_statement "if (cVar3 == '.') {\n        pcVar7 = end + 1;\n        strtoul(pcVar7,__endptr,0);\n        set_pep_name("__minor_subsystem_version__",CONCAT44(__endptr,pcVar7));\n        cVar3 = *end;\n      }" if (parenthesized_expression "(cVar3 == '.')" ( (binary_expression "cVar3 == '.'" identifier == (char_literal "'.'" ' character ')) )) (compound_statement "{\n        pcVar7 = end + 1;\n        strtoul(pcVar7,__endptr,0);\n        set_pep_name("__minor_subsystem_version__",CONCAT44(__endptr,pcVar7));\n        cVar3 = *end;\n      }" { (expression_statement "pcVar7 = end + 1;" (assignment_expression "pcVar7 = end + 1" identifier = (binary_expression "end + 1" identifier + number_literal)) ;) (expression_statement "strtoul(pcVar7,__endptr,0);" (call_expression "strtoul(pcVar7,__endptr,0)" identifier (argument_list "(pcVar7,__endptr,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "set_pep_name("__minor_subsystem_version__",CONCAT44(__endptr,pcVar7));" (call_expression "set_pep_name("__minor_subsystem_version__",CONCAT44(__endptr,pcVar7))" identifier (argument_list "("__minor_subsystem_version__",CONCAT44(__endptr,pcVar7))" ( (string_literal ""__minor_subsystem_version__"" " string_content ") , (call_expression "CONCAT44(__endptr,pcVar7)" identifier (argument_list "(__endptr,pcVar7)" ( identifier , identifier ))) ))) ;) (expression_statement "cVar3 = *end;" (assignment_expression "cVar3 = *end" identifier = (pointer_expression "*end" * identifier)) ;) })) (if_statement "if (cVar3 == '\0') {\n        pcVar7 = *(char **)puVar2;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        einfo(pcVar7);\n        pcVar7 = *(char **)puVar2;\n      }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar7 = *(char **)puVar2;\n      }" { (expression_statement "pcVar7 = *(char **)puVar2;" (assignment_expression "pcVar7 = *(char **)puVar2" identifier = (pointer_expression "*(char **)puVar2" * (cast_expression "(char **)puVar2" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) }) (else_clause "else {\n        pcVar7 = (char *)dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        einfo(pcVar7);\n        pcVar7 = *(char **)puVar2;\n      }" else (compound_statement "{\n        pcVar7 = (char *)dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        einfo(pcVar7);\n        pcVar7 = *(char **)puVar2;\n      }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5)" identifier (argument_list "(0,"%P: warning: bad version number in -subsystem option\n",5)" ( number_literal , (string_literal ""%P: warning: bad version number in -subsystem option\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar7);" (call_expression "einfo(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (expression_statement "pcVar7 = *(char **)puVar2;" (assignment_expression "pcVar7 = *(char **)puVar2" identifier = (pointer_expression "*(char **)puVar2" * (cast_expression "(char **)puVar2" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) }))) }))) (expression_statement "local_30 = &end;" (assignment_expression "local_30 = &end" identifier = (pointer_expression "&end" & identifier)) ;) (expression_statement "uVar5 = strtoul(pcVar7,local_30,0);" (assignment_expression "uVar5 = strtoul(pcVar7,local_30,0)" identifier = (call_expression "strtoul(pcVar7,local_30,0)" identifier (argument_list "(pcVar7,local_30,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if ((*end == ':' || *end == '\0') && (uVar5 < 0x10000)) {\nLAB_00054481:\n      pep_subsystem = uVar5;\n      set_pep_name("__subsystem__",in_stack_ffffffc4);\n    }\n    else {\n      pcVar4 = *(char **)puVar2;\n      pcVar7 = "native";\n      iVar9 = 0;\n      do {\n        iVar6 = strncmp(pcVar4,pcVar7,__n);\n        if ((iVar6 == 0) && (pcVar7[__n] == '\0')) {\n          uVar5 = *(int *)(v_12444 + iVar9 * 8 + 4);\n          goto LAB_00054481;\n        }\n        iVar9 = iVar9 + 1;\n        pcVar7 = *(char **)(v_12444 + iVar9 * 8);\n      } while (pcVar7 != (char *)0x0);\n      pcVar7 = (char *)dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      einfo(pcVar7,pcVar4);\n    }" if (parenthesized_expression "((*end == ':' || *end == '\0') && (uVar5 < 0x10000))" ( (binary_expression "(*end == ':' || *end == '\0') && (uVar5 < 0x10000)" (parenthesized_expression "(*end == ':' || *end == '\0')" ( (binary_expression "*end == ':' || *end == '\0'" (binary_expression "*end == ':'" (pointer_expression "*end" * identifier) == (char_literal "':'" ' character ')) || (binary_expression "*end == '\0'" (pointer_expression "*end" * identifier) == (char_literal "'\0'" ' escape_sequence '))) )) && (parenthesized_expression "(uVar5 < 0x10000)" ( (binary_expression "uVar5 < 0x10000" identifier < number_literal) ))) )) (compound_statement "{\nLAB_00054481:\n      pep_subsystem = uVar5;\n      set_pep_name("__subsystem__",in_stack_ffffffc4);\n    }" { (labeled_statement "LAB_00054481:\n      pep_subsystem = uVar5;" statement_identifier : (expression_statement "pep_subsystem = uVar5;" (assignment_expression "pep_subsystem = uVar5" identifier = identifier) ;)) (expression_statement "set_pep_name("__subsystem__",in_stack_ffffffc4);" (call_expression "set_pep_name("__subsystem__",in_stack_ffffffc4)" identifier (argument_list "("__subsystem__",in_stack_ffffffc4)" ( (string_literal ""__subsystem__"" " string_content ") , identifier ))) ;) }) (else_clause "else {\n      pcVar4 = *(char **)puVar2;\n      pcVar7 = "native";\n      iVar9 = 0;\n      do {\n        iVar6 = strncmp(pcVar4,pcVar7,__n);\n        if ((iVar6 == 0) && (pcVar7[__n] == '\0')) {\n          uVar5 = *(int *)(v_12444 + iVar9 * 8 + 4);\n          goto LAB_00054481;\n        }\n        iVar9 = iVar9 + 1;\n        pcVar7 = *(char **)(v_12444 + iVar9 * 8);\n      } while (pcVar7 != (char *)0x0);\n      pcVar7 = (char *)dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      einfo(pcVar7,pcVar4);\n    }" else (compound_statement "{\n      pcVar4 = *(char **)puVar2;\n      pcVar7 = "native";\n      iVar9 = 0;\n      do {\n        iVar6 = strncmp(pcVar4,pcVar7,__n);\n        if ((iVar6 == 0) && (pcVar7[__n] == '\0')) {\n          uVar5 = *(int *)(v_12444 + iVar9 * 8 + 4);\n          goto LAB_00054481;\n        }\n        iVar9 = iVar9 + 1;\n        pcVar7 = *(char **)(v_12444 + iVar9 * 8);\n      } while (pcVar7 != (char *)0x0);\n      pcVar7 = (char *)dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      einfo(pcVar7,pcVar4);\n    }" { (expression_statement "pcVar4 = *(char **)puVar2;" (assignment_expression "pcVar4 = *(char **)puVar2" identifier = (pointer_expression "*(char **)puVar2" * (cast_expression "(char **)puVar2" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar7 = "native";" (assignment_expression "pcVar7 = "native"" identifier = (string_literal ""native"" " string_content ")) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n        iVar6 = strncmp(pcVar4,pcVar7,__n);\n        if ((iVar6 == 0) && (pcVar7[__n] == '\0')) {\n          uVar5 = *(int *)(v_12444 + iVar9 * 8 + 4);\n          goto LAB_00054481;\n        }\n        iVar9 = iVar9 + 1;\n        pcVar7 = *(char **)(v_12444 + iVar9 * 8);\n      } while (pcVar7 != (char *)0x0);" do (compound_statement "{\n        iVar6 = strncmp(pcVar4,pcVar7,__n);\n        if ((iVar6 == 0) && (pcVar7[__n] == '\0')) {\n          uVar5 = *(int *)(v_12444 + iVar9 * 8 + 4);\n          goto LAB_00054481;\n        }\n        iVar9 = iVar9 + 1;\n        pcVar7 = *(char **)(v_12444 + iVar9 * 8);\n      }" { (expression_statement "iVar6 = strncmp(pcVar4,pcVar7,__n);" (assignment_expression "iVar6 = strncmp(pcVar4,pcVar7,__n)" identifier = (call_expression "strncmp(pcVar4,pcVar7,__n)" identifier (argument_list "(pcVar4,pcVar7,__n)" ( identifier , identifier , identifier )))) ;) (if_statement "if ((iVar6 == 0) && (pcVar7[__n] == '\0')) {\n          uVar5 = *(int *)(v_12444 + iVar9 * 8 + 4);\n          goto LAB_00054481;\n        }" if (parenthesized_expression "((iVar6 == 0) && (pcVar7[__n] == '\0'))" ( (binary_expression "(iVar6 == 0) && (pcVar7[__n] == '\0')" (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar7[__n] == '\0')" ( (binary_expression "pcVar7[__n] == '\0'" (subscript_expression "pcVar7[__n]" identifier [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          uVar5 = *(int *)(v_12444 + iVar9 * 8 + 4);\n          goto LAB_00054481;\n        }" { (expression_statement "uVar5 = *(int *)(v_12444 + iVar9 * 8 + 4);" (assignment_expression "uVar5 = *(int *)(v_12444 + iVar9 * 8 + 4)" identifier = (pointer_expression "*(int *)(v_12444 + iVar9 * 8 + 4)" * (cast_expression "(int *)(v_12444 + iVar9 * 8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(v_12444 + iVar9 * 8 + 4)" ( (binary_expression "v_12444 + iVar9 * 8 + 4" (binary_expression "v_12444 + iVar9 * 8" identifier + (binary_expression "iVar9 * 8" identifier * number_literal)) + number_literal) ))))) ;) (goto_statement "goto LAB_00054481;" goto statement_identifier ;) })) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = *(char **)(v_12444 + iVar9 * 8);" (assignment_expression "pcVar7 = *(char **)(v_12444 + iVar9 * 8)" identifier = (pointer_expression "*(char **)(v_12444 + iVar9 * 8)" * (cast_expression "(char **)(v_12444 + iVar9 * 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(v_12444 + iVar9 * 8)" ( (binary_expression "v_12444 + iVar9 * 8" identifier + (binary_expression "iVar9 * 8" identifier * number_literal)) ))))) ;) }) while (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar7 = (char *)dcgettext(0,"%F%P: invalid subsystem type %s\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"%F%P: invalid subsystem type %s\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: invalid subsystem type %s\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: invalid subsystem type %s\n",5)" identifier (argument_list "(0,"%F%P: invalid subsystem type %s\n",5)" ( number_literal , (string_literal ""%F%P: invalid subsystem type %s\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar7,pcVar4);" (call_expression "einfo(pcVar7,pcVar4)" identifier (argument_list "(pcVar7,pcVar4)" ( identifier , identifier ))) ;) }))) (goto_statement "goto _L606;" goto statement_identifier ;)) (case_statement "case 0x13a:\n    set_pep_stack_heap("__size_of_heap_reserve__","__size_of_heap_commit__");\n    goto _L606;" case number_literal : (expression_statement "set_pep_stack_heap("__size_of_heap_reserve__","__size_of_heap_commit__");" (call_expression "set_pep_stack_heap("__size_of_heap_reserve__","__size_of_heap_commit__")" identifier (argument_list "("__size_of_heap_reserve__","__size_of_heap_commit__")" ( (string_literal ""__size_of_heap_reserve__"" " string_content ") , (string_literal ""__size_of_heap_commit__"" " string_content ") ))) ;) (goto_statement "goto _L606;" goto statement_identifier ;)) (case_statement "case 0x13c:\n    pep_out_def_filename = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;" case number_literal : (expression_statement "pep_out_def_filename = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc);" (assignment_expression "pep_out_def_filename = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" identifier = (cast_expression "(char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" identifier (argument_list "(*(undefined4 *)PTR_optarg_001cefdc)" ( (pointer_expression "*(undefined4 *)PTR_optarg_001cefdc" * (cast_expression "(undefined4 *)PTR_optarg_001cefdc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x13d:\n    pep_dll_export_everything = 1;\n    break;" case number_literal : (expression_statement "pep_dll_export_everything = 1;" (assignment_expression "pep_dll_export_everything = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x13e:\n    type = EXCLUDESYMS;\n    goto LAB_00054815;" case number_literal : (expression_statement "type = EXCLUDESYMS;" (assignment_expression "type = EXCLUDESYMS" identifier = identifier) ;) (goto_statement "goto LAB_00054815;" goto statement_identifier ;)) (case_statement "case 0x13f:\n    pep_dll_exclude_all_symbols = 1;\n    break;" case number_literal : (expression_statement "pep_dll_exclude_all_symbols = 1;" (assignment_expression "pep_dll_exclude_all_symbols = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x140:\n    pep_dll_kill_ats = 1;\n    break;" case number_literal : (expression_statement "pep_dll_kill_ats = 1;" (assignment_expression "pep_dll_kill_ats = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x141:\n    pep_dll_stdcall_aliases = 1;\n    break;" case number_literal : (expression_statement "pep_dll_stdcall_aliases = 1;" (assignment_expression "pep_dll_stdcall_aliases = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x142:\n    pep_enable_stdcall_fixup = 1;\n    break;" case number_literal : (expression_statement "pep_enable_stdcall_fixup = 1;" (assignment_expression "pep_enable_stdcall_fixup = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x143:\n    pep_enable_stdcall_fixup = 0;\n    break;" case number_literal : (expression_statement "pep_enable_stdcall_fixup = 0;" (assignment_expression "pep_enable_stdcall_fixup = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x144:\n    pep_dll_warn_dup_exports = 1;\n    break;" case number_literal : (expression_statement "pep_dll_warn_dup_exports = 1;" (assignment_expression "pep_dll_warn_dup_exports = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x145:\n    pep_dll_compat_implib = 1;\n    break;" case number_literal : (expression_statement "pep_dll_compat_implib = 1;" (assignment_expression "pep_dll_compat_implib = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x146:\n    pep_enable_auto_image_base = 1;\n    break;" case number_literal : (expression_statement "pep_enable_auto_image_base = 1;" (assignment_expression "pep_enable_auto_image_base = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x147:\n    pep_enable_auto_image_base = 0;\n    break;" case number_literal : (expression_statement "pep_enable_auto_image_base = 0;" (assignment_expression "pep_enable_auto_image_base = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x148:\n    pep_dll_search_prefix = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;" case number_literal : (expression_statement "pep_dll_search_prefix = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc);" (assignment_expression "pep_dll_search_prefix = (char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" identifier = (cast_expression "(char *)xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" identifier (argument_list "(*(undefined4 *)PTR_optarg_001cefdc)" ( (pointer_expression "*(undefined4 *)PTR_optarg_001cefdc" * (cast_expression "(undefined4 *)PTR_optarg_001cefdc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x149:\n    pep_dll_do_default_excludes = 0;\n    break;" case number_literal : (expression_statement "pep_dll_do_default_excludes = 0;" (assignment_expression "pep_dll_do_default_excludes = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x14a:\n    link_info.pei386_auto_import = 1;\n    break;" case number_literal : (expression_statement "link_info.pei386_auto_import = 1;" (assignment_expression "link_info.pei386_auto_import = 1" (field_expression "link_info.pei386_auto_import" identifier . field_identifier) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x14b:\n    link_info.pei386_auto_import = 0;\n    break;" case number_literal : (expression_statement "link_info.pei386_auto_import = 0;" (assignment_expression "link_info.pei386_auto_import = 0" (field_expression "link_info.pei386_auto_import" identifier . field_identifier) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x14c:\n    pep_dll_extra_pe_debug = 1;\n    break;" case number_literal : (expression_statement "pep_dll_extra_pe_debug = 1;" (assignment_expression "pep_dll_extra_pe_debug = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x14d:\n    type = EXCLUDELIBS;\n    goto LAB_00054815;" case number_literal : (expression_statement "type = EXCLUDELIBS;" (assignment_expression "type = EXCLUDELIBS" identifier = identifier) ;) (goto_statement "goto LAB_00054815;" goto statement_identifier ;)) (case_statement "case 0x14e:" case number_literal :) (case_statement "case 0x150:\n    link_info.pei386_runtime_pseudo_reloc = 2;\n    break;" case number_literal : (expression_statement "link_info.pei386_runtime_pseudo_reloc = 2;" (assignment_expression "link_info.pei386_runtime_pseudo_reloc = 2" (field_expression "link_info.pei386_runtime_pseudo_reloc" identifier . field_identifier) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x14f:\n    link_info.pei386_runtime_pseudo_reloc = 0;\n    break;" case number_literal : (expression_statement "link_info.pei386_runtime_pseudo_reloc = 0;" (assignment_expression "link_info.pei386_runtime_pseudo_reloc = 0" (field_expression "link_info.pei386_runtime_pseudo_reloc" identifier . field_identifier) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x151:\n    type = EXCLUDEFORIMPLIB;\nLAB_00054815:\n    pep_dll_add_excludes(*(char **)PTR_optarg_001cefdc,type);\n    break;" case number_literal : (expression_statement "type = EXCLUDEFORIMPLIB;" (assignment_expression "type = EXCLUDEFORIMPLIB" identifier = identifier) ;) (labeled_statement "LAB_00054815:\n    pep_dll_add_excludes(*(char **)PTR_optarg_001cefdc,type);" statement_identifier : (expression_statement "pep_dll_add_excludes(*(char **)PTR_optarg_001cefdc,type);" (call_expression "pep_dll_add_excludes(*(char **)PTR_optarg_001cefdc,type)" identifier (argument_list "(*(char **)PTR_optarg_001cefdc,type)" ( (pointer_expression "*(char **)PTR_optarg_001cefdc" * (cast_expression "(char **)PTR_optarg_001cefdc" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier ))) ;)) (break_statement "break;" break ;)) (case_statement "case 0x152:\n    pep_use_nul_prefixed_import_tables = 1;\n    break;" case number_literal : (expression_statement "pep_use_nul_prefixed_import_tables = 1;" (assignment_expression "pep_use_nul_prefixed_import_tables = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x153:\n    pep_leading_underscore = 0;\n    break;" case number_literal : (expression_statement "pep_leading_underscore = 0;" (assignment_expression "pep_leading_underscore = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x154:\n    pep_leading_underscore = 1;\n    break;" case number_literal : (expression_statement "pep_leading_underscore = 1;" (assignment_expression "pep_leading_underscore = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x155:\n    pep_use_coff_long_section_names = 1;\n    break;" case number_literal : (expression_statement "pep_use_coff_long_section_names = 1;" (assignment_expression "pep_use_coff_long_section_names = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x156:\n    pep_use_coff_long_section_names = 0;\n    break;" case number_literal : (expression_statement "pep_use_coff_long_section_names = 0;" (assignment_expression "pep_use_coff_long_section_names = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x157:\n    pe_dll_characteristics = pe_dll_characteristics | 0x20;\n    break;" case number_literal : (expression_statement "pe_dll_characteristics = pe_dll_characteristics | 0x20;" (assignment_expression "pe_dll_characteristics = pe_dll_characteristics | 0x20" identifier = (binary_expression "pe_dll_characteristics | 0x20" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x158:\n    pe_dll_characteristics = pe_dll_characteristics | 0x40;\n    break;" case number_literal : (expression_statement "pe_dll_characteristics = pe_dll_characteristics | 0x40;" (assignment_expression "pe_dll_characteristics = pe_dll_characteristics | 0x40" identifier = (binary_expression "pe_dll_characteristics | 0x40" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x159:\n    pe_dll_characteristics = pe_dll_characteristics | 0x80;\n    break;" case number_literal : (expression_statement "pe_dll_characteristics = pe_dll_characteristics | 0x80;" (assignment_expression "pe_dll_characteristics = pe_dll_characteristics | 0x80" identifier = (binary_expression "pe_dll_characteristics | 0x80" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15a:\n    pe_dll_characteristics = pe_dll_characteristics | 0x100;\n    break;" case number_literal : (expression_statement "pe_dll_characteristics = pe_dll_characteristics | 0x100;" (assignment_expression "pe_dll_characteristics = pe_dll_characteristics | 0x100" identifier = (binary_expression "pe_dll_characteristics | 0x100" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15b:\n    pe_dll_characteristics = pe_dll_characteristics | 0x200;\n    break;" case number_literal : (expression_statement "pe_dll_characteristics = pe_dll_characteristics | 0x200;" (assignment_expression "pe_dll_characteristics = pe_dll_characteristics | 0x200" identifier = (binary_expression "pe_dll_characteristics | 0x200" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15c:\n    pe_dll_characteristics = pe_dll_characteristics | 0x400;\n    break;" case number_literal : (expression_statement "pe_dll_characteristics = pe_dll_characteristics | 0x400;" (assignment_expression "pe_dll_characteristics = pe_dll_characteristics | 0x400" identifier = (binary_expression "pe_dll_characteristics | 0x400" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15d:\n    pe_dll_characteristics = pe_dll_characteristics | 0x800;\n    break;" case number_literal : (expression_statement "pe_dll_characteristics = pe_dll_characteristics | 0x800;" (assignment_expression "pe_dll_characteristics = pe_dll_characteristics | 0x800" identifier = (binary_expression "pe_dll_characteristics | 0x800" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15e:\n    pe_dll_characteristics = pe_dll_characteristics | 0x2000;\n    break;" case number_literal : (expression_statement "pe_dll_characteristics = pe_dll_characteristics | 0x2000;" (assignment_expression "pe_dll_characteristics = pe_dll_characteristics | 0x2000" identifier = (binary_expression "pe_dll_characteristics | 0x2000" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15f:\n    insert_timestamp = 1;\n    break;" case number_literal : (expression_statement "insert_timestamp = 1;" (assignment_expression "insert_timestamp = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x160:\n    insert_timestamp = 0;\n    break;" case number_literal : (expression_statement "insert_timestamp = 0;" (assignment_expression "insert_timestamp = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x161:\n    pe_dll_characteristics = pe_dll_characteristics | 0x8000;\n    break;" case number_literal : (expression_statement "pe_dll_characteristics = pe_dll_characteristics | 0x8000;" (assignment_expression "pe_dll_characteristics = pe_dll_characteristics | 0x8000" identifier = (binary_expression "pe_dll_characteristics | 0x8000" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x162:\n    if (emit_build_id != (char *)0x0) {\n      free(emit_build_id);\n      emit_build_id = (char *)0x0;\n    }\n    pbVar8 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar8 == (byte *)0x0;\n    if (bVar13) {\n      pbVar8 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar9 = 5;\n      pbVar10 = pbVar8;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto _L606;\n    }\n    emit_build_id = (char *)xstrdup(pbVar8);\n    break;" case number_literal : (if_statement "if (emit_build_id != (char *)0x0) {\n      free(emit_build_id);\n      emit_build_id = (char *)0x0;\n    }" if (parenthesized_expression "(emit_build_id != (char *)0x0)" ( (binary_expression "emit_build_id != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(emit_build_id);\n      emit_build_id = (char *)0x0;\n    }" { (expression_statement "free(emit_build_id);" (call_expression "free(emit_build_id)" identifier (argument_list "(emit_build_id)" ( identifier ))) ;) (expression_statement "emit_build_id = (char *)0x0;" (assignment_expression "emit_build_id = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "pbVar8 = *(byte **)PTR_optarg_001cefdc;" (assignment_expression "pbVar8 = *(byte **)PTR_optarg_001cefdc" identifier = (pointer_expression "*(byte **)PTR_optarg_001cefdc" * (cast_expression "(byte **)PTR_optarg_001cefdc" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar13 = pbVar8 == (byte *)0x0;" (assignment_expression "bVar13 = pbVar8 == (byte *)0x0" identifier = (binary_expression "pbVar8 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar13) {\n      pbVar8 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar9 = 5;\n      pbVar10 = pbVar8;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto _L606;\n    }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n      pbVar8 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }" { (expression_statement "pbVar8 = &DAT_0007e2c4;" (assignment_expression "pbVar8 = &DAT_0007e2c4" identifier = (pointer_expression "&DAT_0007e2c4" & identifier)) ;) (expression_statement "*(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;" (assignment_expression "*(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4" (pointer_expression "*(undefined1 **)PTR_optarg_001cefdc" * (cast_expression "(undefined1 **)PTR_optarg_001cefdc" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (pointer_expression "&DAT_0007e2c4" & identifier)) ;) }) (else_clause "else {\n      iVar9 = 5;\n      pbVar10 = pbVar8;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto _L606;\n    }" else (compound_statement "{\n      iVar9 = 5;\n      pbVar10 = pbVar8;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto _L606;\n    }" { (expression_statement "iVar9 = 5;" (assignment_expression "iVar9 = 5" identifier = number_literal) ;) (expression_statement "pbVar10 = pbVar8;" (assignment_expression "pbVar10 = pbVar8" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)0x79bf4;" (assignment_expression "pbVar11 = (byte *)0x79bf4" identifier = (cast_expression "(byte *)0x79bf4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);" do (compound_statement "{\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar10 < *pbVar11;" (assignment_expression "bVar12 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar13 = *pbVar10 == *pbVar11;" (assignment_expression "bVar13 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar12 && !bVar13) == bVar12) goto _L606;" if (parenthesized_expression "((!bVar12 && !bVar13) == bVar12)" ( (binary_expression "(!bVar12 && !bVar13) == bVar12" (parenthesized_expression "(!bVar12 && !bVar13)" ( (binary_expression "!bVar12 && !bVar13" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) (goto_statement "goto _L606;" goto statement_identifier ;)) }))) (expression_statement "emit_build_id = (char *)xstrdup(pbVar8);" (assignment_expression "emit_build_id = (char *)xstrdup(pbVar8)" identifier = (cast_expression "(char *)xstrdup(pbVar8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pbVar8)" identifier (argument_list "(pbVar8)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    return 0;" default : (return_statement "return 0;" return number_literal ;)) })) (expression_statement "set_pep_name("__dll_characteristics__",in_stack_ffffffc4);" (call_expression "set_pep_name("__dll_characteristics__",in_stack_ffffffc4)" identifier (argument_list "("__dll_characteristics__",in_stack_ffffffc4)" ( (string_literal ""__dll_characteristics__"" " string_content ") , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "undefined4 FUN_00054440(undefined4 param_1)\n\n{\n  undefined *puVar1;\n  char cVar2;\n  char *pcVar3;\n  ulong uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte *pbVar7;\n  int iVar8;\n  char *pcVar9;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined4 uVar15;\n  char **ppcStack_30;\n  char *apcStack_20 [3];\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x54449;\n  FUN_00052dd0();\n  puVar1 = PTR_optarg_001cefdc;\n  switch(param_1) {\n  case 0x12d:\n    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }\n  case 0x13b:\ncode_r0x00054491:\n    break;\n  case 0x12e:\n    FUN_00054230();\n    break;\n  case 0x12f:\n    FUN_00054350();\n    break;\n  case 0x130:\n    FUN_00054350();\n    break;\n  case 0x131:\n    FUN_00054350();\n    break;\n  case 0x132:\n    FUN_00054350();\n    break;\n  case 0x133:\n    FUN_00054350();\n    break;\n  case 0x134:\n    FUN_00054350();\n    break;\n  case 0x135:\n    FUN_00054350();\n    break;\n  case 0x136:\n    FUN_00054350();\n    break;\n  case 0x137:\n    FUN_00054350();\n    break;\n  case 0x138:\n    FUN_000543d0();\n    break;\n  case 0x139:\n    pcVar9 = *(char **)PTR_optarg_001cefdc;\n    pcVar3 = strchr(pcVar9,0x3a);\n    if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }\n    ppcStack_30 = apcStack_20;\n    uVar4 = strtoul(pcVar9,ppcStack_30,0);\n    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }\n    goto code_r0x00054491;\n  case 0x13a:\n    FUN_000543d0();\n    goto code_r0x00054491;\n  case 0x13c:\n    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    DAT_001d115c = 1;\n    break;\n  case 0x13e:\n    uVar15 = 0;\n    goto code_r0x00054815;\n  case 0x13f:\n    DAT_001d1158 = 1;\n    break;\n  case 0x140:\n    DAT_001d1154 = 1;\n    break;\n  case 0x141:\n    DAT_001d1150 = 1;\n    break;\n  case 0x142:\n    DAT_001cfc6c = 1;\n    break;\n  case 0x143:\n    DAT_001cfc6c = 0;\n    break;\n  case 0x144:\n    DAT_001d114c = 1;\n    break;\n  case 0x145:\n    DAT_001d1148 = 1;\n    break;\n  case 0x146:\n    DAT_001d0df4 = 1;\n    break;\n  case 0x147:\n    DAT_001d0df4 = 0;\n    break;\n  case 0x148:\n    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    DAT_001d02b8 = 0;\n    break;\n  case 0x14a:\n    DAT_001d1448 = 1;\n    break;\n  case 0x14b:\n    DAT_001d1448 = 0;\n    break;\n  case 0x14c:\n    DAT_001d1144 = 1;\n    break;\n  case 0x14d:\n    uVar15 = 1;\n    goto code_r0x00054815;\n  case 0x14e:\n  case 0x150:\n    DAT_001d144c = 2;\n    break;\n  case 0x14f:\n    DAT_001d144c = 0;\n    break;\n  case 0x151:\n    uVar15 = 2;\ncode_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);\n    break;\n  case 0x152:\n    DAT_001d1140 = 1;\n    break;\n  case 0x153:\n    DAT_001d02b0 = 0;\n    break;\n  case 0x154:\n    DAT_001d02b0 = 1;\n    break;\n  case 0x155:\n    DAT_001d02b4 = 1;\n    break;\n  case 0x156:\n    DAT_001d02b4 = 0;\n    break;\n  case 0x157:\n    uRam001d0e00 = uRam001d0e00 | 0x20;\n    break;\n  case 0x158:\n    uRam001d0e00 = uRam001d0e00 | 0x40;\n    break;\n  case 0x159:\n    uRam001d0e00 = uRam001d0e00 | 0x80;\n    break;\n  case 0x15a:\n    uRam001d0e00 = uRam001d0e00 | 0x100;\n    break;\n  case 0x15b:\n    uRam001d0e00 = uRam001d0e00 | 0x200;\n    break;\n  case 0x15c:\n    uRam001d0e00 = uRam001d0e00 | 0x400;\n    break;\n  case 0x15d:\n    uRam001d0e00 = uRam001d0e00 | 0x800;\n    break;\n  case 0x15e:\n    uRam001d0e00 = uRam001d0e00 | 0x2000;\n    break;\n  case 0x15f:\n    DAT_001cfc70 = 1;\n    break;\n  case 0x160:\n    DAT_001cfc70 = 0;\n    break;\n  case 0x161:\n    uRam001d0e00 = uRam001d0e00 | 0x8000;\n    break;\n  case 0x162:\n    if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }\n    pbVar7 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar7 == (byte *)0x0;\n    if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }\n    DAT_001d0dfc = (void *)xstrdup(pbVar7);\n    break;\n  default:\n    return 0;\n  }\n  FUN_00054230();\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_00054440(undefined4 param_1)\n\n{\n  undefined *puVar1;\n  char cVar2;\n  char *pcVar3;\n  ulong uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte *pbVar7;\n  int iVar8;\n  char *pcVar9;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined4 uVar15;\n  char **ppcStack_30;\n  char *apcStack_20 [3];\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x54449;\n  FUN_00052dd0();\n  puVar1 = PTR_optarg_001cefdc;\n  switch(param_1) {\n  case 0x12d:\n    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }\n  case 0x13b:\ncode_r0x00054491:\n    break;\n  case 0x12e:\n    FUN_00054230();\n    break;\n  case 0x12f:\n    FUN_00054350();\n    break;\n  case 0x130:\n    FUN_00054350();\n    break;\n  case 0x131:\n    FUN_00054350();\n    break;\n  case 0x132:\n    FUN_00054350();\n    break;\n  case 0x133:\n    FUN_00054350();\n    break;\n  case 0x134:\n    FUN_00054350();\n    break;\n  case 0x135:\n    FUN_00054350();\n    break;\n  case 0x136:\n    FUN_00054350();\n    break;\n  case 0x137:\n    FUN_00054350();\n    break;\n  case 0x138:\n    FUN_000543d0();\n    break;\n  case 0x139:\n    pcVar9 = *(char **)PTR_optarg_001cefdc;\n    pcVar3 = strchr(pcVar9,0x3a);\n    if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }\n    ppcStack_30 = apcStack_20;\n    uVar4 = strtoul(pcVar9,ppcStack_30,0);\n    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }\n    goto code_r0x00054491;\n  case 0x13a:\n    FUN_000543d0();\n    goto code_r0x00054491;\n  case 0x13c:\n    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    DAT_001d115c = 1;\n    break;\n  case 0x13e:\n    uVar15 = 0;\n    goto code_r0x00054815;\n  case 0x13f:\n    DAT_001d1158 = 1;\n    break;\n  case 0x140:\n    DAT_001d1154 = 1;\n    break;\n  case 0x141:\n    DAT_001d1150 = 1;\n    break;\n  case 0x142:\n    DAT_001cfc6c = 1;\n    break;\n  case 0x143:\n    DAT_001cfc6c = 0;\n    break;\n  case 0x144:\n    DAT_001d114c = 1;\n    break;\n  case 0x145:\n    DAT_001d1148 = 1;\n    break;\n  case 0x146:\n    DAT_001d0df4 = 1;\n    break;\n  case 0x147:\n    DAT_001d0df4 = 0;\n    break;\n  case 0x148:\n    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    DAT_001d02b8 = 0;\n    break;\n  case 0x14a:\n    DAT_001d1448 = 1;\n    break;\n  case 0x14b:\n    DAT_001d1448 = 0;\n    break;\n  case 0x14c:\n    DAT_001d1144 = 1;\n    break;\n  case 0x14d:\n    uVar15 = 1;\n    goto code_r0x00054815;\n  case 0x14e:\n  case 0x150:\n    DAT_001d144c = 2;\n    break;\n  case 0x14f:\n    DAT_001d144c = 0;\n    break;\n  case 0x151:\n    uVar15 = 2;\ncode_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);\n    break;\n  case 0x152:\n    DAT_001d1140 = 1;\n    break;\n  case 0x153:\n    DAT_001d02b0 = 0;\n    break;\n  case 0x154:\n    DAT_001d02b0 = 1;\n    break;\n  case 0x155:\n    DAT_001d02b4 = 1;\n    break;\n  case 0x156:\n    DAT_001d02b4 = 0;\n    break;\n  case 0x157:\n    uRam001d0e00 = uRam001d0e00 | 0x20;\n    break;\n  case 0x158:\n    uRam001d0e00 = uRam001d0e00 | 0x40;\n    break;\n  case 0x159:\n    uRam001d0e00 = uRam001d0e00 | 0x80;\n    break;\n  case 0x15a:\n    uRam001d0e00 = uRam001d0e00 | 0x100;\n    break;\n  case 0x15b:\n    uRam001d0e00 = uRam001d0e00 | 0x200;\n    break;\n  case 0x15c:\n    uRam001d0e00 = uRam001d0e00 | 0x400;\n    break;\n  case 0x15d:\n    uRam001d0e00 = uRam001d0e00 | 0x800;\n    break;\n  case 0x15e:\n    uRam001d0e00 = uRam001d0e00 | 0x2000;\n    break;\n  case 0x15f:\n    DAT_001cfc70 = 1;\n    break;\n  case 0x160:\n    DAT_001cfc70 = 0;\n    break;\n  case 0x161:\n    uRam001d0e00 = uRam001d0e00 | 0x8000;\n    break;\n  case 0x162:\n    if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }\n    pbVar7 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar7 == (byte *)0x0;\n    if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }\n    DAT_001d0dfc = (void *)xstrdup(pbVar7);\n    break;\n  default:\n    return 0;\n  }\n  FUN_00054230();\n  return 1;\n}" type_identifier (function_declarator "FUN_00054440(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  char cVar2;\n  char *pcVar3;\n  ulong uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte *pbVar7;\n  int iVar8;\n  char *pcVar9;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined4 uVar15;\n  char **ppcStack_30;\n  char *apcStack_20 [3];\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x54449;\n  FUN_00052dd0();\n  puVar1 = PTR_optarg_001cefdc;\n  switch(param_1) {\n  case 0x12d:\n    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }\n  case 0x13b:\ncode_r0x00054491:\n    break;\n  case 0x12e:\n    FUN_00054230();\n    break;\n  case 0x12f:\n    FUN_00054350();\n    break;\n  case 0x130:\n    FUN_00054350();\n    break;\n  case 0x131:\n    FUN_00054350();\n    break;\n  case 0x132:\n    FUN_00054350();\n    break;\n  case 0x133:\n    FUN_00054350();\n    break;\n  case 0x134:\n    FUN_00054350();\n    break;\n  case 0x135:\n    FUN_00054350();\n    break;\n  case 0x136:\n    FUN_00054350();\n    break;\n  case 0x137:\n    FUN_00054350();\n    break;\n  case 0x138:\n    FUN_000543d0();\n    break;\n  case 0x139:\n    pcVar9 = *(char **)PTR_optarg_001cefdc;\n    pcVar3 = strchr(pcVar9,0x3a);\n    if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }\n    ppcStack_30 = apcStack_20;\n    uVar4 = strtoul(pcVar9,ppcStack_30,0);\n    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }\n    goto code_r0x00054491;\n  case 0x13a:\n    FUN_000543d0();\n    goto code_r0x00054491;\n  case 0x13c:\n    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    DAT_001d115c = 1;\n    break;\n  case 0x13e:\n    uVar15 = 0;\n    goto code_r0x00054815;\n  case 0x13f:\n    DAT_001d1158 = 1;\n    break;\n  case 0x140:\n    DAT_001d1154 = 1;\n    break;\n  case 0x141:\n    DAT_001d1150 = 1;\n    break;\n  case 0x142:\n    DAT_001cfc6c = 1;\n    break;\n  case 0x143:\n    DAT_001cfc6c = 0;\n    break;\n  case 0x144:\n    DAT_001d114c = 1;\n    break;\n  case 0x145:\n    DAT_001d1148 = 1;\n    break;\n  case 0x146:\n    DAT_001d0df4 = 1;\n    break;\n  case 0x147:\n    DAT_001d0df4 = 0;\n    break;\n  case 0x148:\n    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    DAT_001d02b8 = 0;\n    break;\n  case 0x14a:\n    DAT_001d1448 = 1;\n    break;\n  case 0x14b:\n    DAT_001d1448 = 0;\n    break;\n  case 0x14c:\n    DAT_001d1144 = 1;\n    break;\n  case 0x14d:\n    uVar15 = 1;\n    goto code_r0x00054815;\n  case 0x14e:\n  case 0x150:\n    DAT_001d144c = 2;\n    break;\n  case 0x14f:\n    DAT_001d144c = 0;\n    break;\n  case 0x151:\n    uVar15 = 2;\ncode_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);\n    break;\n  case 0x152:\n    DAT_001d1140 = 1;\n    break;\n  case 0x153:\n    DAT_001d02b0 = 0;\n    break;\n  case 0x154:\n    DAT_001d02b0 = 1;\n    break;\n  case 0x155:\n    DAT_001d02b4 = 1;\n    break;\n  case 0x156:\n    DAT_001d02b4 = 0;\n    break;\n  case 0x157:\n    uRam001d0e00 = uRam001d0e00 | 0x20;\n    break;\n  case 0x158:\n    uRam001d0e00 = uRam001d0e00 | 0x40;\n    break;\n  case 0x159:\n    uRam001d0e00 = uRam001d0e00 | 0x80;\n    break;\n  case 0x15a:\n    uRam001d0e00 = uRam001d0e00 | 0x100;\n    break;\n  case 0x15b:\n    uRam001d0e00 = uRam001d0e00 | 0x200;\n    break;\n  case 0x15c:\n    uRam001d0e00 = uRam001d0e00 | 0x400;\n    break;\n  case 0x15d:\n    uRam001d0e00 = uRam001d0e00 | 0x800;\n    break;\n  case 0x15e:\n    uRam001d0e00 = uRam001d0e00 | 0x2000;\n    break;\n  case 0x15f:\n    DAT_001cfc70 = 1;\n    break;\n  case 0x160:\n    DAT_001cfc70 = 0;\n    break;\n  case 0x161:\n    uRam001d0e00 = uRam001d0e00 | 0x8000;\n    break;\n  case 0x162:\n    if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }\n    pbVar7 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar7 == (byte *)0x0;\n    if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }\n    DAT_001d0dfc = (void *)xstrdup(pbVar7);\n    break;\n  default:\n    return 0;\n  }\n  FUN_00054230();\n  return 1;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "char **ppcStack_30;" primitive_type (pointer_declarator "**ppcStack_30" * (pointer_declarator "*ppcStack_30" * identifier)) ;) (declaration "char *apcStack_20 [3];" primitive_type (pointer_declarator "*apcStack_20 [3]" * (array_declarator "apcStack_20 [3]" identifier [ number_literal ])) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x54449;" (assignment_expression "uStack_14 = 0x54449" identifier = number_literal) ;) (expression_statement "FUN_00052dd0();" (call_expression "FUN_00052dd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar1 = PTR_optarg_001cefdc;" (assignment_expression "puVar1 = PTR_optarg_001cefdc" identifier = identifier) ;) (switch_statement "switch(param_1) {\n  case 0x12d:\n    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }\n  case 0x13b:\ncode_r0x00054491:\n    break;\n  case 0x12e:\n    FUN_00054230();\n    break;\n  case 0x12f:\n    FUN_00054350();\n    break;\n  case 0x130:\n    FUN_00054350();\n    break;\n  case 0x131:\n    FUN_00054350();\n    break;\n  case 0x132:\n    FUN_00054350();\n    break;\n  case 0x133:\n    FUN_00054350();\n    break;\n  case 0x134:\n    FUN_00054350();\n    break;\n  case 0x135:\n    FUN_00054350();\n    break;\n  case 0x136:\n    FUN_00054350();\n    break;\n  case 0x137:\n    FUN_00054350();\n    break;\n  case 0x138:\n    FUN_000543d0();\n    break;\n  case 0x139:\n    pcVar9 = *(char **)PTR_optarg_001cefdc;\n    pcVar3 = strchr(pcVar9,0x3a);\n    if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }\n    ppcStack_30 = apcStack_20;\n    uVar4 = strtoul(pcVar9,ppcStack_30,0);\n    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }\n    goto code_r0x00054491;\n  case 0x13a:\n    FUN_000543d0();\n    goto code_r0x00054491;\n  case 0x13c:\n    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    DAT_001d115c = 1;\n    break;\n  case 0x13e:\n    uVar15 = 0;\n    goto code_r0x00054815;\n  case 0x13f:\n    DAT_001d1158 = 1;\n    break;\n  case 0x140:\n    DAT_001d1154 = 1;\n    break;\n  case 0x141:\n    DAT_001d1150 = 1;\n    break;\n  case 0x142:\n    DAT_001cfc6c = 1;\n    break;\n  case 0x143:\n    DAT_001cfc6c = 0;\n    break;\n  case 0x144:\n    DAT_001d114c = 1;\n    break;\n  case 0x145:\n    DAT_001d1148 = 1;\n    break;\n  case 0x146:\n    DAT_001d0df4 = 1;\n    break;\n  case 0x147:\n    DAT_001d0df4 = 0;\n    break;\n  case 0x148:\n    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    DAT_001d02b8 = 0;\n    break;\n  case 0x14a:\n    DAT_001d1448 = 1;\n    break;\n  case 0x14b:\n    DAT_001d1448 = 0;\n    break;\n  case 0x14c:\n    DAT_001d1144 = 1;\n    break;\n  case 0x14d:\n    uVar15 = 1;\n    goto code_r0x00054815;\n  case 0x14e:\n  case 0x150:\n    DAT_001d144c = 2;\n    break;\n  case 0x14f:\n    DAT_001d144c = 0;\n    break;\n  case 0x151:\n    uVar15 = 2;\ncode_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);\n    break;\n  case 0x152:\n    DAT_001d1140 = 1;\n    break;\n  case 0x153:\n    DAT_001d02b0 = 0;\n    break;\n  case 0x154:\n    DAT_001d02b0 = 1;\n    break;\n  case 0x155:\n    DAT_001d02b4 = 1;\n    break;\n  case 0x156:\n    DAT_001d02b4 = 0;\n    break;\n  case 0x157:\n    uRam001d0e00 = uRam001d0e00 | 0x20;\n    break;\n  case 0x158:\n    uRam001d0e00 = uRam001d0e00 | 0x40;\n    break;\n  case 0x159:\n    uRam001d0e00 = uRam001d0e00 | 0x80;\n    break;\n  case 0x15a:\n    uRam001d0e00 = uRam001d0e00 | 0x100;\n    break;\n  case 0x15b:\n    uRam001d0e00 = uRam001d0e00 | 0x200;\n    break;\n  case 0x15c:\n    uRam001d0e00 = uRam001d0e00 | 0x400;\n    break;\n  case 0x15d:\n    uRam001d0e00 = uRam001d0e00 | 0x800;\n    break;\n  case 0x15e:\n    uRam001d0e00 = uRam001d0e00 | 0x2000;\n    break;\n  case 0x15f:\n    DAT_001cfc70 = 1;\n    break;\n  case 0x160:\n    DAT_001cfc70 = 0;\n    break;\n  case 0x161:\n    uRam001d0e00 = uRam001d0e00 | 0x8000;\n    break;\n  case 0x162:\n    if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }\n    pbVar7 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar7 == (byte *)0x0;\n    if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }\n    DAT_001d0dfc = (void *)xstrdup(pbVar7);\n    break;\n  default:\n    return 0;\n  }" switch (parenthesized_expression "(param_1)" ( identifier )) (compound_statement "{\n  case 0x12d:\n    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }\n  case 0x13b:\ncode_r0x00054491:\n    break;\n  case 0x12e:\n    FUN_00054230();\n    break;\n  case 0x12f:\n    FUN_00054350();\n    break;\n  case 0x130:\n    FUN_00054350();\n    break;\n  case 0x131:\n    FUN_00054350();\n    break;\n  case 0x132:\n    FUN_00054350();\n    break;\n  case 0x133:\n    FUN_00054350();\n    break;\n  case 0x134:\n    FUN_00054350();\n    break;\n  case 0x135:\n    FUN_00054350();\n    break;\n  case 0x136:\n    FUN_00054350();\n    break;\n  case 0x137:\n    FUN_00054350();\n    break;\n  case 0x138:\n    FUN_000543d0();\n    break;\n  case 0x139:\n    pcVar9 = *(char **)PTR_optarg_001cefdc;\n    pcVar3 = strchr(pcVar9,0x3a);\n    if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }\n    ppcStack_30 = apcStack_20;\n    uVar4 = strtoul(pcVar9,ppcStack_30,0);\n    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }\n    goto code_r0x00054491;\n  case 0x13a:\n    FUN_000543d0();\n    goto code_r0x00054491;\n  case 0x13c:\n    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    DAT_001d115c = 1;\n    break;\n  case 0x13e:\n    uVar15 = 0;\n    goto code_r0x00054815;\n  case 0x13f:\n    DAT_001d1158 = 1;\n    break;\n  case 0x140:\n    DAT_001d1154 = 1;\n    break;\n  case 0x141:\n    DAT_001d1150 = 1;\n    break;\n  case 0x142:\n    DAT_001cfc6c = 1;\n    break;\n  case 0x143:\n    DAT_001cfc6c = 0;\n    break;\n  case 0x144:\n    DAT_001d114c = 1;\n    break;\n  case 0x145:\n    DAT_001d1148 = 1;\n    break;\n  case 0x146:\n    DAT_001d0df4 = 1;\n    break;\n  case 0x147:\n    DAT_001d0df4 = 0;\n    break;\n  case 0x148:\n    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    DAT_001d02b8 = 0;\n    break;\n  case 0x14a:\n    DAT_001d1448 = 1;\n    break;\n  case 0x14b:\n    DAT_001d1448 = 0;\n    break;\n  case 0x14c:\n    DAT_001d1144 = 1;\n    break;\n  case 0x14d:\n    uVar15 = 1;\n    goto code_r0x00054815;\n  case 0x14e:\n  case 0x150:\n    DAT_001d144c = 2;\n    break;\n  case 0x14f:\n    DAT_001d144c = 0;\n    break;\n  case 0x151:\n    uVar15 = 2;\ncode_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);\n    break;\n  case 0x152:\n    DAT_001d1140 = 1;\n    break;\n  case 0x153:\n    DAT_001d02b0 = 0;\n    break;\n  case 0x154:\n    DAT_001d02b0 = 1;\n    break;\n  case 0x155:\n    DAT_001d02b4 = 1;\n    break;\n  case 0x156:\n    DAT_001d02b4 = 0;\n    break;\n  case 0x157:\n    uRam001d0e00 = uRam001d0e00 | 0x20;\n    break;\n  case 0x158:\n    uRam001d0e00 = uRam001d0e00 | 0x40;\n    break;\n  case 0x159:\n    uRam001d0e00 = uRam001d0e00 | 0x80;\n    break;\n  case 0x15a:\n    uRam001d0e00 = uRam001d0e00 | 0x100;\n    break;\n  case 0x15b:\n    uRam001d0e00 = uRam001d0e00 | 0x200;\n    break;\n  case 0x15c:\n    uRam001d0e00 = uRam001d0e00 | 0x400;\n    break;\n  case 0x15d:\n    uRam001d0e00 = uRam001d0e00 | 0x800;\n    break;\n  case 0x15e:\n    uRam001d0e00 = uRam001d0e00 | 0x2000;\n    break;\n  case 0x15f:\n    DAT_001cfc70 = 1;\n    break;\n  case 0x160:\n    DAT_001cfc70 = 0;\n    break;\n  case 0x161:\n    uRam001d0e00 = uRam001d0e00 | 0x8000;\n    break;\n  case 0x162:\n    if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }\n    pbVar7 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar7 == (byte *)0x0;\n    if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }\n    DAT_001d0dfc = (void *)xstrdup(pbVar7);\n    break;\n  default:\n    return 0;\n  }" { (case_statement "case 0x12d:\n    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }" case number_literal : (expression_statement "pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");" (assignment_expression "pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w")" identifier = (call_expression "fopen64(*(char **)PTR_optarg_001cefdc,"w")" identifier (argument_list "(*(char **)PTR_optarg_001cefdc,"w")" ( (pointer_expression "*(char **)PTR_optarg_001cefdc" * (cast_expression "(char **)PTR_optarg_001cefdc" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (string_literal ""w"" " string_content ") )))) ;) (if_statement "if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }" if (parenthesized_expression "(pFRam001d142c == (FILE *)0x0)" ( (binary_expression "pFRam001d142c == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }" { (expression_statement "uVar15 = *(undefined4 *)puVar1;" (assignment_expression "uVar15 = *(undefined4 *)puVar1" identifier = (pointer_expression "*(undefined4 *)puVar1" * (cast_expression "(undefined4 *)puVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: cannot open base file %s\n",5)" identifier (argument_list "(0,"%F%P: cannot open base file %s\n",5)" ( number_literal , (string_literal ""%F%P: cannot open base file %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar6,uVar15);" (call_expression "FUN_00034d20(uVar6,uVar15)" identifier (argument_list "(uVar6,uVar15)" ( identifier , identifier ))) ;) (break_statement "break;" break ;) }))) (case_statement "case 0x13b:\ncode_r0x00054491:\n    break;" case number_literal : (labeled_statement "code_r0x00054491:\n    break;" statement_identifier : (break_statement "break;" break ;))) (case_statement "case 0x12e:\n    FUN_00054230();\n    break;" case number_literal : (expression_statement "FUN_00054230();" (call_expression "FUN_00054230()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x12f:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x130:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x131:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x132:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x133:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x134:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x135:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x136:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x137:\n    FUN_00054350();\n    break;" case number_literal : (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x138:\n    FUN_000543d0();\n    break;" case number_literal : (expression_statement "FUN_000543d0();" (call_expression "FUN_000543d0()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x139:\n    pcVar9 = *(char **)PTR_optarg_001cefdc;\n    pcVar3 = strchr(pcVar9,0x3a);\n    if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }\n    ppcStack_30 = apcStack_20;\n    uVar4 = strtoul(pcVar9,ppcStack_30,0);\n    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }\n    goto code_r0x00054491;" case number_literal : (expression_statement "pcVar9 = *(char **)PTR_optarg_001cefdc;" (assignment_expression "pcVar9 = *(char **)PTR_optarg_001cefdc" identifier = (pointer_expression "*(char **)PTR_optarg_001cefdc" * (cast_expression "(char **)PTR_optarg_001cefdc" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar3 = strchr(pcVar9,0x3a);" (assignment_expression "pcVar3 = strchr(pcVar9,0x3a)" identifier = (call_expression "strchr(pcVar9,0x3a)" identifier (argument_list "(pcVar9,0x3a)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      __n = strlen(pcVar9);\n    }" { (expression_statement "__n = strlen(pcVar9);" (assignment_expression "__n = strlen(pcVar9)" identifier = (call_expression "strlen(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) ;) }) (else_clause "else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }" else (compound_statement "{\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }" { (expression_statement "__n = (int)pcVar3 - (int)pcVar9;" (assignment_expression "__n = (int)pcVar3 - (int)pcVar9" identifier = (binary_expression "(int)pcVar3 - (int)pcVar9" (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "strtoul(pcVar3 + 1,apcStack_20,0);" (call_expression "strtoul(pcVar3 + 1,apcStack_20,0)" identifier (argument_list "(pcVar3 + 1,apcStack_20,0)" ( (binary_expression "pcVar3 + 1" identifier + number_literal) , identifier , number_literal ))) ;) (expression_statement "FUN_00054230();" (call_expression "FUN_00054230()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar2 = *apcStack_20[0];" (assignment_expression "cVar2 = *apcStack_20[0]" identifier = (pointer_expression "*apcStack_20[0]" * (subscript_expression "apcStack_20[0]" identifier [ number_literal ]))) ;) (if_statement "if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }" if (parenthesized_expression "(cVar2 == '.')" ( (binary_expression "cVar2 == '.'" identifier == (char_literal "'.'" ' character ')) )) (compound_statement "{\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }" { (expression_statement "strtoul(apcStack_20[0] + 1,apcStack_20,0);" (call_expression "strtoul(apcStack_20[0] + 1,apcStack_20,0)" identifier (argument_list "(apcStack_20[0] + 1,apcStack_20,0)" ( (binary_expression "apcStack_20[0] + 1" (subscript_expression "apcStack_20[0]" identifier [ number_literal ]) + number_literal) , identifier , number_literal ))) ;) (expression_statement "FUN_00054230();" (call_expression "FUN_00054230()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar2 = *apcStack_20[0];" (assignment_expression "cVar2 = *apcStack_20[0]" identifier = (pointer_expression "*apcStack_20[0]" * (subscript_expression "apcStack_20[0]" identifier [ number_literal ]))) ;) })) (if_statement "if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar9 = *(char **)puVar1;\n      }" { (expression_statement "pcVar9 = *(char **)puVar1;" (assignment_expression "pcVar9 = *(char **)puVar1" identifier = (pointer_expression "*(char **)puVar1" * (cast_expression "(char **)puVar1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) }) (else_clause "else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }" else (compound_statement "{\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }" { (expression_statement "uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);" (assignment_expression "uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5)" identifier = (call_expression "dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5)" identifier (argument_list "(0,"%P: warning: bad version number in -subsystem option\n",5)" ( number_literal , (string_literal ""%P: warning: bad version number in -subsystem option\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar15);" (call_expression "FUN_00034d20(uVar15)" identifier (argument_list "(uVar15)" ( identifier ))) ;) (expression_statement "pcVar9 = *(char **)puVar1;" (assignment_expression "pcVar9 = *(char **)puVar1" identifier = (pointer_expression "*(char **)puVar1" * (cast_expression "(char **)puVar1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) }))) }))) (expression_statement "ppcStack_30 = apcStack_20;" (assignment_expression "ppcStack_30 = apcStack_20" identifier = identifier) ;) (expression_statement "uVar4 = strtoul(pcVar9,ppcStack_30,0);" (assignment_expression "uVar4 = strtoul(pcVar9,ppcStack_30,0)" identifier = (call_expression "strtoul(pcVar9,ppcStack_30,0)" identifier (argument_list "(pcVar9,ppcStack_30,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }" if (parenthesized_expression "((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000))" ( (binary_expression "(*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)" (parenthesized_expression "(*apcStack_20[0] == ':' || *apcStack_20[0] == '\0')" ( (binary_expression "*apcStack_20[0] == ':' || *apcStack_20[0] == '\0'" (binary_expression "*apcStack_20[0] == ':'" (pointer_expression "*apcStack_20[0]" * (subscript_expression "apcStack_20[0]" identifier [ number_literal ])) == (char_literal "':'" ' character ')) || (binary_expression "*apcStack_20[0] == '\0'" (pointer_expression "*apcStack_20[0]" * (subscript_expression "apcStack_20[0]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence '))) )) && (parenthesized_expression "(uVar4 < 0x10000)" ( (binary_expression "uVar4 < 0x10000" identifier < number_literal) ))) )) (compound_statement "{\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }" { (labeled_statement "code_r0x00054481:\n      DAT_001cfc74 = uVar4;" statement_identifier : (expression_statement "DAT_001cfc74 = uVar4;" (assignment_expression "DAT_001cfc74 = uVar4" identifier = identifier) ;)) (expression_statement "FUN_00054230();" (call_expression "FUN_00054230()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }" else (compound_statement "{\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }" { (expression_statement "pcVar3 = *(char **)puVar1;" (assignment_expression "pcVar3 = *(char **)puVar1" identifier = (pointer_expression "*(char **)puVar1" * (cast_expression "(char **)puVar1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar9 = "native";" (assignment_expression "pcVar9 = "native"" identifier = (string_literal ""native"" " string_content ")) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);" do (compound_statement "{\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      }" { (expression_statement "iVar5 = strncmp(pcVar3,pcVar9,__n);" (assignment_expression "iVar5 = strncmp(pcVar3,pcVar9,__n)" identifier = (call_expression "strncmp(pcVar3,pcVar9,__n)" identifier (argument_list "(pcVar3,pcVar9,__n)" ( identifier , identifier , identifier )))) ;) (if_statement "if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }" if (parenthesized_expression "((iVar5 == 0) && (pcVar9[__n] == '\0'))" ( (binary_expression "(iVar5 == 0) && (pcVar9[__n] == '\0')" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar9[__n] == '\0')" ( (binary_expression "pcVar9[__n] == '\0'" (subscript_expression "pcVar9[__n]" identifier [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }" { (expression_statement "uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);" (assignment_expression "uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8)" identifier = (pointer_expression "*(ulong *)(&UNK_001ce484 + iVar8 * 8)" * (cast_expression "(ulong *)(&UNK_001ce484 + iVar8 * 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_001ce484 + iVar8 * 8)" ( (binary_expression "&UNK_001ce484 + iVar8 * 8" (pointer_expression "&UNK_001ce484" & identifier) + (binary_expression "iVar8 * 8" identifier * number_literal)) ))))) ;) (goto_statement "goto code_r0x00054481;" goto statement_identifier ;) })) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);" (assignment_expression "pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8)" identifier = (pointer_expression "*(char **)(&UNK_001ce480 + iVar8 * 8)" * (cast_expression "(char **)(&UNK_001ce480 + iVar8 * 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&UNK_001ce480 + iVar8 * 8)" ( (binary_expression "&UNK_001ce480 + iVar8 * 8" (pointer_expression "&UNK_001ce480" & identifier) + (binary_expression "iVar8 * 8" identifier * number_literal)) ))))) ;) }) while (parenthesized_expression "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);" (assignment_expression "uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: invalid subsystem type %s\n",5)" identifier (argument_list "(0,"%F%P: invalid subsystem type %s\n",5)" ( number_literal , (string_literal ""%F%P: invalid subsystem type %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar15,pcVar3);" (call_expression "FUN_00034d20(uVar15,pcVar3)" identifier (argument_list "(uVar15,pcVar3)" ( identifier , identifier ))) ;) }))) (goto_statement "goto code_r0x00054491;" goto statement_identifier ;)) (case_statement "case 0x13a:\n    FUN_000543d0();\n    goto code_r0x00054491;" case number_literal : (expression_statement "FUN_000543d0();" (call_expression "FUN_000543d0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x00054491;" goto statement_identifier ;)) (case_statement "case 0x13c:\n    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;" case number_literal : (expression_statement "DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);" (assignment_expression "DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" identifier = (call_expression "xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" identifier (argument_list "(*(undefined4 *)PTR_optarg_001cefdc)" ( (pointer_expression "*(undefined4 *)PTR_optarg_001cefdc" * (cast_expression "(undefined4 *)PTR_optarg_001cefdc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x13d:\n    DAT_001d115c = 1;\n    break;" case number_literal : (expression_statement "DAT_001d115c = 1;" (assignment_expression "DAT_001d115c = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x13e:\n    uVar15 = 0;\n    goto code_r0x00054815;" case number_literal : (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (goto_statement "goto code_r0x00054815;" goto statement_identifier ;)) (case_statement "case 0x13f:\n    DAT_001d1158 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d1158 = 1;" (assignment_expression "DAT_001d1158 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x140:\n    DAT_001d1154 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d1154 = 1;" (assignment_expression "DAT_001d1154 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x141:\n    DAT_001d1150 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d1150 = 1;" (assignment_expression "DAT_001d1150 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x142:\n    DAT_001cfc6c = 1;\n    break;" case number_literal : (expression_statement "DAT_001cfc6c = 1;" (assignment_expression "DAT_001cfc6c = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x143:\n    DAT_001cfc6c = 0;\n    break;" case number_literal : (expression_statement "DAT_001cfc6c = 0;" (assignment_expression "DAT_001cfc6c = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x144:\n    DAT_001d114c = 1;\n    break;" case number_literal : (expression_statement "DAT_001d114c = 1;" (assignment_expression "DAT_001d114c = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x145:\n    DAT_001d1148 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d1148 = 1;" (assignment_expression "DAT_001d1148 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x146:\n    DAT_001d0df4 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d0df4 = 1;" (assignment_expression "DAT_001d0df4 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x147:\n    DAT_001d0df4 = 0;\n    break;" case number_literal : (expression_statement "DAT_001d0df4 = 0;" (assignment_expression "DAT_001d0df4 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x148:\n    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;" case number_literal : (expression_statement "DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);" (assignment_expression "DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" identifier = (call_expression "xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" identifier (argument_list "(*(undefined4 *)PTR_optarg_001cefdc)" ( (pointer_expression "*(undefined4 *)PTR_optarg_001cefdc" * (cast_expression "(undefined4 *)PTR_optarg_001cefdc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x149:\n    DAT_001d02b8 = 0;\n    break;" case number_literal : (expression_statement "DAT_001d02b8 = 0;" (assignment_expression "DAT_001d02b8 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x14a:\n    DAT_001d1448 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d1448 = 1;" (assignment_expression "DAT_001d1448 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x14b:\n    DAT_001d1448 = 0;\n    break;" case number_literal : (expression_statement "DAT_001d1448 = 0;" (assignment_expression "DAT_001d1448 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x14c:\n    DAT_001d1144 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d1144 = 1;" (assignment_expression "DAT_001d1144 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x14d:\n    uVar15 = 1;\n    goto code_r0x00054815;" case number_literal : (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" identifier = number_literal) ;) (goto_statement "goto code_r0x00054815;" goto statement_identifier ;)) (case_statement "case 0x14e:" case number_literal :) (case_statement "case 0x150:\n    DAT_001d144c = 2;\n    break;" case number_literal : (expression_statement "DAT_001d144c = 2;" (assignment_expression "DAT_001d144c = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x14f:\n    DAT_001d144c = 0;\n    break;" case number_literal : (expression_statement "DAT_001d144c = 0;" (assignment_expression "DAT_001d144c = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x151:\n    uVar15 = 2;\ncode_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);\n    break;" case number_literal : (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" identifier = number_literal) ;) (labeled_statement "code_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);" statement_identifier : (expression_statement "FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);" (call_expression "FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15)" identifier (argument_list "(*(undefined4 *)PTR_optarg_001cefdc,uVar15)" ( (pointer_expression "*(undefined4 *)PTR_optarg_001cefdc" * (cast_expression "(undefined4 *)PTR_optarg_001cefdc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , identifier ))) ;)) (break_statement "break;" break ;)) (case_statement "case 0x152:\n    DAT_001d1140 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d1140 = 1;" (assignment_expression "DAT_001d1140 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x153:\n    DAT_001d02b0 = 0;\n    break;" case number_literal : (expression_statement "DAT_001d02b0 = 0;" (assignment_expression "DAT_001d02b0 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x154:\n    DAT_001d02b0 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d02b0 = 1;" (assignment_expression "DAT_001d02b0 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x155:\n    DAT_001d02b4 = 1;\n    break;" case number_literal : (expression_statement "DAT_001d02b4 = 1;" (assignment_expression "DAT_001d02b4 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x156:\n    DAT_001d02b4 = 0;\n    break;" case number_literal : (expression_statement "DAT_001d02b4 = 0;" (assignment_expression "DAT_001d02b4 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x157:\n    uRam001d0e00 = uRam001d0e00 | 0x20;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x20;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x20" identifier = (binary_expression "uRam001d0e00 | 0x20" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x158:\n    uRam001d0e00 = uRam001d0e00 | 0x40;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x40;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x40" identifier = (binary_expression "uRam001d0e00 | 0x40" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x159:\n    uRam001d0e00 = uRam001d0e00 | 0x80;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x80;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x80" identifier = (binary_expression "uRam001d0e00 | 0x80" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15a:\n    uRam001d0e00 = uRam001d0e00 | 0x100;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x100;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x100" identifier = (binary_expression "uRam001d0e00 | 0x100" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15b:\n    uRam001d0e00 = uRam001d0e00 | 0x200;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x200;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x200" identifier = (binary_expression "uRam001d0e00 | 0x200" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15c:\n    uRam001d0e00 = uRam001d0e00 | 0x400;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x400;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x400" identifier = (binary_expression "uRam001d0e00 | 0x400" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15d:\n    uRam001d0e00 = uRam001d0e00 | 0x800;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x800;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x800" identifier = (binary_expression "uRam001d0e00 | 0x800" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15e:\n    uRam001d0e00 = uRam001d0e00 | 0x2000;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x2000;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x2000" identifier = (binary_expression "uRam001d0e00 | 0x2000" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x15f:\n    DAT_001cfc70 = 1;\n    break;" case number_literal : (expression_statement "DAT_001cfc70 = 1;" (assignment_expression "DAT_001cfc70 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x160:\n    DAT_001cfc70 = 0;\n    break;" case number_literal : (expression_statement "DAT_001cfc70 = 0;" (assignment_expression "DAT_001cfc70 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x161:\n    uRam001d0e00 = uRam001d0e00 | 0x8000;\n    break;" case number_literal : (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x8000;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x8000" identifier = (binary_expression "uRam001d0e00 | 0x8000" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x162:\n    if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }\n    pbVar7 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar7 == (byte *)0x0;\n    if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }\n    DAT_001d0dfc = (void *)xstrdup(pbVar7);\n    break;" case number_literal : (if_statement "if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }" if (parenthesized_expression "(DAT_001d0dfc != (void *)0x0)" ( (binary_expression "DAT_001d0dfc != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }" { (expression_statement "free(DAT_001d0dfc);" (call_expression "free(DAT_001d0dfc)" identifier (argument_list "(DAT_001d0dfc)" ( identifier ))) ;) (expression_statement "DAT_001d0dfc = (void *)0x0;" (assignment_expression "DAT_001d0dfc = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "pbVar7 = *(byte **)PTR_optarg_001cefdc;" (assignment_expression "pbVar7 = *(byte **)PTR_optarg_001cefdc" identifier = (pointer_expression "*(byte **)PTR_optarg_001cefdc" * (cast_expression "(byte **)PTR_optarg_001cefdc" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar13 = pbVar7 == (byte *)0x0;" (assignment_expression "bVar13 = pbVar7 == (byte *)0x0" identifier = (binary_expression "pbVar7 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }" { (expression_statement "pbVar7 = &DAT_0007e2c4;" (assignment_expression "pbVar7 = &DAT_0007e2c4" identifier = (pointer_expression "&DAT_0007e2c4" & identifier)) ;) (expression_statement "*(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;" (assignment_expression "*(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4" (pointer_expression "*(undefined1 **)PTR_optarg_001cefdc" * (cast_expression "(undefined1 **)PTR_optarg_001cefdc" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (pointer_expression "&DAT_0007e2c4" & identifier)) ;) }) (else_clause "else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }" else (compound_statement "{\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }" { (expression_statement "iVar8 = 5;" (assignment_expression "iVar8 = 5" identifier = number_literal) ;) (expression_statement "pbVar10 = pbVar7;" (assignment_expression "pbVar10 = pbVar7" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)0x79bf4;" (assignment_expression "pbVar11 = (byte *)0x79bf4" identifier = (cast_expression "(byte *)0x79bf4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);" do (compound_statement "{\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar10 < *pbVar11;" (assignment_expression "bVar12 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar13 = *pbVar10 == *pbVar11;" (assignment_expression "bVar13 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;" if (parenthesized_expression "((!bVar12 && !bVar13) == bVar12)" ( (binary_expression "(!bVar12 && !bVar13) == bVar12" (parenthesized_expression "(!bVar12 && !bVar13)" ( (binary_expression "!bVar12 && !bVar13" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) (goto_statement "goto code_r0x00054491;" goto statement_identifier ;)) }))) (expression_statement "DAT_001d0dfc = (void *)xstrdup(pbVar7);" (assignment_expression "DAT_001d0dfc = (void *)xstrdup(pbVar7)" identifier = (cast_expression "(void *)xstrdup(pbVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pbVar7)" identifier (argument_list "(pbVar7)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    return 0;" default : (return_statement "return 0;" return number_literal ;)) })) (expression_statement "FUN_00054230();" (call_expression "FUN_00054230()" identifier (argument_list "()" ( ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (break_statement break ;) }))) (case_statement case LIT : (labeled_statement statement_identifier : (break_statement break ;))) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (subscript_expression IDENT [ LIT ]))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) }))) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (subscript_expression IDENT [ LIT ])) == (char_literal ' character ')) || (binary_expression (pointer_expression * (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence '))) )) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , IDENT ))) ;)) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (break_statement break ;)) (case_statement default : (return_statement return LIT ;)) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_00054440(undefined4 param_1)\n\n{\n  undefined *puVar1;\n  char cVar2;\n  char *pcVar3;\n  ulong uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte *pbVar7;\n  int iVar8;\n  char *pcVar9;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined4 uVar15;\n  char **ppcStack_30;\n  char *apcStack_20 [3];\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x54449;\n  FUN_00052dd0();\n  puVar1 = PTR_optarg_001cefdc;\n  switch(param_1) {\n  case 0x12d:\n    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }\n  case 0x13b:\ncode_r0x00054491:\n    break;\n  case 0x12e:\n    FUN_00054230();\n    break;\n  case 0x12f:\n    FUN_00054350();\n    break;\n  case 0x130:\n    FUN_00054350();\n    break;\n  case 0x131:\n    FUN_00054350();\n    break;\n  case 0x132:\n    FUN_00054350();\n    break;\n  case 0x133:\n    FUN_00054350();\n    break;\n  case 0x134:\n    FUN_00054350();\n    break;\n  case 0x135:\n    FUN_00054350();\n    break;\n  case 0x136:\n    FUN_00054350();\n    break;\n  case 0x137:\n    FUN_00054350();\n    break;\n  case 0x138:\n    FUN_000543d0();\n    break;\n  case 0x139:\n    pcVar9 = *(char **)PTR_optarg_001cefdc;\n    pcVar3 = strchr(pcVar9,0x3a);\n    if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }\n    ppcStack_30 = apcStack_20;\n    uVar4 = strtoul(pcVar9,ppcStack_30,0);\n    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }\n    goto code_r0x00054491;\n  case 0x13a:\n    FUN_000543d0();\n    goto code_r0x00054491;\n  case 0x13c:\n    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    DAT_001d115c = 1;\n    break;\n  case 0x13e:\n    uVar15 = 0;\n    goto code_r0x00054815;\n  case 0x13f:\n    DAT_001d1158 = 1;\n    break;\n  case 0x140:\n    DAT_001d1154 = 1;\n    break;\n  case 0x141:\n    DAT_001d1150 = 1;\n    break;\n  case 0x142:\n    DAT_001cfc6c = 1;\n    break;\n  case 0x143:\n    DAT_001cfc6c = 0;\n    break;\n  case 0x144:\n    DAT_001d114c = 1;\n    break;\n  case 0x145:\n    DAT_001d1148 = 1;\n    break;\n  case 0x146:\n    DAT_001d0df4 = 1;\n    break;\n  case 0x147:\n    DAT_001d0df4 = 0;\n    break;\n  case 0x148:\n    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    DAT_001d02b8 = 0;\n    break;\n  case 0x14a:\n    DAT_001d1448 = 1;\n    break;\n  case 0x14b:\n    DAT_001d1448 = 0;\n    break;\n  case 0x14c:\n    DAT_001d1144 = 1;\n    break;\n  case 0x14d:\n    uVar15 = 1;\n    goto code_r0x00054815;\n  case 0x14e:\n  case 0x150:\n    DAT_001d144c = 2;\n    break;\n  case 0x14f:\n    DAT_001d144c = 0;\n    break;\n  case 0x151:\n    uVar15 = 2;\ncode_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);\n    break;\n  case 0x152:\n    DAT_001d1140 = 1;\n    break;\n  case 0x153:\n    DAT_001d02b0 = 0;\n    break;\n  case 0x154:\n    DAT_001d02b0 = 1;\n    break;\n  case 0x155:\n    DAT_001d02b4 = 1;\n    break;\n  case 0x156:\n    DAT_001d02b4 = 0;\n    break;\n  case 0x157:\n    uRam001d0e00 = uRam001d0e00 | 0x20;\n    break;\n  case 0x158:\n    uRam001d0e00 = uRam001d0e00 | 0x40;\n    break;\n  case 0x159:\n    uRam001d0e00 = uRam001d0e00 | 0x80;\n    break;\n  case 0x15a:\n    uRam001d0e00 = uRam001d0e00 | 0x100;\n    break;\n  case 0x15b:\n    uRam001d0e00 = uRam001d0e00 | 0x200;\n    break;\n  case 0x15c:\n    uRam001d0e00 = uRam001d0e00 | 0x400;\n    break;\n  case 0x15d:\n    uRam001d0e00 = uRam001d0e00 | 0x800;\n    break;\n  case 0x15e:\n    uRam001d0e00 = uRam001d0e00 | 0x2000;\n    break;\n  case 0x15f:\n    DAT_001cfc70 = 1;\n    break;\n  case 0x160:\n    DAT_001cfc70 = 0;\n    break;\n  case 0x161:\n    uRam001d0e00 = uRam001d0e00 | 0x8000;\n    break;\n  case 0x162:\n    if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }\n    pbVar7 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar7 == (byte *)0x0;\n    if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }\n    DAT_001d0dfc = (void *)xstrdup(pbVar7);\n    break;\n  default:\n    return 0;\n  }\n  FUN_00054230();\n  return 1;\n}" (type_identifier "undefined4") (function_declarator "FUN_00054440(undefined4 param_1)" (identifier "FUN_00054440") (parameter_list "(undefined4 param_1)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  char cVar2;\n  char *pcVar3;\n  ulong uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  byte *pbVar7;\n  int iVar8;\n  char *pcVar9;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  undefined4 uVar15;\n  char **ppcStack_30;\n  char *apcStack_20 [3];\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0x54449;\n  FUN_00052dd0();\n  puVar1 = PTR_optarg_001cefdc;\n  switch(param_1) {\n  case 0x12d:\n    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }\n  case 0x13b:\ncode_r0x00054491:\n    break;\n  case 0x12e:\n    FUN_00054230();\n    break;\n  case 0x12f:\n    FUN_00054350();\n    break;\n  case 0x130:\n    FUN_00054350();\n    break;\n  case 0x131:\n    FUN_00054350();\n    break;\n  case 0x132:\n    FUN_00054350();\n    break;\n  case 0x133:\n    FUN_00054350();\n    break;\n  case 0x134:\n    FUN_00054350();\n    break;\n  case 0x135:\n    FUN_00054350();\n    break;\n  case 0x136:\n    FUN_00054350();\n    break;\n  case 0x137:\n    FUN_00054350();\n    break;\n  case 0x138:\n    FUN_000543d0();\n    break;\n  case 0x139:\n    pcVar9 = *(char **)PTR_optarg_001cefdc;\n    pcVar3 = strchr(pcVar9,0x3a);\n    if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }\n    ppcStack_30 = apcStack_20;\n    uVar4 = strtoul(pcVar9,ppcStack_30,0);\n    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }\n    goto code_r0x00054491;\n  case 0x13a:\n    FUN_000543d0();\n    goto code_r0x00054491;\n  case 0x13c:\n    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    DAT_001d115c = 1;\n    break;\n  case 0x13e:\n    uVar15 = 0;\n    goto code_r0x00054815;\n  case 0x13f:\n    DAT_001d1158 = 1;\n    break;\n  case 0x140:\n    DAT_001d1154 = 1;\n    break;\n  case 0x141:\n    DAT_001d1150 = 1;\n    break;\n  case 0x142:\n    DAT_001cfc6c = 1;\n    break;\n  case 0x143:\n    DAT_001cfc6c = 0;\n    break;\n  case 0x144:\n    DAT_001d114c = 1;\n    break;\n  case 0x145:\n    DAT_001d1148 = 1;\n    break;\n  case 0x146:\n    DAT_001d0df4 = 1;\n    break;\n  case 0x147:\n    DAT_001d0df4 = 0;\n    break;\n  case 0x148:\n    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    DAT_001d02b8 = 0;\n    break;\n  case 0x14a:\n    DAT_001d1448 = 1;\n    break;\n  case 0x14b:\n    DAT_001d1448 = 0;\n    break;\n  case 0x14c:\n    DAT_001d1144 = 1;\n    break;\n  case 0x14d:\n    uVar15 = 1;\n    goto code_r0x00054815;\n  case 0x14e:\n  case 0x150:\n    DAT_001d144c = 2;\n    break;\n  case 0x14f:\n    DAT_001d144c = 0;\n    break;\n  case 0x151:\n    uVar15 = 2;\ncode_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);\n    break;\n  case 0x152:\n    DAT_001d1140 = 1;\n    break;\n  case 0x153:\n    DAT_001d02b0 = 0;\n    break;\n  case 0x154:\n    DAT_001d02b0 = 1;\n    break;\n  case 0x155:\n    DAT_001d02b4 = 1;\n    break;\n  case 0x156:\n    DAT_001d02b4 = 0;\n    break;\n  case 0x157:\n    uRam001d0e00 = uRam001d0e00 | 0x20;\n    break;\n  case 0x158:\n    uRam001d0e00 = uRam001d0e00 | 0x40;\n    break;\n  case 0x159:\n    uRam001d0e00 = uRam001d0e00 | 0x80;\n    break;\n  case 0x15a:\n    uRam001d0e00 = uRam001d0e00 | 0x100;\n    break;\n  case 0x15b:\n    uRam001d0e00 = uRam001d0e00 | 0x200;\n    break;\n  case 0x15c:\n    uRam001d0e00 = uRam001d0e00 | 0x400;\n    break;\n  case 0x15d:\n    uRam001d0e00 = uRam001d0e00 | 0x800;\n    break;\n  case 0x15e:\n    uRam001d0e00 = uRam001d0e00 | 0x2000;\n    break;\n  case 0x15f:\n    DAT_001cfc70 = 1;\n    break;\n  case 0x160:\n    DAT_001cfc70 = 0;\n    break;\n  case 0x161:\n    uRam001d0e00 = uRam001d0e00 | 0x8000;\n    break;\n  case 0x162:\n    if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }\n    pbVar7 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar7 == (byte *)0x0;\n    if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }\n    DAT_001d0dfc = (void *)xstrdup(pbVar7);\n    break;\n  default:\n    return 0;\n  }\n  FUN_00054230();\n  return 1;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "ulong uVar4;" (type_identifier "ulong") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "bool bVar12;" (primitive_type "bool") (identifier "bVar12") (; ";")) (declaration "bool bVar13;" (primitive_type "bool") (identifier "bVar13") (; ";")) (declaration "byte bVar14;" (type_identifier "byte") (identifier "bVar14") (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "char **ppcStack_30;" (primitive_type "char") (pointer_declarator "**ppcStack_30" (* "*") (pointer_declarator "*ppcStack_30" (* "*") (identifier "ppcStack_30"))) (; ";")) (declaration "char *apcStack_20 [3];" (primitive_type "char") (pointer_declarator "*apcStack_20 [3]" (* "*") (array_declarator "apcStack_20 [3]" (identifier "apcStack_20") ([ "[") (number_literal "3") (] "]"))) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x54449;" (assignment_expression "uStack_14 = 0x54449" (identifier "uStack_14") (= "=") (number_literal "0x54449")) (; ";")) (expression_statement "FUN_00052dd0();" (call_expression "FUN_00052dd0()" (identifier "FUN_00052dd0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar1 = PTR_optarg_001cefdc;" (assignment_expression "puVar1 = PTR_optarg_001cefdc" (identifier "puVar1") (= "=") (identifier "PTR_optarg_001cefdc")) (; ";")) (switch_statement "switch(param_1) {\n  case 0x12d:\n    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }\n  case 0x13b:\ncode_r0x00054491:\n    break;\n  case 0x12e:\n    FUN_00054230();\n    break;\n  case 0x12f:\n    FUN_00054350();\n    break;\n  case 0x130:\n    FUN_00054350();\n    break;\n  case 0x131:\n    FUN_00054350();\n    break;\n  case 0x132:\n    FUN_00054350();\n    break;\n  case 0x133:\n    FUN_00054350();\n    break;\n  case 0x134:\n    FUN_00054350();\n    break;\n  case 0x135:\n    FUN_00054350();\n    break;\n  case 0x136:\n    FUN_00054350();\n    break;\n  case 0x137:\n    FUN_00054350();\n    break;\n  case 0x138:\n    FUN_000543d0();\n    break;\n  case 0x139:\n    pcVar9 = *(char **)PTR_optarg_001cefdc;\n    pcVar3 = strchr(pcVar9,0x3a);\n    if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }\n    ppcStack_30 = apcStack_20;\n    uVar4 = strtoul(pcVar9,ppcStack_30,0);\n    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }\n    goto code_r0x00054491;\n  case 0x13a:\n    FUN_000543d0();\n    goto code_r0x00054491;\n  case 0x13c:\n    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    DAT_001d115c = 1;\n    break;\n  case 0x13e:\n    uVar15 = 0;\n    goto code_r0x00054815;\n  case 0x13f:\n    DAT_001d1158 = 1;\n    break;\n  case 0x140:\n    DAT_001d1154 = 1;\n    break;\n  case 0x141:\n    DAT_001d1150 = 1;\n    break;\n  case 0x142:\n    DAT_001cfc6c = 1;\n    break;\n  case 0x143:\n    DAT_001cfc6c = 0;\n    break;\n  case 0x144:\n    DAT_001d114c = 1;\n    break;\n  case 0x145:\n    DAT_001d1148 = 1;\n    break;\n  case 0x146:\n    DAT_001d0df4 = 1;\n    break;\n  case 0x147:\n    DAT_001d0df4 = 0;\n    break;\n  case 0x148:\n    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    DAT_001d02b8 = 0;\n    break;\n  case 0x14a:\n    DAT_001d1448 = 1;\n    break;\n  case 0x14b:\n    DAT_001d1448 = 0;\n    break;\n  case 0x14c:\n    DAT_001d1144 = 1;\n    break;\n  case 0x14d:\n    uVar15 = 1;\n    goto code_r0x00054815;\n  case 0x14e:\n  case 0x150:\n    DAT_001d144c = 2;\n    break;\n  case 0x14f:\n    DAT_001d144c = 0;\n    break;\n  case 0x151:\n    uVar15 = 2;\ncode_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);\n    break;\n  case 0x152:\n    DAT_001d1140 = 1;\n    break;\n  case 0x153:\n    DAT_001d02b0 = 0;\n    break;\n  case 0x154:\n    DAT_001d02b0 = 1;\n    break;\n  case 0x155:\n    DAT_001d02b4 = 1;\n    break;\n  case 0x156:\n    DAT_001d02b4 = 0;\n    break;\n  case 0x157:\n    uRam001d0e00 = uRam001d0e00 | 0x20;\n    break;\n  case 0x158:\n    uRam001d0e00 = uRam001d0e00 | 0x40;\n    break;\n  case 0x159:\n    uRam001d0e00 = uRam001d0e00 | 0x80;\n    break;\n  case 0x15a:\n    uRam001d0e00 = uRam001d0e00 | 0x100;\n    break;\n  case 0x15b:\n    uRam001d0e00 = uRam001d0e00 | 0x200;\n    break;\n  case 0x15c:\n    uRam001d0e00 = uRam001d0e00 | 0x400;\n    break;\n  case 0x15d:\n    uRam001d0e00 = uRam001d0e00 | 0x800;\n    break;\n  case 0x15e:\n    uRam001d0e00 = uRam001d0e00 | 0x2000;\n    break;\n  case 0x15f:\n    DAT_001cfc70 = 1;\n    break;\n  case 0x160:\n    DAT_001cfc70 = 0;\n    break;\n  case 0x161:\n    uRam001d0e00 = uRam001d0e00 | 0x8000;\n    break;\n  case 0x162:\n    if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }\n    pbVar7 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar7 == (byte *)0x0;\n    if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }\n    DAT_001d0dfc = (void *)xstrdup(pbVar7);\n    break;\n  default:\n    return 0;\n  }" (switch "switch") (parenthesized_expression "(param_1)" (( "(") (identifier "param_1") () ")")) (compound_statement "{\n  case 0x12d:\n    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }\n  case 0x13b:\ncode_r0x00054491:\n    break;\n  case 0x12e:\n    FUN_00054230();\n    break;\n  case 0x12f:\n    FUN_00054350();\n    break;\n  case 0x130:\n    FUN_00054350();\n    break;\n  case 0x131:\n    FUN_00054350();\n    break;\n  case 0x132:\n    FUN_00054350();\n    break;\n  case 0x133:\n    FUN_00054350();\n    break;\n  case 0x134:\n    FUN_00054350();\n    break;\n  case 0x135:\n    FUN_00054350();\n    break;\n  case 0x136:\n    FUN_00054350();\n    break;\n  case 0x137:\n    FUN_00054350();\n    break;\n  case 0x138:\n    FUN_000543d0();\n    break;\n  case 0x139:\n    pcVar9 = *(char **)PTR_optarg_001cefdc;\n    pcVar3 = strchr(pcVar9,0x3a);\n    if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }\n    ppcStack_30 = apcStack_20;\n    uVar4 = strtoul(pcVar9,ppcStack_30,0);\n    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }\n    goto code_r0x00054491;\n  case 0x13a:\n    FUN_000543d0();\n    goto code_r0x00054491;\n  case 0x13c:\n    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x13d:\n    DAT_001d115c = 1;\n    break;\n  case 0x13e:\n    uVar15 = 0;\n    goto code_r0x00054815;\n  case 0x13f:\n    DAT_001d1158 = 1;\n    break;\n  case 0x140:\n    DAT_001d1154 = 1;\n    break;\n  case 0x141:\n    DAT_001d1150 = 1;\n    break;\n  case 0x142:\n    DAT_001cfc6c = 1;\n    break;\n  case 0x143:\n    DAT_001cfc6c = 0;\n    break;\n  case 0x144:\n    DAT_001d114c = 1;\n    break;\n  case 0x145:\n    DAT_001d1148 = 1;\n    break;\n  case 0x146:\n    DAT_001d0df4 = 1;\n    break;\n  case 0x147:\n    DAT_001d0df4 = 0;\n    break;\n  case 0x148:\n    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;\n  case 0x149:\n    DAT_001d02b8 = 0;\n    break;\n  case 0x14a:\n    DAT_001d1448 = 1;\n    break;\n  case 0x14b:\n    DAT_001d1448 = 0;\n    break;\n  case 0x14c:\n    DAT_001d1144 = 1;\n    break;\n  case 0x14d:\n    uVar15 = 1;\n    goto code_r0x00054815;\n  case 0x14e:\n  case 0x150:\n    DAT_001d144c = 2;\n    break;\n  case 0x14f:\n    DAT_001d144c = 0;\n    break;\n  case 0x151:\n    uVar15 = 2;\ncode_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);\n    break;\n  case 0x152:\n    DAT_001d1140 = 1;\n    break;\n  case 0x153:\n    DAT_001d02b0 = 0;\n    break;\n  case 0x154:\n    DAT_001d02b0 = 1;\n    break;\n  case 0x155:\n    DAT_001d02b4 = 1;\n    break;\n  case 0x156:\n    DAT_001d02b4 = 0;\n    break;\n  case 0x157:\n    uRam001d0e00 = uRam001d0e00 | 0x20;\n    break;\n  case 0x158:\n    uRam001d0e00 = uRam001d0e00 | 0x40;\n    break;\n  case 0x159:\n    uRam001d0e00 = uRam001d0e00 | 0x80;\n    break;\n  case 0x15a:\n    uRam001d0e00 = uRam001d0e00 | 0x100;\n    break;\n  case 0x15b:\n    uRam001d0e00 = uRam001d0e00 | 0x200;\n    break;\n  case 0x15c:\n    uRam001d0e00 = uRam001d0e00 | 0x400;\n    break;\n  case 0x15d:\n    uRam001d0e00 = uRam001d0e00 | 0x800;\n    break;\n  case 0x15e:\n    uRam001d0e00 = uRam001d0e00 | 0x2000;\n    break;\n  case 0x15f:\n    DAT_001cfc70 = 1;\n    break;\n  case 0x160:\n    DAT_001cfc70 = 0;\n    break;\n  case 0x161:\n    uRam001d0e00 = uRam001d0e00 | 0x8000;\n    break;\n  case 0x162:\n    if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }\n    pbVar7 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar7 == (byte *)0x0;\n    if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }\n    DAT_001d0dfc = (void *)xstrdup(pbVar7);\n    break;\n  default:\n    return 0;\n  }" ({ "{") (case_statement "case 0x12d:\n    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");\n    if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }" (case "case") (number_literal "0x12d") (: ":") (expression_statement "pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");" (assignment_expression "pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w")" (identifier "pFRam001d142c") (= "=") (call_expression "fopen64(*(char **)PTR_optarg_001cefdc,"w")" (identifier "fopen64") (argument_list "(*(char **)PTR_optarg_001cefdc,"w")" (( "(") (pointer_expression "*(char **)PTR_optarg_001cefdc" (* "*") (cast_expression "(char **)PTR_optarg_001cefdc" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_optarg_001cefdc"))) (, ",") (string_literal ""w"" (" """) (string_content "w") (" """)) () ")")))) (; ";")) (if_statement "if (pFRam001d142c == (FILE *)0x0) {\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }" (if "if") (parenthesized_expression "(pFRam001d142c == (FILE *)0x0)" (( "(") (binary_expression "pFRam001d142c == (FILE *)0x0" (identifier "pFRam001d142c") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar15 = *(undefined4 *)puVar1;\n      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);\n      FUN_00034d20(uVar6,uVar15);\n      break;\n    }" ({ "{") (expression_statement "uVar15 = *(undefined4 *)puVar1;" (assignment_expression "uVar15 = *(undefined4 *)puVar1" (identifier "uVar15") (= "=") (pointer_expression "*(undefined4 *)puVar1" (* "*") (cast_expression "(undefined4 *)puVar1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) (; ";")) (expression_statement "uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"%F%P: cannot open base file %s\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: cannot open base file %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: cannot open base file %s\n"" (" """) (string_content "%F%P: cannot open base file %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar6,uVar15);" (call_expression "FUN_00034d20(uVar6,uVar15)" (identifier "FUN_00034d20") (argument_list "(uVar6,uVar15)" (( "(") (identifier "uVar6") (, ",") (identifier "uVar15") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}")))) (case_statement "case 0x13b:\ncode_r0x00054491:\n    break;" (case "case") (number_literal "0x13b") (: ":") (labeled_statement "code_r0x00054491:\n    break;" (statement_identifier "code_r0x00054491") (: ":") (break_statement "break;" (break "break") (; ";")))) (case_statement "case 0x12e:\n    FUN_00054230();\n    break;" (case "case") (number_literal "0x12e") (: ":") (expression_statement "FUN_00054230();" (call_expression "FUN_00054230()" (identifier "FUN_00054230") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x12f:\n    FUN_00054350();\n    break;" (case "case") (number_literal "0x12f") (: ":") (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" (identifier "FUN_00054350") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x130:\n    FUN_00054350();\n    break;" (case "case") (number_literal "0x130") (: ":") (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" (identifier "FUN_00054350") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x131:\n    FUN_00054350();\n    break;" (case "case") (number_literal "0x131") (: ":") (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" (identifier "FUN_00054350") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x132:\n    FUN_00054350();\n    break;" (case "case") (number_literal "0x132") (: ":") (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" (identifier "FUN_00054350") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x133:\n    FUN_00054350();\n    break;" (case "case") (number_literal "0x133") (: ":") (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" (identifier "FUN_00054350") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x134:\n    FUN_00054350();\n    break;" (case "case") (number_literal "0x134") (: ":") (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" (identifier "FUN_00054350") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x135:\n    FUN_00054350();\n    break;" (case "case") (number_literal "0x135") (: ":") (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" (identifier "FUN_00054350") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x136:\n    FUN_00054350();\n    break;" (case "case") (number_literal "0x136") (: ":") (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" (identifier "FUN_00054350") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x137:\n    FUN_00054350();\n    break;" (case "case") (number_literal "0x137") (: ":") (expression_statement "FUN_00054350();" (call_expression "FUN_00054350()" (identifier "FUN_00054350") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x138:\n    FUN_000543d0();\n    break;" (case "case") (number_literal "0x138") (: ":") (expression_statement "FUN_000543d0();" (call_expression "FUN_000543d0()" (identifier "FUN_000543d0") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x139:\n    pcVar9 = *(char **)PTR_optarg_001cefdc;\n    pcVar3 = strchr(pcVar9,0x3a);\n    if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }\n    ppcStack_30 = apcStack_20;\n    uVar4 = strtoul(pcVar9,ppcStack_30,0);\n    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }\n    goto code_r0x00054491;" (case "case") (number_literal "0x139") (: ":") (expression_statement "pcVar9 = *(char **)PTR_optarg_001cefdc;" (assignment_expression "pcVar9 = *(char **)PTR_optarg_001cefdc" (identifier "pcVar9") (= "=") (pointer_expression "*(char **)PTR_optarg_001cefdc" (* "*") (cast_expression "(char **)PTR_optarg_001cefdc" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_optarg_001cefdc")))) (; ";")) (expression_statement "pcVar3 = strchr(pcVar9,0x3a);" (assignment_expression "pcVar3 = strchr(pcVar9,0x3a)" (identifier "pcVar3") (= "=") (call_expression "strchr(pcVar9,0x3a)" (identifier "strchr") (argument_list "(pcVar9,0x3a)" (( "(") (identifier "pcVar9") (, ",") (number_literal "0x3a") () ")")))) (; ";")) (if_statement "if (pcVar3 == (char *)0x0) {\n      __n = strlen(pcVar9);\n    }\n    else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }" (if "if") (parenthesized_expression "(pcVar3 == (char *)0x0)" (( "(") (binary_expression "pcVar3 == (char *)0x0" (identifier "pcVar3") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      __n = strlen(pcVar9);\n    }" ({ "{") (expression_statement "__n = strlen(pcVar9);" (assignment_expression "__n = strlen(pcVar9)" (identifier "__n") (= "=") (call_expression "strlen(pcVar9)" (identifier "strlen") (argument_list "(pcVar9)" (( "(") (identifier "pcVar9") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }" (else "else") (compound_statement "{\n      __n = (int)pcVar3 - (int)pcVar9;\n      strtoul(pcVar3 + 1,apcStack_20,0);\n      FUN_00054230();\n      cVar2 = *apcStack_20[0];\n      if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }\n      if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }\n    }" ({ "{") (expression_statement "__n = (int)pcVar3 - (int)pcVar9;" (assignment_expression "__n = (int)pcVar3 - (int)pcVar9" (identifier "__n") (= "=") (binary_expression "(int)pcVar3 - (int)pcVar9" (cast_expression "(int)pcVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar3")) (- "-") (cast_expression "(int)pcVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar9")))) (; ";")) (expression_statement "strtoul(pcVar3 + 1,apcStack_20,0);" (call_expression "strtoul(pcVar3 + 1,apcStack_20,0)" (identifier "strtoul") (argument_list "(pcVar3 + 1,apcStack_20,0)" (( "(") (binary_expression "pcVar3 + 1" (identifier "pcVar3") (+ "+") (number_literal "1")) (, ",") (identifier "apcStack_20") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_00054230();" (call_expression "FUN_00054230()" (identifier "FUN_00054230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "cVar2 = *apcStack_20[0];" (assignment_expression "cVar2 = *apcStack_20[0]" (identifier "cVar2") (= "=") (pointer_expression "*apcStack_20[0]" (* "*") (subscript_expression "apcStack_20[0]" (identifier "apcStack_20") ([ "[") (number_literal "0") (] "]")))) (; ";")) (if_statement "if (cVar2 == '.') {\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }" (if "if") (parenthesized_expression "(cVar2 == '.')" (( "(") (binary_expression "cVar2 == '.'" (identifier "cVar2") (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n        strtoul(apcStack_20[0] + 1,apcStack_20,0);\n        FUN_00054230();\n        cVar2 = *apcStack_20[0];\n      }" ({ "{") (expression_statement "strtoul(apcStack_20[0] + 1,apcStack_20,0);" (call_expression "strtoul(apcStack_20[0] + 1,apcStack_20,0)" (identifier "strtoul") (argument_list "(apcStack_20[0] + 1,apcStack_20,0)" (( "(") (binary_expression "apcStack_20[0] + 1" (subscript_expression "apcStack_20[0]" (identifier "apcStack_20") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "1")) (, ",") (identifier "apcStack_20") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_00054230();" (call_expression "FUN_00054230()" (identifier "FUN_00054230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "cVar2 = *apcStack_20[0];" (assignment_expression "cVar2 = *apcStack_20[0]" (identifier "cVar2") (= "=") (pointer_expression "*apcStack_20[0]" (* "*") (subscript_expression "apcStack_20[0]" (identifier "apcStack_20") ([ "[") (number_literal "0") (] "]")))) (; ";")) (} "}"))) (if_statement "if (cVar2 == '\0') {\n        pcVar9 = *(char **)puVar1;\n      }\n      else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        pcVar9 = *(char **)puVar1;\n      }" ({ "{") (expression_statement "pcVar9 = *(char **)puVar1;" (assignment_expression "pcVar9 = *(char **)puVar1" (identifier "pcVar9") (= "=") (pointer_expression "*(char **)puVar1" (* "*") (cast_expression "(char **)puVar1" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) (; ";")) (} "}")) (else_clause "else {\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }" (else "else") (compound_statement "{\n        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);\n        FUN_00034d20(uVar15);\n        pcVar9 = *(char **)puVar1;\n      }" ({ "{") (expression_statement "uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);" (assignment_expression "uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5)" (identifier "uVar15") (= "=") (call_expression "dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5)" (identifier "dcgettext") (argument_list "(0,"%P: warning: bad version number in -subsystem option\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%P: warning: bad version number in -subsystem option\n"" (" """) (string_content "%P: warning: bad version number in -subsystem option") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar15);" (call_expression "FUN_00034d20(uVar15)" (identifier "FUN_00034d20") (argument_list "(uVar15)" (( "(") (identifier "uVar15") () ")"))) (; ";")) (expression_statement "pcVar9 = *(char **)puVar1;" (assignment_expression "pcVar9 = *(char **)puVar1" (identifier "pcVar9") (= "=") (pointer_expression "*(char **)puVar1" (* "*") (cast_expression "(char **)puVar1" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) (; ";")) (} "}")))) (} "}")))) (expression_statement "ppcStack_30 = apcStack_20;" (assignment_expression "ppcStack_30 = apcStack_20" (identifier "ppcStack_30") (= "=") (identifier "apcStack_20")) (; ";")) (expression_statement "uVar4 = strtoul(pcVar9,ppcStack_30,0);" (assignment_expression "uVar4 = strtoul(pcVar9,ppcStack_30,0)" (identifier "uVar4") (= "=") (call_expression "strtoul(pcVar9,ppcStack_30,0)" (identifier "strtoul") (argument_list "(pcVar9,ppcStack_30,0)" (( "(") (identifier "pcVar9") (, ",") (identifier "ppcStack_30") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }\n    else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }" (if "if") (parenthesized_expression "((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000))" (( "(") (binary_expression "(*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)" (parenthesized_expression "(*apcStack_20[0] == ':' || *apcStack_20[0] == '\0')" (( "(") (binary_expression "*apcStack_20[0] == ':' || *apcStack_20[0] == '\0'" (binary_expression "*apcStack_20[0] == ':'" (pointer_expression "*apcStack_20[0]" (* "*") (subscript_expression "apcStack_20[0]" (identifier "apcStack_20") ([ "[") (number_literal "0") (] "]"))) (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) (|| "||") (binary_expression "*apcStack_20[0] == '\0'" (pointer_expression "*apcStack_20[0]" (* "*") (subscript_expression "apcStack_20[0]" (identifier "apcStack_20") ([ "[") (number_literal "0") (] "]"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (&& "&&") (parenthesized_expression "(uVar4 < 0x10000)" (( "(") (binary_expression "uVar4 < 0x10000" (identifier "uVar4") (< "<") (number_literal "0x10000")) () ")"))) () ")")) (compound_statement "{\ncode_r0x00054481:\n      DAT_001cfc74 = uVar4;\n      FUN_00054230();\n    }" ({ "{") (labeled_statement "code_r0x00054481:\n      DAT_001cfc74 = uVar4;" (statement_identifier "code_r0x00054481") (: ":") (expression_statement "DAT_001cfc74 = uVar4;" (assignment_expression "DAT_001cfc74 = uVar4" (identifier "DAT_001cfc74") (= "=") (identifier "uVar4")) (; ";"))) (expression_statement "FUN_00054230();" (call_expression "FUN_00054230()" (identifier "FUN_00054230") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }" (else "else") (compound_statement "{\n      pcVar3 = *(char **)puVar1;\n      pcVar9 = "native";\n      iVar8 = 0;\n      do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);\n      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);\n      FUN_00034d20(uVar15,pcVar3);\n    }" ({ "{") (expression_statement "pcVar3 = *(char **)puVar1;" (assignment_expression "pcVar3 = *(char **)puVar1" (identifier "pcVar3") (= "=") (pointer_expression "*(char **)puVar1" (* "*") (cast_expression "(char **)puVar1" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) (; ";")) (expression_statement "pcVar9 = "native";" (assignment_expression "pcVar9 = "native"" (identifier "pcVar9") (= "=") (string_literal ""native"" (" """) (string_content "native") (" """))) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      } while (pcVar9 != (char *)0x0);" (do "do") (compound_statement "{\n        iVar5 = strncmp(pcVar3,pcVar9,__n);\n        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }\n        iVar8 = iVar8 + 1;\n        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);\n      }" ({ "{") (expression_statement "iVar5 = strncmp(pcVar3,pcVar9,__n);" (assignment_expression "iVar5 = strncmp(pcVar3,pcVar9,__n)" (identifier "iVar5") (= "=") (call_expression "strncmp(pcVar3,pcVar9,__n)" (identifier "strncmp") (argument_list "(pcVar3,pcVar9,__n)" (( "(") (identifier "pcVar3") (, ",") (identifier "pcVar9") (, ",") (identifier "__n") () ")")))) (; ";")) (if_statement "if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }" (if "if") (parenthesized_expression "((iVar5 == 0) && (pcVar9[__n] == '\0'))" (( "(") (binary_expression "(iVar5 == 0) && (pcVar9[__n] == '\0')" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar9[__n] == '\0')" (( "(") (binary_expression "pcVar9[__n] == '\0'" (subscript_expression "pcVar9[__n]" (identifier "pcVar9") ([ "[") (identifier "__n") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);\n          goto code_r0x00054481;\n        }" ({ "{") (expression_statement "uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);" (assignment_expression "uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8)" (identifier "uVar4") (= "=") (pointer_expression "*(ulong *)(&UNK_001ce484 + iVar8 * 8)" (* "*") (cast_expression "(ulong *)(&UNK_001ce484 + iVar8 * 8)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&UNK_001ce484 + iVar8 * 8)" (( "(") (binary_expression "&UNK_001ce484 + iVar8 * 8" (pointer_expression "&UNK_001ce484" (& "&") (identifier "UNK_001ce484")) (+ "+") (binary_expression "iVar8 * 8" (identifier "iVar8") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (goto_statement "goto code_r0x00054481;" (goto "goto") (statement_identifier "code_r0x00054481") (; ";")) (} "}"))) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);" (assignment_expression "pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8)" (identifier "pcVar9") (= "=") (pointer_expression "*(char **)(&UNK_001ce480 + iVar8 * 8)" (* "*") (cast_expression "(char **)(&UNK_001ce480 + iVar8 * 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&UNK_001ce480 + iVar8 * 8)" (( "(") (binary_expression "&UNK_001ce480 + iVar8 * 8" (pointer_expression "&UNK_001ce480" (& "&") (identifier "UNK_001ce480")) (+ "+") (binary_expression "iVar8 * 8" (identifier "iVar8") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar9 != (char *)0x0)" (( "(") (binary_expression "pcVar9 != (char *)0x0" (identifier "pcVar9") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);" (assignment_expression "uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5)" (identifier "uVar15") (= "=") (call_expression "dcgettext(0,"%F%P: invalid subsystem type %s\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: invalid subsystem type %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: invalid subsystem type %s\n"" (" """) (string_content "%F%P: invalid subsystem type %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar15,pcVar3);" (call_expression "FUN_00034d20(uVar15,pcVar3)" (identifier "FUN_00034d20") (argument_list "(uVar15,pcVar3)" (( "(") (identifier "uVar15") (, ",") (identifier "pcVar3") () ")"))) (; ";")) (} "}")))) (goto_statement "goto code_r0x00054491;" (goto "goto") (statement_identifier "code_r0x00054491") (; ";"))) (case_statement "case 0x13a:\n    FUN_000543d0();\n    goto code_r0x00054491;" (case "case") (number_literal "0x13a") (: ":") (expression_statement "FUN_000543d0();" (call_expression "FUN_000543d0()" (identifier "FUN_000543d0") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto code_r0x00054491;" (goto "goto") (statement_identifier "code_r0x00054491") (; ";"))) (case_statement "case 0x13c:\n    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;" (case "case") (number_literal "0x13c") (: ":") (expression_statement "DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);" (assignment_expression "DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" (identifier "DAT_001d0df8") (= "=") (call_expression "xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" (identifier "xstrdup") (argument_list "(*(undefined4 *)PTR_optarg_001cefdc)" (( "(") (pointer_expression "*(undefined4 *)PTR_optarg_001cefdc" (* "*") (cast_expression "(undefined4 *)PTR_optarg_001cefdc" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_optarg_001cefdc"))) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x13d:\n    DAT_001d115c = 1;\n    break;" (case "case") (number_literal "0x13d") (: ":") (expression_statement "DAT_001d115c = 1;" (assignment_expression "DAT_001d115c = 1" (identifier "DAT_001d115c") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x13e:\n    uVar15 = 0;\n    goto code_r0x00054815;" (case "case") (number_literal "0x13e") (: ":") (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto code_r0x00054815;" (goto "goto") (statement_identifier "code_r0x00054815") (; ";"))) (case_statement "case 0x13f:\n    DAT_001d1158 = 1;\n    break;" (case "case") (number_literal "0x13f") (: ":") (expression_statement "DAT_001d1158 = 1;" (assignment_expression "DAT_001d1158 = 1" (identifier "DAT_001d1158") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x140:\n    DAT_001d1154 = 1;\n    break;" (case "case") (number_literal "0x140") (: ":") (expression_statement "DAT_001d1154 = 1;" (assignment_expression "DAT_001d1154 = 1" (identifier "DAT_001d1154") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x141:\n    DAT_001d1150 = 1;\n    break;" (case "case") (number_literal "0x141") (: ":") (expression_statement "DAT_001d1150 = 1;" (assignment_expression "DAT_001d1150 = 1" (identifier "DAT_001d1150") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x142:\n    DAT_001cfc6c = 1;\n    break;" (case "case") (number_literal "0x142") (: ":") (expression_statement "DAT_001cfc6c = 1;" (assignment_expression "DAT_001cfc6c = 1" (identifier "DAT_001cfc6c") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x143:\n    DAT_001cfc6c = 0;\n    break;" (case "case") (number_literal "0x143") (: ":") (expression_statement "DAT_001cfc6c = 0;" (assignment_expression "DAT_001cfc6c = 0" (identifier "DAT_001cfc6c") (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x144:\n    DAT_001d114c = 1;\n    break;" (case "case") (number_literal "0x144") (: ":") (expression_statement "DAT_001d114c = 1;" (assignment_expression "DAT_001d114c = 1" (identifier "DAT_001d114c") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x145:\n    DAT_001d1148 = 1;\n    break;" (case "case") (number_literal "0x145") (: ":") (expression_statement "DAT_001d1148 = 1;" (assignment_expression "DAT_001d1148 = 1" (identifier "DAT_001d1148") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x146:\n    DAT_001d0df4 = 1;\n    break;" (case "case") (number_literal "0x146") (: ":") (expression_statement "DAT_001d0df4 = 1;" (assignment_expression "DAT_001d0df4 = 1" (identifier "DAT_001d0df4") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x147:\n    DAT_001d0df4 = 0;\n    break;" (case "case") (number_literal "0x147") (: ":") (expression_statement "DAT_001d0df4 = 0;" (assignment_expression "DAT_001d0df4 = 0" (identifier "DAT_001d0df4") (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x148:\n    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);\n    break;" (case "case") (number_literal "0x148") (: ":") (expression_statement "DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);" (assignment_expression "DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" (identifier "DAT_001d0df0") (= "=") (call_expression "xstrdup(*(undefined4 *)PTR_optarg_001cefdc)" (identifier "xstrdup") (argument_list "(*(undefined4 *)PTR_optarg_001cefdc)" (( "(") (pointer_expression "*(undefined4 *)PTR_optarg_001cefdc" (* "*") (cast_expression "(undefined4 *)PTR_optarg_001cefdc" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_optarg_001cefdc"))) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x149:\n    DAT_001d02b8 = 0;\n    break;" (case "case") (number_literal "0x149") (: ":") (expression_statement "DAT_001d02b8 = 0;" (assignment_expression "DAT_001d02b8 = 0" (identifier "DAT_001d02b8") (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x14a:\n    DAT_001d1448 = 1;\n    break;" (case "case") (number_literal "0x14a") (: ":") (expression_statement "DAT_001d1448 = 1;" (assignment_expression "DAT_001d1448 = 1" (identifier "DAT_001d1448") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x14b:\n    DAT_001d1448 = 0;\n    break;" (case "case") (number_literal "0x14b") (: ":") (expression_statement "DAT_001d1448 = 0;" (assignment_expression "DAT_001d1448 = 0" (identifier "DAT_001d1448") (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x14c:\n    DAT_001d1144 = 1;\n    break;" (case "case") (number_literal "0x14c") (: ":") (expression_statement "DAT_001d1144 = 1;" (assignment_expression "DAT_001d1144 = 1" (identifier "DAT_001d1144") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x14d:\n    uVar15 = 1;\n    goto code_r0x00054815;" (case "case") (number_literal "0x14d") (: ":") (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" (identifier "uVar15") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto code_r0x00054815;" (goto "goto") (statement_identifier "code_r0x00054815") (; ";"))) (case_statement "case 0x14e:" (case "case") (number_literal "0x14e") (: ":")) (case_statement "case 0x150:\n    DAT_001d144c = 2;\n    break;" (case "case") (number_literal "0x150") (: ":") (expression_statement "DAT_001d144c = 2;" (assignment_expression "DAT_001d144c = 2" (identifier "DAT_001d144c") (= "=") (number_literal "2")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x14f:\n    DAT_001d144c = 0;\n    break;" (case "case") (number_literal "0x14f") (: ":") (expression_statement "DAT_001d144c = 0;" (assignment_expression "DAT_001d144c = 0" (identifier "DAT_001d144c") (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x151:\n    uVar15 = 2;\ncode_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);\n    break;" (case "case") (number_literal "0x151") (: ":") (expression_statement "uVar15 = 2;" (assignment_expression "uVar15 = 2" (identifier "uVar15") (= "=") (number_literal "2")) (; ";")) (labeled_statement "code_r0x00054815:\n    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);" (statement_identifier "code_r0x00054815") (: ":") (expression_statement "FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);" (call_expression "FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15)" (identifier "FUN_0005cdb0") (argument_list "(*(undefined4 *)PTR_optarg_001cefdc,uVar15)" (( "(") (pointer_expression "*(undefined4 *)PTR_optarg_001cefdc" (* "*") (cast_expression "(undefined4 *)PTR_optarg_001cefdc" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_optarg_001cefdc"))) (, ",") (identifier "uVar15") () ")"))) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x152:\n    DAT_001d1140 = 1;\n    break;" (case "case") (number_literal "0x152") (: ":") (expression_statement "DAT_001d1140 = 1;" (assignment_expression "DAT_001d1140 = 1" (identifier "DAT_001d1140") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x153:\n    DAT_001d02b0 = 0;\n    break;" (case "case") (number_literal "0x153") (: ":") (expression_statement "DAT_001d02b0 = 0;" (assignment_expression "DAT_001d02b0 = 0" (identifier "DAT_001d02b0") (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x154:\n    DAT_001d02b0 = 1;\n    break;" (case "case") (number_literal "0x154") (: ":") (expression_statement "DAT_001d02b0 = 1;" (assignment_expression "DAT_001d02b0 = 1" (identifier "DAT_001d02b0") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x155:\n    DAT_001d02b4 = 1;\n    break;" (case "case") (number_literal "0x155") (: ":") (expression_statement "DAT_001d02b4 = 1;" (assignment_expression "DAT_001d02b4 = 1" (identifier "DAT_001d02b4") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x156:\n    DAT_001d02b4 = 0;\n    break;" (case "case") (number_literal "0x156") (: ":") (expression_statement "DAT_001d02b4 = 0;" (assignment_expression "DAT_001d02b4 = 0" (identifier "DAT_001d02b4") (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x157:\n    uRam001d0e00 = uRam001d0e00 | 0x20;\n    break;" (case "case") (number_literal "0x157") (: ":") (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x20;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x20" (identifier "uRam001d0e00") (= "=") (binary_expression "uRam001d0e00 | 0x20" (identifier "uRam001d0e00") (| "|") (number_literal "0x20"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x158:\n    uRam001d0e00 = uRam001d0e00 | 0x40;\n    break;" (case "case") (number_literal "0x158") (: ":") (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x40;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x40" (identifier "uRam001d0e00") (= "=") (binary_expression "uRam001d0e00 | 0x40" (identifier "uRam001d0e00") (| "|") (number_literal "0x40"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x159:\n    uRam001d0e00 = uRam001d0e00 | 0x80;\n    break;" (case "case") (number_literal "0x159") (: ":") (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x80;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x80" (identifier "uRam001d0e00") (= "=") (binary_expression "uRam001d0e00 | 0x80" (identifier "uRam001d0e00") (| "|") (number_literal "0x80"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x15a:\n    uRam001d0e00 = uRam001d0e00 | 0x100;\n    break;" (case "case") (number_literal "0x15a") (: ":") (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x100;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x100" (identifier "uRam001d0e00") (= "=") (binary_expression "uRam001d0e00 | 0x100" (identifier "uRam001d0e00") (| "|") (number_literal "0x100"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x15b:\n    uRam001d0e00 = uRam001d0e00 | 0x200;\n    break;" (case "case") (number_literal "0x15b") (: ":") (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x200;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x200" (identifier "uRam001d0e00") (= "=") (binary_expression "uRam001d0e00 | 0x200" (identifier "uRam001d0e00") (| "|") (number_literal "0x200"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x15c:\n    uRam001d0e00 = uRam001d0e00 | 0x400;\n    break;" (case "case") (number_literal "0x15c") (: ":") (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x400;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x400" (identifier "uRam001d0e00") (= "=") (binary_expression "uRam001d0e00 | 0x400" (identifier "uRam001d0e00") (| "|") (number_literal "0x400"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x15d:\n    uRam001d0e00 = uRam001d0e00 | 0x800;\n    break;" (case "case") (number_literal "0x15d") (: ":") (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x800;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x800" (identifier "uRam001d0e00") (= "=") (binary_expression "uRam001d0e00 | 0x800" (identifier "uRam001d0e00") (| "|") (number_literal "0x800"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x15e:\n    uRam001d0e00 = uRam001d0e00 | 0x2000;\n    break;" (case "case") (number_literal "0x15e") (: ":") (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x2000;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x2000" (identifier "uRam001d0e00") (= "=") (binary_expression "uRam001d0e00 | 0x2000" (identifier "uRam001d0e00") (| "|") (number_literal "0x2000"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x15f:\n    DAT_001cfc70 = 1;\n    break;" (case "case") (number_literal "0x15f") (: ":") (expression_statement "DAT_001cfc70 = 1;" (assignment_expression "DAT_001cfc70 = 1" (identifier "DAT_001cfc70") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x160:\n    DAT_001cfc70 = 0;\n    break;" (case "case") (number_literal "0x160") (: ":") (expression_statement "DAT_001cfc70 = 0;" (assignment_expression "DAT_001cfc70 = 0" (identifier "DAT_001cfc70") (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x161:\n    uRam001d0e00 = uRam001d0e00 | 0x8000;\n    break;" (case "case") (number_literal "0x161") (: ":") (expression_statement "uRam001d0e00 = uRam001d0e00 | 0x8000;" (assignment_expression "uRam001d0e00 = uRam001d0e00 | 0x8000" (identifier "uRam001d0e00") (= "=") (binary_expression "uRam001d0e00 | 0x8000" (identifier "uRam001d0e00") (| "|") (number_literal "0x8000"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x162:\n    if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }\n    pbVar7 = *(byte **)PTR_optarg_001cefdc;\n    bVar12 = false;\n    bVar13 = pbVar7 == (byte *)0x0;\n    if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }\n    DAT_001d0dfc = (void *)xstrdup(pbVar7);\n    break;" (case "case") (number_literal "0x162") (: ":") (if_statement "if (DAT_001d0dfc != (void *)0x0) {\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }" (if "if") (parenthesized_expression "(DAT_001d0dfc != (void *)0x0)" (( "(") (binary_expression "DAT_001d0dfc != (void *)0x0" (identifier "DAT_001d0dfc") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      free(DAT_001d0dfc);\n      DAT_001d0dfc = (void *)0x0;\n    }" ({ "{") (expression_statement "free(DAT_001d0dfc);" (call_expression "free(DAT_001d0dfc)" (identifier "free") (argument_list "(DAT_001d0dfc)" (( "(") (identifier "DAT_001d0dfc") () ")"))) (; ";")) (expression_statement "DAT_001d0dfc = (void *)0x0;" (assignment_expression "DAT_001d0dfc = (void *)0x0" (identifier "DAT_001d0dfc") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "pbVar7 = *(byte **)PTR_optarg_001cefdc;" (assignment_expression "pbVar7 = *(byte **)PTR_optarg_001cefdc" (identifier "pbVar7") (= "=") (pointer_expression "*(byte **)PTR_optarg_001cefdc" (* "*") (cast_expression "(byte **)PTR_optarg_001cefdc" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_optarg_001cefdc")))) (; ";")) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" (identifier "bVar12") (= "=") (false "false")) (; ";")) (expression_statement "bVar13 = pbVar7 == (byte *)0x0;" (assignment_expression "bVar13 = pbVar7 == (byte *)0x0" (identifier "bVar13") (= "=") (binary_expression "pbVar7 == (byte *)0x0" (identifier "pbVar7") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (bVar13) {\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }\n    else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }" (if "if") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (compound_statement "{\n      pbVar7 = &DAT_0007e2c4;\n      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;\n    }" ({ "{") (expression_statement "pbVar7 = &DAT_0007e2c4;" (assignment_expression "pbVar7 = &DAT_0007e2c4" (identifier "pbVar7") (= "=") (pointer_expression "&DAT_0007e2c4" (& "&") (identifier "DAT_0007e2c4"))) (; ";")) (expression_statement "*(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;" (assignment_expression "*(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4" (pointer_expression "*(undefined1 **)PTR_optarg_001cefdc" (* "*") (cast_expression "(undefined1 **)PTR_optarg_001cefdc" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_optarg_001cefdc"))) (= "=") (pointer_expression "&DAT_0007e2c4" (& "&") (identifier "DAT_0007e2c4"))) (; ";")) (} "}")) (else_clause "else {\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }" (else "else") (compound_statement "{\n      iVar8 = 5;\n      pbVar10 = pbVar7;\n      pbVar11 = (byte *)0x79bf4;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);\n      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;\n    }" ({ "{") (expression_statement "iVar8 = 5;" (assignment_expression "iVar8 = 5" (identifier "iVar8") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar10 = pbVar7;" (assignment_expression "pbVar10 = pbVar7" (identifier "pbVar10") (= "=") (identifier "pbVar7")) (; ";")) (expression_statement "pbVar11 = (byte *)0x79bf4;" (assignment_expression "pbVar11 = (byte *)0x79bf4" (identifier "pbVar11") (= "=") (cast_expression "(byte *)0x79bf4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x79bf4"))) (; ";")) (do_statement "do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      } while (bVar13);" (do "do") (compound_statement "{\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar13 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar12 = *pbVar10 < *pbVar11;" (assignment_expression "bVar12 = *pbVar10 < *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar13 = *pbVar10 == *pbVar11;" (assignment_expression "bVar13 = *pbVar10 == *pbVar11" (identifier "bVar13") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar14 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar14 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (; ";")) (if_statement "if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;" (if "if") (parenthesized_expression "((!bVar12 && !bVar13) == bVar12)" (( "(") (binary_expression "(!bVar12 && !bVar13) == bVar12" (parenthesized_expression "(!bVar12 && !bVar13)" (( "(") (binary_expression "!bVar12 && !bVar13" (unary_expression "!bVar12" (! "!") (identifier "bVar12")) (&& "&&") (unary_expression "!bVar13" (! "!") (identifier "bVar13"))) () ")")) (== "==") (identifier "bVar12")) () ")")) (goto_statement "goto code_r0x00054491;" (goto "goto") (statement_identifier "code_r0x00054491") (; ";"))) (} "}")))) (expression_statement "DAT_001d0dfc = (void *)xstrdup(pbVar7);" (assignment_expression "DAT_001d0dfc = (void *)xstrdup(pbVar7)" (identifier "DAT_001d0dfc") (= "=") (cast_expression "(void *)xstrdup(pbVar7)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xstrdup(pbVar7)" (identifier "xstrdup") (argument_list "(pbVar7)" (( "(") (identifier "pbVar7") () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    return 0;" (default "default") (: ":") (return_statement "return 0;" (return "return") (number_literal "0") (; ";"))) (} "}"))) (expression_statement "FUN_00054230();" (call_expression "FUN_00054230()" (identifier "FUN_00054230") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

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

type_1 function_1(int optc)

{
  type_2 uVar1;
  type_3 *puVar2;
  char var_13;
  char *var_9;
  char *__nptr;
  type_4 var_15;
  int var_17;
  char *var_20;
  type_5 *var_26;
  int var_19;
  size_t __n;
  type_5 *var_27;
  type_5 *var_28;
  bool var_29;
  bool bVar13;
  type_5 bVar14;
  char **ppcVar15;
  type_6 type;
  char **__endptr;
  type_7 in_stack_ffffffc4;
  char **local_30;
  char *var_14;
  type_2 uStack_14;
  
  bVar14 = 0;
  uStack_14 = 0x54449;
  var_1();
  puVar2 = PTR_optarg_001cefdc;
  switch(optc) {
  case 0x12d:
    link_info.base_file = var_2(*(char **)PTR_optarg_001cefdc,"w");
    if ((type_8 *)link_info.base_file == (type_8 *)0x0) {
      uVar1 = *(type_2 *)puVar2;
      var_20 = (char *)var_3(0,"%F%P: cannot open base file %s\n",5);
      var_4(var_20,uVar1);
      break;
    }
  case 0x13b:
_L606:
    break;
  case 0x12e:
    var_5("__dll__",in_stack_ffffffc4);
    break;
  case 0x12f:
    var_6("__file_alignment__");
    break;
  case 0x130:
    var_6("__image_base__");
    break;
  case 0x131:
    var_6("__major_image_version__");
    break;
  case 0x132:
    var_6("__major_os_version__");
    break;
  case 0x133:
    var_6("__major_subsystem_version__");
    break;
  case 0x134:
    var_6("__minor_image_version__");
    break;
  case 0x135:
    var_6("__minor_os_version__");
    break;
  case 0x136:
    var_6("__minor_subsystem_version__");
    break;
  case 0x137:
    var_6("__section_alignment__");
    break;
  case 0x138:
    var_7("__size_of_stack_reserve__","__size_of_stack_commit__");
    break;
  case 0x139:
    var_20 = *(char **)PTR_optarg_001cefdc;
    var_9 = var_8(var_20,0x3a);
    if (var_9 == (char *)0x0) {
      __n = var_10(var_20);
    }
    else {
      __nptr = var_9 + 1;
      __n = (int)var_9 - (int)var_20;
      __endptr = &var_14;
      ppcVar15 = __endptr;
      var_11(__nptr,__endptr,0);
      var_5("__major_subsystem_version__",var_12(ppcVar15,__nptr));
      var_13 = *var_14;
      if (var_13 == '.') {
        var_20 = var_14 + 1;
        var_11(var_20,__endptr,0);
        var_5("__minor_subsystem_version__",var_12(__endptr,var_20));
        var_13 = *var_14;
      }
      if (var_13 == '\0') {
        var_20 = *(char **)puVar2;
      }
      else {
        var_20 = (char *)var_3(0,"%P: warning: bad version number in -subsystem option\n",5);
        var_4(var_20);
        var_20 = *(char **)puVar2;
      }
    }
    local_30 = &var_14;
    var_15 = var_11(var_20,local_30,0);
    if ((*var_14 == ':' || *var_14 == '\0') && (var_15 < 0x10000)) {
LAB_00054481:
      pep_subsystem = var_15;
      var_5("__subsystem__",in_stack_ffffffc4);
    }
    else {
      var_9 = *(char **)puVar2;
      var_20 = "native";
      var_19 = 0;
      do {
        var_17 = var_16(var_9,var_20,__n);
        if ((var_17 == 0) && (var_20[__n] == '\0')) {
          var_15 = *(int *)(var_18 + var_19 * 8 + 4);
          goto LAB_00054481;
        }
        var_19 = var_19 + 1;
        var_20 = *(char **)(var_18 + var_19 * 8);
      } while (var_20 != (char *)0x0);
      var_20 = (char *)var_3(0,"%F%P: invalid subsystem type %s\n",5);
      var_4(var_20,var_9);
    }
    goto _L606;
  case 0x13a:
    var_7("__size_of_heap_reserve__","__size_of_heap_commit__");
    goto _L606;
  case 0x13c:
    pep_out_def_filename = (char *)var_21(*(type_2 *)PTR_optarg_001cefdc);
    break;
  case 0x13d:
    pep_dll_export_everything = 1;
    break;
  case 0x13e:
    type = EXCLUDESYMS;
    goto LAB_00054815;
  case 0x13f:
    pep_dll_exclude_all_symbols = 1;
    break;
  case 0x140:
    pep_dll_kill_ats = 1;
    break;
  case 0x141:
    pep_dll_stdcall_aliases = 1;
    break;
  case 0x142:
    pep_enable_stdcall_fixup = 1;
    break;
  case 0x143:
    pep_enable_stdcall_fixup = 0;
    break;
  case 0x144:
    pep_dll_warn_dup_exports = 1;
    break;
  case 0x145:
    pep_dll_compat_implib = 1;
    break;
  case 0x146:
    pep_enable_auto_image_base = 1;
    break;
  case 0x147:
    pep_enable_auto_image_base = 0;
    break;
  case 0x148:
    pep_dll_search_prefix = (char *)var_21(*(type_2 *)PTR_optarg_001cefdc);
    break;
  case 0x149:
    pep_dll_do_default_excludes = 0;
    break;
  case 0x14a:
    link_info.pei386_auto_import = 1;
    break;
  case 0x14b:
    link_info.pei386_auto_import = 0;
    break;
  case 0x14c:
    pep_dll_extra_pe_debug = 1;
    break;
  case 0x14d:
    type = EXCLUDELIBS;
    goto LAB_00054815;
  case 0x14e:
  case 0x150:
    link_info.pei386_runtime_pseudo_reloc = 2;
    break;
  case 0x14f:
    link_info.pei386_runtime_pseudo_reloc = 0;
    break;
  case 0x151:
    type = EXCLUDEFORIMPLIB;
LAB_00054815:
    var_22(*(char **)PTR_optarg_001cefdc,type);
    break;
  case 0x152:
    pep_use_nul_prefixed_import_tables = 1;
    break;
  case 0x153:
    pep_leading_underscore = 0;
    break;
  case 0x154:
    pep_leading_underscore = 1;
    break;
  case 0x155:
    pep_use_coff_long_section_names = 1;
    break;
  case 0x156:
    pep_use_coff_long_section_names = 0;
    break;
  case 0x157:
    var_23 = var_23 | 0x20;
    break;
  case 0x158:
    var_23 = var_23 | 0x40;
    break;
  case 0x159:
    var_23 = var_23 | 0x80;
    break;
  case 0x15a:
    var_23 = var_23 | 0x100;
    break;
  case 0x15b:
    var_23 = var_23 | 0x200;
    break;
  case 0x15c:
    var_23 = var_23 | 0x400;
    break;
  case 0x15d:
    var_23 = var_23 | 0x800;
    break;
  case 0x15e:
    var_23 = var_23 | 0x2000;
    break;
  case 0x15f:
    insert_timestamp = 1;
    break;
  case 0x160:
    insert_timestamp = 0;
    break;
  case 0x161:
    var_23 = var_23 | 0x8000;
    break;
  case 0x162:
    if (var_24 != (char *)0x0) {
      var_25(var_24);
      var_24 = (char *)0x0;
    }
    var_26 = *(type_5 **)PTR_optarg_001cefdc;
    var_29 = false;
    bVar13 = var_26 == (type_5 *)0x0;
    if (bVar13) {
      var_26 = &DAT_0007e2c4;
      *(type_9 **)PTR_optarg_001cefdc = &DAT_0007e2c4;
    }
    else {
      var_19 = 5;
      var_27 = var_26;
      var_28 = (type_5 *)0x79bf4;
      do {
        if (var_19 == 0) break;
        var_19 = var_19 + -1;
        var_29 = *var_27 < *var_28;
        bVar13 = *var_27 == *var_28;
        var_27 = var_27 + (type_10)bVar14 * -2 + 1;
        var_28 = var_28 + (type_10)bVar14 * -2 + 1;
      } while (bVar13);
      if ((!var_29 && !bVar13) == var_29) goto _L606;
    }
    var_24 = (char *)var_21(var_26);
    break;
  default:
    return 0;
  }
  var_5("__dll_characteristics__",in_stack_ffffffc4);
  return 1;
}


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

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

undefined4 MASKED(undefined4 param_1)

{
  undefined *puVar1;
  char cVar2;
  char *pcVar3;
  ulong uVar4;
  int iVar5;
  undefined4 uVar6;
  byte *pbVar7;
  int iVar8;
  char *pcVar9;
  size_t __n;
  byte *pbVar10;
  byte *pbVar11;
  bool bVar12;
  bool bVar13;
  byte bVar14;
  undefined4 uVar15;
  char **ppcStack_30;
  char *apcStack_20 [3];
  undefined4 uStack_14;
  
  bVar14 = 0;
  uStack_14 = 0x54449;
  FUN_00052dd0();
  puVar1 = PTR_optarg_001cefdc;
  switch(param_1) {
  case 0x12d:
    pFRam001d142c = fopen64(*(char **)PTR_optarg_001cefdc,"w");
    if (pFRam001d142c == (FILE *)0x0) {
      uVar15 = *(undefined4 *)puVar1;
      uVar6 = dcgettext(0,"%F%P: cannot open base file %s\n",5);
      FUN_00034d20(uVar6,uVar15);
      break;
    }
  case 0x13b:
code_r0x00054491:
    break;
  case 0x12e:
    FUN_00054230();
    break;
  case 0x12f:
    FUN_00054350();
    break;
  case 0x130:
    FUN_00054350();
    break;
  case 0x131:
    FUN_00054350();
    break;
  case 0x132:
    FUN_00054350();
    break;
  case 0x133:
    FUN_00054350();
    break;
  case 0x134:
    FUN_00054350();
    break;
  case 0x135:
    FUN_00054350();
    break;
  case 0x136:
    FUN_00054350();
    break;
  case 0x137:
    FUN_00054350();
    break;
  case 0x138:
    FUN_000543d0();
    break;
  case 0x139:
    pcVar9 = *(char **)PTR_optarg_001cefdc;
    pcVar3 = strchr(pcVar9,0x3a);
    if (pcVar3 == (char *)0x0) {
      __n = strlen(pcVar9);
    }
    else {
      __n = (int)pcVar3 - (int)pcVar9;
      strtoul(pcVar3 + 1,apcStack_20,0);
      FUN_00054230();
      cVar2 = *apcStack_20[0];
      if (cVar2 == '.') {
        strtoul(apcStack_20[0] + 1,apcStack_20,0);
        FUN_00054230();
        cVar2 = *apcStack_20[0];
      }
      if (cVar2 == '\0') {
        pcVar9 = *(char **)puVar1;
      }
      else {
        uVar15 = dcgettext(0,"%P: warning: bad version number in -subsystem option\n",5);
        FUN_00034d20(uVar15);
        pcVar9 = *(char **)puVar1;
      }
    }
    ppcStack_30 = apcStack_20;
    uVar4 = strtoul(pcVar9,ppcStack_30,0);
    if ((*apcStack_20[0] == ':' || *apcStack_20[0] == '\0') && (uVar4 < 0x10000)) {
code_r0x00054481:
      DAT_001cfc74 = uVar4;
      FUN_00054230();
    }
    else {
      pcVar3 = *(char **)puVar1;
      pcVar9 = "native";
      iVar8 = 0;
      do {
        iVar5 = strncmp(pcVar3,pcVar9,__n);
        if ((iVar5 == 0) && (pcVar9[__n] == '\0')) {
          uVar4 = *(ulong *)(&UNK_001ce484 + iVar8 * 8);
          goto code_r0x00054481;
        }
        iVar8 = iVar8 + 1;
        pcVar9 = *(char **)(&UNK_001ce480 + iVar8 * 8);
      } while (pcVar9 != (char *)0x0);
      uVar15 = dcgettext(0,"%F%P: invalid subsystem type %s\n",5);
      FUN_00034d20(uVar15,pcVar3);
    }
    goto code_r0x00054491;
  case 0x13a:
    FUN_000543d0();
    goto code_r0x00054491;
  case 0x13c:
    DAT_001d0df8 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);
    break;
  case 0x13d:
    DAT_001d115c = 1;
    break;
  case 0x13e:
    uVar15 = 0;
    goto code_r0x00054815;
  case 0x13f:
    DAT_001d1158 = 1;
    break;
  case 0x140:
    DAT_001d1154 = 1;
    break;
  case 0x141:
    DAT_001d1150 = 1;
    break;
  case 0x142:
    DAT_001cfc6c = 1;
    break;
  case 0x143:
    DAT_001cfc6c = 0;
    break;
  case 0x144:
    DAT_001d114c = 1;
    break;
  case 0x145:
    DAT_001d1148 = 1;
    break;
  case 0x146:
    DAT_001d0df4 = 1;
    break;
  case 0x147:
    DAT_001d0df4 = 0;
    break;
  case 0x148:
    DAT_001d0df0 = xstrdup(*(undefined4 *)PTR_optarg_001cefdc);
    break;
  case 0x149:
    DAT_001d02b8 = 0;
    break;
  case 0x14a:
    DAT_001d1448 = 1;
    break;
  case 0x14b:
    DAT_001d1448 = 0;
    break;
  case 0x14c:
    DAT_001d1144 = 1;
    break;
  case 0x14d:
    uVar15 = 1;
    goto code_r0x00054815;
  case 0x14e:
  case 0x150:
    DAT_001d144c = 2;
    break;
  case 0x14f:
    DAT_001d144c = 0;
    break;
  case 0x151:
    uVar15 = 2;
code_r0x00054815:
    FUN_0005cdb0(*(undefined4 *)PTR_optarg_001cefdc,uVar15);
    break;
  case 0x152:
    DAT_001d1140 = 1;
    break;
  case 0x153:
    DAT_001d02b0 = 0;
    break;
  case 0x154:
    DAT_001d02b0 = 1;
    break;
  case 0x155:
    DAT_001d02b4 = 1;
    break;
  case 0x156:
    DAT_001d02b4 = 0;
    break;
  case 0x157:
    uRam001d0e00 = uRam001d0e00 | 0x20;
    break;
  case 0x158:
    uRam001d0e00 = uRam001d0e00 | 0x40;
    break;
  case 0x159:
    uRam001d0e00 = uRam001d0e00 | 0x80;
    break;
  case 0x15a:
    uRam001d0e00 = uRam001d0e00 | 0x100;
    break;
  case 0x15b:
    uRam001d0e00 = uRam001d0e00 | 0x200;
    break;
  case 0x15c:
    uRam001d0e00 = uRam001d0e00 | 0x400;
    break;
  case 0x15d:
    uRam001d0e00 = uRam001d0e00 | 0x800;
    break;
  case 0x15e:
    uRam001d0e00 = uRam001d0e00 | 0x2000;
    break;
  case 0x15f:
    DAT_001cfc70 = 1;
    break;
  case 0x160:
    DAT_001cfc70 = 0;
    break;
  case 0x161:
    uRam001d0e00 = uRam001d0e00 | 0x8000;
    break;
  case 0x162:
    if (DAT_001d0dfc != (void *)0x0) {
      free(DAT_001d0dfc);
      DAT_001d0dfc = (void *)0x0;
    }
    pbVar7 = *(byte **)PTR_optarg_001cefdc;
    bVar12 = false;
    bVar13 = pbVar7 == (byte *)0x0;
    if (bVar13) {
      pbVar7 = &DAT_0007e2c4;
      *(undefined1 **)PTR_optarg_001cefdc = &DAT_0007e2c4;
    }
    else {
      iVar8 = 5;
      pbVar10 = pbVar7;
      pbVar11 = (byte *)0x79bf4;
      do {
        if (iVar8 == 0) break;
        iVar8 = iVar8 + -1;
        bVar12 = *pbVar10 < *pbVar11;
        bVar13 = *pbVar10 == *pbVar11;
        pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;
        pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;
      } while (bVar13);
      if ((!bVar12 && !bVar13) == bVar12) goto code_r0x00054491;
    }
    DAT_001d0dfc = (void *)xstrdup(pbVar7);
    break;
  default:
    return 0;
  }
  FUN_00054230();
  return 1;
}

